]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch '0.7.x' of git://gitorious.org/laconica/bAvatar-clone without the uninte...
authorAdrian Lang <mail@adrianlang.de>
Mon, 20 Apr 2009 10:15:12 +0000 (12:15 +0200)
committerAdrian Lang <mail@adrianlang.de>
Mon, 20 Apr 2009 10:15:12 +0000 (12:15 +0200)
86 files changed:
README
actions/accesstoken.php
actions/all.php
actions/api.php
actions/avatarbynickname.php
actions/doc.php
actions/favorited.php
actions/featured.php
actions/finishopenidlogin.php
actions/finishremotesubscribe.php
actions/foaf.php
actions/groupbyid.php
actions/groupmembers.php
actions/grouprss.php
actions/groups.php
actions/inbox.php
actions/invite.php
actions/login.php
actions/logout.php
actions/microsummary.php
actions/noticesearch.php
actions/noticesearchrss.php
actions/nudge.php
actions/opensearch.php
actions/outbox.php
actions/postnotice.php
actions/profilesettings.php
actions/public.php
actions/publicrss.php
actions/publictagcloud.php
actions/publicxrds.php
actions/register.php
actions/replies.php
actions/repliesrss.php
actions/requesttoken.php
actions/showfavorites.php
actions/showgroup.php
actions/showmessage.php
actions/shownotice.php
actions/showstream.php
actions/subscribers.php
actions/subscriptions.php
actions/sup.php
actions/tag.php
actions/tagrss.php
actions/twitapisearchjson.php
actions/updateprofile.php
actions/userauthorization.php
actions/userbyid.php
actions/usergroups.php
actions/userrss.php
actions/xrds.php
config.php.sample
db/laconica.sql
db/notice_source.sql
index.php
install.php
js/util.js
lib/action.php
lib/error.php
lib/galleryaction.php
lib/jsonsearchresultslist.php
lib/peoplesearchresults.php
lib/personal.php
lib/personalgroupnav.php
lib/popularnoticesection.php
lib/profileaction.php
lib/subpeopletagcloudsection.php [new file with mode: 0644]
lib/subscriberspeopleselftagcloudsection.php [new file with mode: 0644]
lib/subscriberspeopletagcloudsection.php [new file with mode: 0644]
lib/subscriptionspeopleselftagcloudsection.php [new file with mode: 0644]
lib/subscriptionspeopletagcloudsection.php [new file with mode: 0644]
lib/twitterapi.php
lib/util.php
locale/pl_PL/LC_MESSAGES/laconica.mo
locale/pl_PL/LC_MESSAGES/laconica.po
plugins/LinkbackPlugin.php
scripts/jabberqueuehandler.php
scripts/publicqueuehandler.php
scripts/triminboxes.php [new file with mode: 0644]
scripts/xmppconfirmhandler.php
scripts/xmppdaemon.php
theme/base/css/display.css
theme/default/css/display.css
theme/identica/css/display.css
theme/iphone/display.css

diff --git a/README b/README
index 09d9d301c5b04e65eaa2b09e867782f8aa3a0e37..7b2dcacc5045256864c8977f68b51c9f8473f428 100644 (file)
--- a/README
+++ b/README
@@ -1129,6 +1129,9 @@ welcome: nickname of a user account that sends welcome messages to new
          busy servers it may be a good idea to keep that one just for
          'urgent' messages. Default is null; no message.
 
+If either of these special user accounts are specified, the users should
+be created before the configuration is updated.
+
 Troubleshooting
 ===============
 
index 77fdf6aefa7012ab120c2c624df8c8be78807aa4..bb68d3314d49efea773f0cc6f304d308ec2636a2 100644 (file)
@@ -59,7 +59,7 @@ class AccesstokenAction extends Action
         try {
             common_debug('getting request from env variables', __FILE__);
             common_remove_magic_from_request();
-            $req = OAuthRequest::from_request();
+            $req = OAuthRequest::from_request('POST', common_locale_url('accesstoken'));
             common_debug('getting a server', __FILE__);
             $server = omb_oauth_server();
             common_debug('fetching the access token', __FILE__);
index f5bbfe2e395c00138bdc990da56f01a9326a5bb8..a92e554623136dbdbea88f11788d1ad6ea3b2af6 100644 (file)
@@ -25,7 +25,7 @@ require_once INSTALLDIR.'/lib/feedlist.php';
 
 class AllAction extends ProfileAction
 {
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -69,6 +69,17 @@ class AllAction extends ProfileAction
                               sprintf(_('Feed for friends of %s (Atom)'), $this->user->nickname)));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'all', array('nickname' => $this->user->nickname));
+    }
+
     function showLocalNav()
     {
         $nav = new PersonalGroupNav($this);
index c18d551b6d487151286e011c65f1f534ee8afd2c..d2f0a2eff0f7a47c1038939970d1fe0fd9a2cd32 100644 (file)
@@ -134,8 +134,8 @@ class ApiAction extends Action
                                  'favorites/favorites');
 
         $fullname = "$this->api_action/$this->api_method";
-        
-        // If the site is "private", all API methods except laconica/config 
+
+        // If the site is "private", all API methods except laconica/config
         // need authentication
         if (common_config('site', 'private')) {
             return $fullname != 'laconica/config' || false;
@@ -180,11 +180,11 @@ class ApiAction extends Action
         }
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
-        # NOTE: before handle(), can't use $this->arg
-        $apiaction = $_REQUEST['apiaction'];
-        $method = $_REQUEST['method'];
+        $apiaction = $args['apiaction'];
+        $method = $args['method'];
+
         list($cmdtext, $fmt) = explode('.', $method);
 
         static $write_methods = array(
@@ -207,5 +207,4 @@ class ApiAction extends Action
 
         return false;
     }
-
 }
index ca58c965374f11a4e0e5ed8a38821dfff0c6bd18..e92a993722366ec1c9551857e11a369aec210f6f 100644 (file)
@@ -98,7 +98,7 @@ class AvatarbynicknameAction extends Action
         common_redirect($url, 302);
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index ebffb7c1542fc64843d635b7a19c310c689f20f5..e6508030b658770e3009df0d47959886d4b89d52 100644 (file)
@@ -108,7 +108,7 @@ class DocAction extends Action
         return ucfirst($this->title);
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 09ab1216a64cdfa256a1e4a6b3dda9ace53bbac3..7e31303e3b87ea11fa71e8046cab24ea3a729d53 100644 (file)
@@ -85,7 +85,7 @@ class FavoritedAction extends Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -221,4 +221,15 @@ class FavoritedAction extends Action
         $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
                           $this->page, 'favorited');
     }
+
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'favorited');
+    }
 }
index 86fd3f374aa37e221e691f83aaf0c78cc8195f9b..79eba2aa67b9985372a2e23a1e977306a62439ca 100644 (file)
@@ -50,7 +50,7 @@ class FeaturedAction extends Action
 {
     var $page = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 952185742f969656ae6b0de9b7bf36451d9e6fbd..b08b96df6c2afd017cecf9852fc663ec41b65e67 100644 (file)
@@ -191,11 +191,28 @@ class FinishopenidloginAction extends Action
     {
         # FIXME: save invite code before redirect, and check here
 
-        if (common_config('site', 'closed') || common_config('site', 'inviteonly')) {
+        if (common_config('site', 'closed')) {
             $this->clientError(_('Registration not allowed.'));
             return;
         }
 
+        $invite = null;
+
+        if (common_config('site', 'inviteonly')) {
+            $code = $_SESSION['invitecode'];
+            if (empty($code)) {
+                $this->clientError(_('Registration not allowed.'));
+                return;
+            }
+
+            $invite = Invitation::staticGet($code);
+
+            if (empty($invite)) {
+                $this->clientError(_('Not a valid invitation code.'));
+                return;
+            }
+        }
+
         $nickname = $this->trimmed('newname');
 
         if (!Validate::string($nickname, array('min_length' => 1,
@@ -257,10 +274,16 @@ class FinishopenidloginAction extends Action
         # XXX: add language
         # XXX: add timezone
 
-        $user = User::register(array('nickname' => $nickname,
-                                     'email' => $email,
-                                     'fullname' => $fullname,
-                                     'location' => $location));
+        $args = array('nickname' => $nickname,
+                      'email' => $email,
+                      'fullname' => $fullname,
+                      'location' => $location);
+
+        if (!empty($invite)) {
+            $args['code'] = $invite->code;
+        }
+
+        $user = User::register($args);
 
         $result = oid_link_user($user->id, $canonical, $display);
 
index d54c29a60365df22235bc0db9286a79b53becb00..3e3a817154ddef6c5a81bb413a15817cf7956be8 100644 (file)
@@ -44,7 +44,7 @@ class FinishremotesubscribeAction extends Action
         common_debug('stored request: '.print_r($omb,true), __FILE__);
 
         common_remove_magic_from_request();
-        $req = OAuthRequest::from_request();
+        $req = OAuthRequest::from_request('POST', common_local_url('finishuserauthorization'));
 
         $token = $req->get_parameter('oauth_token');
 
index 416935b1b724316daefc046172b9f567bedc6754..2d5b78d123066a58d75f7ffdb5ec21e05015ccf9 100644 (file)
@@ -25,7 +25,7 @@ define('BOTH', 0);
 
 class FoafAction extends Action
 {
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 678119a9452b71f2a0a6a040e64d39aae33d3b0b..7d327d56ccf4525c4e2c010dd83e7d184a80abe1 100644 (file)
@@ -59,7 +59,7 @@ class GroupbyidAction extends Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 00f43a9f55e89c2e80d4a538e2fa3c62d45a6e8f..909935bec81a616128ae76deb4dcbe14a1ab9436 100644 (file)
@@ -48,7 +48,7 @@ class GroupmembersAction extends Action
 {
     var $page = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -137,4 +137,15 @@ class GroupmembersAction extends Action
                           $this->page, 'groupmembers',
                           array('nickname' => $this->group->nickname));
     }
-}
\ No newline at end of file
+
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'groupmembers', array('nickname' => $this->group->nickname));
+    }
+}
index de76a59600dbb67d409c44bf434784b3d62e04f0..0b7280a11c33648584096b95176eafb63fea7835 100644 (file)
@@ -34,7 +34,7 @@ if (!defined('LACONICA')) {
 
 require_once INSTALLDIR.'/lib/rssaction.php';
 
-define('MEMBERS_PER_SECTION', 81);
+define('MEMBERS_PER_SECTION', 27);
 
 /**
  * Group RSS feed
@@ -57,7 +57,7 @@ class groupRssAction extends Rss10Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 39dc2232bc5d82574b658b22883d8e831f11c531..e20acce70656189098b60f6c66e7a0a6645ce6de 100644 (file)
@@ -51,7 +51,7 @@ class GroupsAction extends Action
     var $page = null;
     var $profile = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -129,4 +129,15 @@ class GroupsAction extends Action
         $gbm = new GroupsByMembersSection($this);
         $gbm->show();
     }
+
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'groups', array('nickname' => $this->group->nickname));
+    }
 }
index b553ab26ca6d082a61addf9c17764b1d3b154548..7b5cf2d203d8f6abf1380ac74cc6e234f1d1d125 100644 (file)
@@ -63,6 +63,17 @@ class InboxAction extends MailboxAction
         }
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'inbox', array('nickname' => $this->user->nickname));
+    }
+
     /**
      * Retrieve the messages for this user and this page
      *
index df6e3b7147c145c6559da824ee08f77912de8e6b..7e52cdbcc6af6d20b88be1944f038a306d999c0c 100644 (file)
@@ -27,7 +27,7 @@ class InviteAction extends Action
     var $subbed = null;
     var $sent = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return false;
     }
index 59c6b4874bc24464d6fd9fbc15f05128ad4da8f2..50de83f6fb2574dc2627c2c3b87da9785110ba3a 100644 (file)
@@ -55,7 +55,7 @@ class LoginAction extends Action
      * @return boolean false
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return false;
     }
index b7681be3827ed25fe2546f7b83c8f7ea37fe9499..9f3bfe2470a2253d0e93acd9ca3ec2bf976c5423 100644 (file)
@@ -52,7 +52,7 @@ class LogoutAction extends Action
      *
      * @return boolean true
      */
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return false;
     }
index 065a2e0eba02b93b12bbbdbce748de2086a6ce8b..0b408ec953aff275b5523fbd3281b0f917de0564 100644 (file)
@@ -74,7 +74,7 @@ class MicrosummaryAction extends Action
         print $user->nickname . ': ' . $notice->content;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 095d0a454a157ff96ddcc3137dea89ed89557233..d996998fc6026328cc6a8271756393203b2202fa 100644 (file)
@@ -184,11 +184,13 @@ class SearchNoticeListItem extends NoticeListItem {
     function highlight($text, $terms)
     {
         /* Highligh search terms */
-        $pattern = '/('.implode('|', array_map('htmlspecialchars', $terms)).')/i';
+        $options = implode('|', array_map('preg_quote', array_map('htmlspecialchars', $terms),
+                                                            array_fill(0, sizeof($terms), '/')));
+        $pattern = "/($options)/i";
         $result  = preg_replace($pattern, '<strong>\\1</strong>', $text);
 
         /* Remove highlighting from inside links, loop incase multiple highlights in links */
-        $pattern = '/(href="[^"]*)<strong>('.implode('|', array_map('htmlspecialchars', $terms)).')<\/strong>([^"]*")/iU';
+        $pattern = '/(href="[^"]*)<strong>('.$options.')<\/strong>([^"]*")/iU';
         do {
             $result = preg_replace($pattern, '\\1\\2\\3', $result, -1, $count);
         } while ($count);
index ba5276d06e34647df9661b48c4fe4607f346f8b1..f6da969ee47bc29a0257ac3772320874a943299c 100644 (file)
@@ -92,7 +92,7 @@ class NoticesearchrssAction extends Rss10Action
         return null;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index b4e5e01dd88d4ec4d5965ba531d5beca5dab246b..c23d3e64356f4af88ea166663e9d61d56cc95c09 100644 (file)
@@ -124,7 +124,7 @@ class NudgeAction extends Action
         }
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 2eb8183066b062dc9111d890eeb6936656373aab..d1f4895ce4a2d569aa2263eaf3bce37a9d8f0ede 100644 (file)
@@ -84,7 +84,7 @@ class OpensearchAction extends Action
         $this->endXML();
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index c8d7f28125e6bd539c6edd0fc1fb72379919847c..deef1cc870f5ef9a7ef6c2643be3f59a1f116958 100644 (file)
@@ -62,6 +62,17 @@ class OutboxAction extends MailboxAction
         }
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'outbox', array('nickname' => $this->user->nickname));
+    }
+
     /**
      * retrieve the messages for this user and this page
      *
index c32d8ca94b611dd3fa356efc5de1ab1ae8e2364b..3e98b3cd5535efe46c946df4cc1e664dc7fbc6f2 100644 (file)
@@ -28,7 +28,7 @@ class PostnoticeAction extends Action
         parent::handle($args);
         try {
             common_remove_magic_from_request();
-            $req = OAuthRequest::from_request();
+            $req = OAuthRequest::from_request('POST', common_local_url('postnotice'));
             # Note: server-to-server function!
             $server = omb_oauth_server();
             list($consumer, $token) = $server->verify_request($req);
index 60f7c0796e2c64246f9064c25db02d70e4361016..fb847680b9c158e85dc319d89029933edddabc2d 100644 (file)
@@ -91,67 +91,68 @@ class ProfilesettingsAction extends AccountSettingsAction
         $this->element('legend', null, _('Profile information'));
         $this->hidden('token', common_session_token());
 
-        # too much common patterns here... abstractable?
-
+        // too much common patterns here... abstractable?
         $this->elementStart('ul', 'form_data');
-        $this->elementStart('li');
-        $this->input('nickname', _('Nickname'),
-                     ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
-                     _('1-64 lowercase letters or numbers, no punctuation or spaces'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('fullname', _('Full name'),
-                     ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('homepage', _('Homepage'),
-                     ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
-                     _('URL of your homepage, blog, or profile on another site'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->textarea('bio', _('Bio'),
-                        ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
-                        _('Describe yourself and your interests in 140 chars'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('location', _('Location'),
-                     ($this->arg('location')) ? $this->arg('location') : $profile->location,
-                     _('Where you are, like "City, State (or Region), Country"'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('tags', _('Tags'),
-                     ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
-                     _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $language = common_language();
-        $this->dropdown('language', _('Language'),
-                        get_nice_language_list(), _('Preferred language'),
-                        true, $language);
-        $this->elementEnd('li');
-        $timezone = common_timezone();
-        $timezones = array();
-        foreach(DateTimeZone::listIdentifiers() as $k => $v) {
-            $timezones[$v] = $v;
+        if (Event::handle('StartProfileFormData', array($this))) {
+            $this->elementStart('li');
+            $this->input('nickname', _('Nickname'),
+                         ($this->arg('nickname')) ? $this->arg('nickname') : $profile->nickname,
+                         _('1-64 lowercase letters or numbers, no punctuation or spaces'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('fullname', _('Full name'),
+                         ($this->arg('fullname')) ? $this->arg('fullname') : $profile->fullname);
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('homepage', _('Homepage'),
+                         ($this->arg('homepage')) ? $this->arg('homepage') : $profile->homepage,
+                         _('URL of your homepage, blog, or profile on another site'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->textarea('bio', _('Bio'),
+                            ($this->arg('bio')) ? $this->arg('bio') : $profile->bio,
+                            _('Describe yourself and your interests in 140 chars'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('location', _('Location'),
+                         ($this->arg('location')) ? $this->arg('location') : $profile->location,
+                         _('Where you are, like "City, State (or Region), Country"'));
+            $this->elementEnd('li');
+            Event::handle('EndProfileFormData', array($this));
+            $this->elementStart('li');
+            $this->input('tags', _('Tags'),
+                         ($this->arg('tags')) ? $this->arg('tags') : implode(' ', $user->getSelfTags()),
+                         _('Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $language = common_language();
+            $this->dropdown('language', _('Language'),
+                            get_nice_language_list(), _('Preferred language'),
+                            false, $language);
+            $this->elementEnd('li');
+            $timezone = common_timezone();
+            $timezones = array();
+            foreach(DateTimeZone::listIdentifiers() as $k => $v) {
+                $timezones[$v] = $v;
+            }
+            $this->elementStart('li');
+            $this->dropdown('timezone', _('Timezone'),
+                            $timezones, _('What timezone are you normally in?'),
+                            true, $timezone);
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->checkbox('autosubscribe',
+                            _('Automatically subscribe to whoever '.
+                              'subscribes to me (best for non-humans)'),
+                            ($this->arg('autosubscribe')) ?
+                            $this->boolean('autosubscribe') : $user->autosubscribe);
+            $this->elementEnd('li');
         }
-        $this->elementStart('li');
-        $this->dropdown('timezone', _('Timezone'),
-                        $timezones, _('What timezone are you normally in?'),
-                        true, $timezone);
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->checkbox('autosubscribe',
-                        _('Automatically subscribe to whoever '.
-                          'subscribes to me (best for non-humans)'),
-                        ($this->arg('autosubscribe')) ?
-                        $this->boolean('autosubscribe') : $user->autosubscribe);
-        $this->elementEnd('li');
         $this->elementEnd('ul');
         $this->submit('save', _('Save'));
 
         $this->elementEnd('fieldset');
         $this->elementEnd('form');
-
     }
 
     /**
@@ -165,158 +166,158 @@ class ProfilesettingsAction extends AccountSettingsAction
 
     function handlePost()
     {
-        # CSRF protection
-
+        // CSRF protection
         $token = $this->trimmed('token');
         if (!$token || $token != common_session_token()) {
             $this->showForm(_('There was a problem with your session token. '.
-                               'Try again, please.'));
+                        'Try again, please.'));
             return;
         }
 
-        $nickname = $this->trimmed('nickname');
-        $fullname = $this->trimmed('fullname');
-        $homepage = $this->trimmed('homepage');
-        $bio = $this->trimmed('bio');
-        $location = $this->trimmed('location');
-        $autosubscribe = $this->boolean('autosubscribe');
-        $language = $this->trimmed('language');
-        $timezone = $this->trimmed('timezone');
-        $tagstring = $this->trimmed('tags');
-
-        # Some validation
-
-        if (!Validate::string($nickname, array('min_length' => 1,
-                                               'max_length' => 64,
-                                               'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
-            $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.'));
-            return;
-        } else if (!User::allowed_nickname($nickname)) {
-            $this->showForm(_('Not a valid nickname.'));
-            return;
-        } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
-                   !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
-            $this->showForm(_('Homepage is not a valid URL.'));
-            return;
-        } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
-            $this->showForm(_('Full name is too long (max 255 chars).'));
-            return;
-        } else if (!is_null($bio) && mb_strlen($bio) > 140) {
-            $this->showForm(_('Bio is too long (max 140 chars).'));
-            return;
-        } else if (!is_null($location) && mb_strlen($location) > 255) {
-            $this->showForm(_('Location is too long (max 255 chars).'));
-            return;
-        }  else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) {
-            $this->showForm(_('Timezone not selected.'));
-            return;
-        } else if ($this->nicknameExists($nickname)) {
-            $this->showForm(_('Nickname already in use. Try another one.'));
-            return;
-        } else if (!is_null($language) && strlen($language) > 50) {
-            $this->showForm(_('Language is too long (max 50 chars).'));
-            return;
-        }
+        if (Event::handle('StartProfileSaveForm', array($this))) {
+
+            $nickname = $this->trimmed('nickname');
+            $fullname = $this->trimmed('fullname');
+            $homepage = $this->trimmed('homepage');
+            $bio = $this->trimmed('bio');
+            $location = $this->trimmed('location');
+            $autosubscribe = $this->boolean('autosubscribe');
+            $language = $this->trimmed('language');
+            $timezone = $this->trimmed('timezone');
+            $tagstring = $this->trimmed('tags');
+
+            // Some validation
+            if (!Validate::string($nickname, array('min_length' => 1,
+                            'max_length' => 64,
+                            'format' => VALIDATE_NUM . VALIDATE_ALPHA_LOWER))) {
+                $this->showForm(_('Nickname must have only lowercase letters and numbers and no spaces.'));
+                return;
+            } else if (!User::allowed_nickname($nickname)) {
+                $this->showForm(_('Not a valid nickname.'));
+                return;
+            } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
+                    !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) {
+                $this->showForm(_('Homepage is not a valid URL.'));
+                return;
+            } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
+                $this->showForm(_('Full name is too long (max 255 chars).'));
+                return;
+            } else if (!is_null($bio) && mb_strlen($bio) > 140) {
+                $this->showForm(_('Bio is too long (max 140 chars).'));
+                return;
+            } else if (!is_null($location) && mb_strlen($location) > 255) {
+                $this->showForm(_('Location is too long (max 255 chars).'));
+                return;
+            }  else if (is_null($timezone) || !in_array($timezone, DateTimeZone::listIdentifiers())) {
+                $this->showForm(_('Timezone not selected.'));
+                return;
+            } else if ($this->nicknameExists($nickname)) {
+                $this->showForm(_('Nickname already in use. Try another one.'));
+                return;
+            } else if (!is_null($language) && strlen($language) > 50) {
+                $this->showForm(_('Language is too long (max 50 chars).'));
+                return;
+            }
 
-        if ($tagstring) {
-            $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring));
-        } else {
-            $tags = array();
-        }
+            if ($tagstring) {
+                $tags = array_map('common_canonical_tag', preg_split('/[\s,]+/', $tagstring));
+            } else {
+                $tags = array();
+            }
 
-        foreach ($tags as $tag) {
-            if (!common_valid_profile_tag($tag)) {
-                $this->showForm(sprintf(_('Invalid tag: "%s"'), $tag));
-                return;
+            foreach ($tags as $tag) {
+                if (!common_valid_profile_tag($tag)) {
+                    $this->showForm(sprintf(_('Invalid tag: "%s"'), $tag));
+                    return;
+                }
             }
-        }
 
-        $user = common_current_user();
+            $user = common_current_user();
 
-        $user->query('BEGIN');
+            $user->query('BEGIN');
 
-        if ($user->nickname != $nickname ||
-            $user->language != $language ||
-            $user->timezone != $timezone) {
+            if ($user->nickname != $nickname ||
+                    $user->language != $language ||
+                    $user->timezone != $timezone) {
 
-            common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname,
-                         __FILE__);
-            common_debug('Updating user language from ' . $user->language . ' to ' . $language,
-                         __FILE__);
-            common_debug('Updating user timezone from ' . $user->timezone . ' to ' . $timezone,
-                         __FILE__);
+                common_debug('Updating user nickname from ' . $user->nickname . ' to ' . $nickname,
+                        __FILE__);
+                common_debug('Updating user language from ' . $user->language . ' to ' . $language,
+                        __FILE__);
+                common_debug('Updating user timezone from ' . $user->timezone . ' to ' . $timezone,
+                        __FILE__);
 
-            $original = clone($user);
+                $original = clone($user);
 
-            $user->nickname = $nickname;
-            $user->language = $language;
-            $user->timezone = $timezone;
+                $user->nickname = $nickname;
+                $user->language = $language;
+                $user->timezone = $timezone;
 
-            $result = $user->updateKeys($original);
+                $result = $user->updateKeys($original);
 
-            if ($result === false) {
-                common_log_db_error($user, 'UPDATE', __FILE__);
-                $this->serverError(_('Couldn\'t update user.'));
-                return;
-            } else {
-                # Re-initialize language environment if it changed
-                common_init_language();
+                if ($result === false) {
+                    common_log_db_error($user, 'UPDATE', __FILE__);
+                    $this->serverError(_('Couldn\'t update user.'));
+                    return;
+                } else {
+                    // Re-initialize language environment if it changed
+                    common_init_language();
+                }
             }
-        }
-
-        # XXX: XOR
 
-        if ($user->autosubscribe ^ $autosubscribe) {
+// XXX: XOR
+            if ($user->autosubscribe ^ $autosubscribe) {
 
-            $original = clone($user);
+                $original = clone($user);
 
-            $user->autosubscribe = $autosubscribe;
+                $user->autosubscribe = $autosubscribe;
 
-            $result = $user->update($original);
+                $result = $user->update($original);
 
-            if ($result === false) {
-                common_log_db_error($user, 'UPDATE', __FILE__);
-                $this->serverError(_('Couldn\'t update user for autosubscribe.'));
-                return;
+                if ($result === false) {
+                    common_log_db_error($user, 'UPDATE', __FILE__);
+                    $this->serverError(_('Couldn\'t update user for autosubscribe.'));
+                    return;
+                }
             }
-        }
-
-        $profile = $user->getProfile();
 
-        $orig_profile = clone($profile);
+            $profile = $user->getProfile();
 
-        $profile->nickname = $user->nickname;
-        $profile->fullname = $fullname;
-        $profile->homepage = $homepage;
-        $profile->bio = $bio;
-        $profile->location = $location;
-        $profile->profileurl = common_profile_url($nickname);
+            $orig_profile = clone($profile);
 
-        common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
-        common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
+            $profile->nickname = $user->nickname;
+            $profile->fullname = $fullname;
+            $profile->homepage = $homepage;
+            $profile->bio = $bio;
+            $profile->location = $location;
+            $profile->profileurl = common_profile_url($nickname);
 
-        $result = $profile->update($orig_profile);
+            common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__);
+            common_debug('New profile: ' . common_log_objstring($profile), __FILE__);
 
-        if (!$result) {
-            common_log_db_error($profile, 'UPDATE', __FILE__);
-            $this->serverError(_('Couldn\'t save profile.'));
-            return;
-        }
+            $result = $profile->update($orig_profile);
 
-        # Set the user tags
+            if (!$result) {
+                common_log_db_error($profile, 'UPDATE', __FILE__);
+                $this->serverError(_('Couldn\'t save profile.'));
+                return;
+            }
 
-        $result = $user->setSelfTags($tags);
+            // Set the user tags
+            $result = $user->setSelfTags($tags);
 
-        if (!$result) {
-            $this->serverError(_('Couldn\'t save tags.'));
-            return;
-        }
+            if (!$result) {
+                $this->serverError(_('Couldn\'t save tags.'));
+                return;
+            }
 
-        $user->query('COMMIT');
+            $user->query('COMMIT');
+            Event::handle('EndProfileSaveForm', array($this));
+            common_broadcast_profile($profile);
 
-        common_broadcast_profile($profile);
+            $this->showForm(_('Settings saved.'), true);
 
-        $this->showForm(_('Settings saved.'), true);
+        }
     }
 
     function nicknameExists($nickname)
index 5a380de9a8bb984ddf03b579febb03e348c6c147..d2f9da6460f86d0decf408200fb9c4ab8f221e87 100644 (file)
@@ -56,7 +56,7 @@ class PublicAction extends Action
 
     var $page = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -135,6 +135,17 @@ class PublicAction extends Action
                               _('Public Stream Feed (Atom)')));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'public');
+    }
+
     /**
      * Extra head elements
      *
index 77e26e0f4c5c15104d7e736fa90c0208e36c73f4..bc52f29522778483220c7994605b5b552c928502 100644 (file)
@@ -102,7 +102,7 @@ class PublicrssAction extends Rss10Action
         // nop
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 855cfed9b53437ea8a4ddd33f280e334b74cf15f..e9f33d58b6d95df7925a07355e20ec31217f1c38 100644 (file)
@@ -47,7 +47,7 @@ define('TAGS_PER_PAGE', 100);
 
 class PublictagcloudAction extends Action
 {
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index aad59d779e409d1deefe01ded3cb1b89a979d0cd..283a932ca56772b4191a5bc6a5fa7e2c5618085c 100644 (file)
@@ -51,17 +51,17 @@ class PublicxrdsAction extends Action
 {
     /**
      * Is read only?
-     * 
+     *
      * @return boolean true
      */
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
 
     /**
      * Class handler.
-     * 
+     *
      * @param array $args array of arguments
      *
      * @return nothing
@@ -70,24 +70,24 @@ class PublicxrdsAction extends Action
     {
         parent::handle($args);
         header('Content-Type: application/xrds+xml');
-        common_start_xml();
+        $this->startXML();
         $this->elementStart('XRDS', array('xmlns' => 'xri://$xrds'));
         $this->elementStart('XRD', array('xmlns' => 'xri://$xrd*($v*2.0)',
                                           'xmlns:simple' => 'http://xrds-simple.net/core/1.0',
                                           'version' => '2.0'));
         $this->element('Type', null, 'xri://$xrds*simple');
-        foreach (array('finishopenidlogin', 'finishaddopenid', 'finishimmediate') as $finish) {
+        foreach (array('finishopenidlogin', 'finishaddopenid') as $finish) {
             $this->showService(Auth_OpenID_RP_RETURN_TO_URL_TYPE,
                                 common_local_url($finish));
         }
         $this->elementEnd('XRD');
         $this->elementEnd('XRDS');
-        common_end_xml();
+        $this->endXML();
     }
 
     /**
      * Show service.
-     * 
+     *
      * @param string $type    XRDS type
      * @param string $uri     URI
      * @param array  $params  type parameters, null by default
index 5d7a8ce690d5fa88655f2a6c0f5fa2596c6c478e..033cf557f8959d7ded047794425207e82a1b82ca 100644 (file)
@@ -55,6 +55,45 @@ class RegisterAction extends Action
 
     var $registered = false;
 
+    /**
+     * Prepare page to run
+     *
+     *
+     * @param $args
+     * @return string title
+     */
+
+    function prepare($args)
+    {
+        parent::prepare($args);
+        $this->code = $this->trimmed('code');
+
+        if (empty($this->code)) {
+            common_ensure_session();
+            if (array_key_exists('invitecode', $_SESSION)) {
+                $this->code = $_SESSION['invitecode'];
+            }
+        }
+
+        if (common_config('site', 'inviteonly') && empty($this->code)) {
+            $this->clientError(_('Sorry, only invited people can register.'));
+            return false;
+        }
+
+        if (!empty($this->code)) {
+            $this->invite = Invitation::staticGet('code', $this->code);
+            if (empty($this->invite)) {
+                $this->clientError(_('Sorry, invalid invitation code.'));
+                return false;
+            }
+            // Store this in case we need it
+            common_ensure_session();
+            $_SESSION['invitecode'] = $this->code;
+        }
+
+        return true;
+    }
+
     /**
      * Title of the page
      *
@@ -108,107 +147,109 @@ class RegisterAction extends Action
 
     function tryRegister()
     {
-        $token = $this->trimmed('token');
-        if (!$token || $token != common_session_token()) {
-            $this->showForm(_('There was a problem with your session token. '.
-                              'Try again, please.'));
-            return;
-        }
-
-        $nickname = $this->trimmed('nickname');
-        $email    = $this->trimmed('email');
-        $fullname = $this->trimmed('fullname');
-        $homepage = $this->trimmed('homepage');
-        $bio      = $this->trimmed('bio');
-        $location = $this->trimmed('location');
-
-        // We don't trim these... whitespace is OK in a password!
-
-        $password = $this->arg('password');
-        $confirm  = $this->arg('confirm');
+        if (Event::handle('StartRegistrationTry', array($this))) {
+            $token = $this->trimmed('token');
+            if (!$token || $token != common_session_token()) {
+                $this->showForm(_('There was a problem with your session token. '.
+                                  'Try again, please.'));
+                return;
+            }
 
-        // invitation code, if any
+            $nickname = $this->trimmed('nickname');
+            $email    = $this->trimmed('email');
+            $fullname = $this->trimmed('fullname');
+            $homepage = $this->trimmed('homepage');
+            $bio      = $this->trimmed('bio');
+            $location = $this->trimmed('location');
 
-        $code = $this->trimmed('code');
+            // We don't trim these... whitespace is OK in a password!
+            $password = $this->arg('password');
+            $confirm  = $this->arg('confirm');
 
-        if ($code) {
-            $invite = Invitation::staticGet($code);
-        }
+            // invitation code, if any
+            $code = $this->trimmed('code');
 
-        if (common_config('site', 'inviteonly') && !($code && $invite)) {
-            $this->clientError(_('Sorry, only invited people can register.'));
-            return;
-        }
+            if ($code) {
+                $invite = Invitation::staticGet($code);
+            }
 
-        // Input scrubbing
-
-        $nickname = common_canonical_nickname($nickname);
-        $email    = common_canonical_email($email);
-
-        if (!$this->boolean('license')) {
-            $this->showForm(_('You can\'t register if you don\'t '.
-                              'agree to the license.'));
-        } else if ($email && !Validate::email($email, true)) {
-            $this->showForm(_('Not a valid email address.'));
-        } else if (!Validate::string($nickname, array('min_length' => 1,
-                                                      'max_length' => 64,
-                                                      'format' => NICKNAME_FMT))) {
-            $this->showForm(_('Nickname must have only lowercase letters '.
-                              'and numbers and no spaces.'));
-        } else if ($this->nicknameExists($nickname)) {
-            $this->showForm(_('Nickname already in use. Try another one.'));
-        } else if (!User::allowed_nickname($nickname)) {
-            $this->showForm(_('Not a valid nickname.'));
-        } else if ($this->emailExists($email)) {
-            $this->showForm(_('Email address already exists.'));
-        } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
-                   !Validate::uri($homepage,
-                                  array('allowed_schemes' =>
-                                        array('http', 'https')))) {
-            $this->showForm(_('Homepage is not a valid URL.'));
-            return;
-        } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
-            $this->showForm(_('Full name is too long (max 255 chars).'));
-            return;
-        } else if (!is_null($bio) && mb_strlen($bio) > 140) {
-            $this->showForm(_('Bio is too long (max 140 chars).'));
-            return;
-        } else if (!is_null($location) && mb_strlen($location) > 255) {
-            $this->showForm(_('Location is too long (max 255 chars).'));
-            return;
-        } else if (strlen($password) < 6) {
-            $this->showForm(_('Password must be 6 or more characters.'));
-            return;
-        } else if ($password != $confirm) {
-            $this->showForm(_('Passwords don\'t match.'));
-        } else if ($user = User::register(array('nickname' => $nickname,
-                                                'password' => $password,
-                                                'email' => $email,
-                                                'fullname' => $fullname,
-                                                'homepage' => $homepage,
-                                                'bio' => $bio,
-                                                'location' => $location,
-                                                'code' => $code))) {
-            if (!$user) {
-                $this->showForm(_('Invalid username or password.'));
+            if (common_config('site', 'inviteonly') && !($code && $invite)) {
+                $this->clientError(_('Sorry, only invited people can register.'));
                 return;
             }
-            // success!
-            if (!common_set_user($user)) {
-                $this->serverError(_('Error setting user.'));
+
+            // Input scrubbing
+            $nickname = common_canonical_nickname($nickname);
+            $email    = common_canonical_email($email);
+
+            if (!$this->boolean('license')) {
+                $this->showForm(_('You can\'t register if you don\'t '.
+                                  'agree to the license.'));
+            } else if ($email && !Validate::email($email, true)) {
+                $this->showForm(_('Not a valid email address.'));
+            } else if (!Validate::string($nickname, array('min_length' => 1,
+                                                          'max_length' => 64,
+                                                          'format' => NICKNAME_FMT))) {
+                $this->showForm(_('Nickname must have only lowercase letters '.
+                                  'and numbers and no spaces.'));
+            } else if ($this->nicknameExists($nickname)) {
+                $this->showForm(_('Nickname already in use. Try another one.'));
+            } else if (!User::allowed_nickname($nickname)) {
+                $this->showForm(_('Not a valid nickname.'));
+            } else if ($this->emailExists($email)) {
+                $this->showForm(_('Email address already exists.'));
+            } else if (!is_null($homepage) && (strlen($homepage) > 0) &&
+                       !Validate::uri($homepage,
+                                      array('allowed_schemes' =>
+                                            array('http', 'https')))) {
+                $this->showForm(_('Homepage is not a valid URL.'));
                 return;
+            } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
+                $this->showForm(_('Full name is too long (max 255 chars).'));
+                return;
+            } else if (!is_null($bio) && mb_strlen($bio) > 140) {
+                $this->showForm(_('Bio is too long (max 140 chars).'));
+                return;
+            } else if (!is_null($location) && mb_strlen($location) > 255) {
+                $this->showForm(_('Location is too long (max 255 chars).'));
+                return;
+            } else if (strlen($password) < 6) {
+                $this->showForm(_('Password must be 6 or more characters.'));
+                return;
+            } else if ($password != $confirm) {
+                $this->showForm(_('Passwords don\'t match.'));
+            } else if ($user = User::register(array('nickname' => $nickname,
+                                                    'password' => $password,
+                                                    'email' => $email,
+                                                    'fullname' => $fullname,
+                                                    'homepage' => $homepage,
+                                                    'bio' => $bio,
+                                                    'location' => $location,
+                                                    'code' => $code))) {
+                if (!$user) {
+                    $this->showForm(_('Invalid username or password.'));
+                    return;
+                }
+                // success!
+                if (!common_set_user($user)) {
+                    $this->serverError(_('Error setting user.'));
+                    return;
+                }
+                // this is a real login
+                common_real_login(true);
+                if ($this->boolean('rememberme')) {
+                    common_debug('Adding rememberme cookie for ' . $nickname);
+                    common_rememberme($user);
+                }
+
+                Event::handle('EndRegistrationTry', array($this));
+
+                // Re-init language env in case it changed (not yet, but soon)
+                common_init_language();
+                $this->showSuccess();
+            } else {
+                $this->showForm(_('Invalid username or password.'));
             }
-            // this is a real login
-            common_real_login(true);
-            if ($this->boolean('rememberme')) {
-                common_debug('Adding rememberme cookie for ' . $nickname);
-                common_rememberme($user);
-            }
-            // Re-init language env in case it changed (not yet, but soon)
-            common_init_language();
-            $this->showSuccess();
-        } else {
-            $this->showForm(_('Invalid username or password.'));
         }
     }
 
@@ -250,22 +291,24 @@ class RegisterAction extends Action
 
     // overrrided to add entry-title class
     function showPageTitle() {
-        $this->element('h1', array('class' => 'entry-title'), $this->title());
+        if (Event::handle('StartShowPageTitle', array($this))) {
+            $this->element('h1', array('class' => 'entry-title'), $this->title());
+        }
     }
 
     // overrided to add hentry, and content-inner class
     function showContentBlock()
-     {
-         $this->elementStart('div', array('id' => 'content', 'class' => 'hentry'));
-         $this->showPageTitle();
-         $this->showPageNoticeBlock();
-         $this->elementStart('div', array('id' => 'content_inner',
-             'class' => 'entry-content'));
-         // show the actual content (forms, lists, whatever)
-         $this->showContent();
-         $this->elementEnd('div');
-         $this->elementEnd('div');
-     }
+    {
+        $this->elementStart('div', array('id' => 'content', 'class' => 'hentry'));
+        $this->showPageTitle();
+        $this->showPageNoticeBlock();
+        $this->elementStart('div', array('id' => 'content_inner',
+                                         'class' => 'entry-content'));
+        // show the actual content (forms, lists, whatever)
+        $this->showContent();
+        $this->elementEnd('div');
+        $this->elementEnd('div');
+    }
 
     /**
      * Instructions or a notice for the page
@@ -339,17 +382,6 @@ class RegisterAction extends Action
 
     function showFormContent()
     {
-        $code = $this->trimmed('code');
-
-        if ($code) {
-            $invite = Invitation::staticGet($code);
-        }
-
-        if (common_config('site', 'inviteonly') && !($code && $invite)) {
-            $this->clientError(_('Sorry, only invited people can register.'));
-            return;
-        }
-
         $this->elementStart('form', array('method' => 'post',
                                           'id' => 'form_register',
                                           'class' => 'form_settings',
@@ -358,82 +390,85 @@ class RegisterAction extends Action
         $this->element('legend', null, 'Account settings');
         $this->hidden('token', common_session_token());
 
-        if ($code) {
-            $this->hidden('code', $code);
+        if ($this->code) {
+            $this->hidden('code', $this->code);
         }
 
         $this->elementStart('ul', 'form_data');
-        $this->elementStart('li');
-        $this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
-                     _('1-64 lowercase letters or numbers, '.
-                       'no punctuation or spaces. Required.'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->password('password', _('Password'),
-                        _('6 or more characters. Required.'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->password('confirm', _('Confirm'),
-                        _('Same as password above. Required.'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        if ($invite && $invite->address_type == 'email') {
-            $this->input('email', _('Email'), $invite->address,
-                         _('Used only for updates, announcements, '.
-                           'and password recovery'));
-        } else {
-            $this->input('email', _('Email'), $this->trimmed('email'),
-                         _('Used only for updates, announcements, '.
-                           'and password recovery'));
-        }
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('fullname', _('Full name'),
-                     $this->trimmed('fullname'),
-                     _('Longer name, preferably your "real" name'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('homepage', _('Homepage'),
-                     $this->trimmed('homepage'),
-                     _('URL of your homepage, blog, '.
-                       'or profile on another site'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->textarea('bio', _('Bio'),
-                        $this->trimmed('bio'),
-                        _('Describe yourself and your '.
-                          'interests in 140 chars'));
-        $this->elementEnd('li');
-        $this->elementStart('li');
-        $this->input('location', _('Location'),
-                     $this->trimmed('location'),
-                     _('Where you are, like "City, '.
-                       'State (or Region), Country"'));
-        $this->elementEnd('li');
-        $this->elementStart('li', array('id' => 'settings_rememberme'));
-        $this->checkbox('rememberme', _('Remember me'),
-                        $this->boolean('rememberme'),
-                        _('Automatically login in the future; '.
-                          'not for shared computers!'));
-        $this->elementEnd('li');
-        $attrs = array('type' => 'checkbox',
-                       'id' => 'license',
-                       'class' => 'checkbox',
-                       'name' => 'license',
-                       'value' => 'true');
-        if ($this->boolean('license')) {
-            $attrs['checked'] = 'checked';
+        if (Event::handle('StartRegistrationFormData', array($this))) {
+            $this->elementStart('li');
+            $this->input('nickname', _('Nickname'), $this->trimmed('nickname'),
+                         _('1-64 lowercase letters or numbers, '.
+                           'no punctuation or spaces. Required.'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->password('password', _('Password'),
+                            _('6 or more characters. Required.'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->password('confirm', _('Confirm'),
+                            _('Same as password above. Required.'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            if ($this->invite && $this->invite->address_type == 'email') {
+                $this->input('email', _('Email'), $this->invite->address,
+                             _('Used only for updates, announcements, '.
+                               'and password recovery'));
+            } else {
+                $this->input('email', _('Email'), $this->trimmed('email'),
+                             _('Used only for updates, announcements, '.
+                               'and password recovery'));
+            }
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('fullname', _('Full name'),
+                         $this->trimmed('fullname'),
+                         _('Longer name, preferably your "real" name'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('homepage', _('Homepage'),
+                         $this->trimmed('homepage'),
+                         _('URL of your homepage, blog, '.
+                           'or profile on another site'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->textarea('bio', _('Bio'),
+                            $this->trimmed('bio'),
+                            _('Describe yourself and your '.
+                              'interests in 140 chars'));
+            $this->elementEnd('li');
+            $this->elementStart('li');
+            $this->input('location', _('Location'),
+                         $this->trimmed('location'),
+                         _('Where you are, like "City, '.
+                           'State (or Region), Country"'));
+            $this->elementEnd('li');
+            Event::handle('EndRegistrationFormData', array($this));
+            $this->elementStart('li', array('id' => 'settings_rememberme'));
+            $this->checkbox('rememberme', _('Remember me'),
+                            $this->boolean('rememberme'),
+                            _('Automatically login in the future; '.
+                              'not for shared computers!'));
+            $this->elementEnd('li');
+            $attrs = array('type' => 'checkbox',
+                           'id' => 'license',
+                           'class' => 'checkbox',
+                           'name' => 'license',
+                           'value' => 'true');
+            if ($this->boolean('license')) {
+                $attrs['checked'] = 'checked';
+            }
+            $this->elementStart('li');
+            $this->element('input', $attrs);
+            $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
+            $this->text(_('My text and files are available under '));
+            $this->element('a', array('href' => common_config('license', 'url')),
+                           common_config('license', 'title'), _("Creative Commons Attribution 3.0"));
+            $this->text(_(' except this private data: password, '.
+                          'email address, IM address, and phone number.'));
+            $this->elementEnd('label');
+            $this->elementEnd('li');
         }
-        $this->elementStart('li');
-        $this->element('input', $attrs);
-        $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
-        $this->text(_('My text and files are available under '));
-        $this->element('a', array('href' => common_config('license', 'url')),
-                       common_config('license', 'title'), _("Creative Commons Attribution 3.0"));
-        $this->text(_(' except this private data: password, '.
-                      'email address, IM address, and phone number.'));
-        $this->elementEnd('label');
-        $this->elementEnd('li');
         $this->elementEnd('ul');
         $this->submit('submit', _('Register'));
         $this->elementEnd('fieldset');
@@ -515,3 +550,4 @@ class RegisterAction extends Action
         $nav->show();
     }
 }
+
index 2769cb4227c05ea2796167a6e61a07913de4a4a0..dfb520d64974ae5c104e8f9e8c5b7caeab400e09 100644 (file)
@@ -138,6 +138,17 @@ class RepliesAction extends Action
         return array(new Feed(Feed::RSS1, $rssurl, $rsstitle));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'replies', array('nickname' => $this->user->nickname));
+    }
+
     /**
      * show the personal group nav
      *
@@ -196,7 +207,7 @@ class RepliesAction extends Action
         $this->elementEnd('div');
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 985318bf168794943b1d1cc5216b21279d502f23..2017c43094a5f40f176d48efb3c3ff4601aba8c0 100644 (file)
@@ -83,7 +83,7 @@ class RepliesrssAction extends Rss10Action
         return ($avatar) ? $avatar->url : null;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index ca253b97aa7729e957e3b70832df0417bb8da4a1..9507e3d6c9c3a2c897276d31a794188a1620d0bb 100644 (file)
@@ -52,7 +52,7 @@ class RequesttokenAction extends Action
      * 
      * @return boolean false
      */
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return false;
     }
@@ -69,7 +69,7 @@ class RequesttokenAction extends Action
         parent::handle($args);
         try {
             common_remove_magic_from_request();
-            $req    = OAuthRequest::from_request();
+            $req    = OAuthRequest::from_request('POST', common_local_url('requesttoken'));
             $server = omb_oauth_server();
             $token  = $server->fetch_request_token($req);
             print $token;
index 4d434950548e14d00a0f0d738f225e90d62fb605..6e011d5ca528e22771825f01cee0c61e44c3eea7 100644 (file)
@@ -58,7 +58,7 @@ class ShowfavoritesAction extends Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -150,6 +150,18 @@ class ShowfavoritesAction extends Action
         return array(new Feed(Feed::RSS1, $feedurl, $feedtitle));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'showfavorites', array('nickname' => $this->user->nickname));
+    }
+
+
     /**
      * show the personal group nav
      *
index 79445851f923b1b6f41352a546ca6b3bb0cf47f2..a7df397273af91e940b8fa816745add5df24f728 100644 (file)
@@ -35,7 +35,7 @@ if (!defined('LACONICA')) {
 require_once INSTALLDIR.'/lib/noticelist.php';
 require_once INSTALLDIR.'/lib/feedlist.php';
 
-define('MEMBERS_PER_SECTION', 81);
+define('MEMBERS_PER_SECTION', 27);
 
 /**
  * Group main page
@@ -60,7 +60,7 @@ class ShowgroupAction extends Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -311,6 +311,17 @@ class ShowgroupAction extends Action
                                                         $this->group->nickname)));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'showgroup', array('nickname' => $this->group->nickname));
+    }
+
     /**
      * Fill in the sidebar.
      *
@@ -350,7 +361,7 @@ class ShowgroupAction extends Action
              $this->element('p', null, _('(None)'));
         }
 
-        if ($cnt == MEMBERS_PER_SECTION) {
+        if ($cnt > MEMBERS_PER_SECTION) {
             $this->element('a', array('href' => common_local_url('groupmembers',
                                                                  array('nickname' => $this->group->nickname))),
                            _('All members'));
index 572a71739aa56a000062c8e7418b02dff34317c4..4fcaadbe833aa829661affdc44b8acb714174517 100644 (file)
@@ -177,7 +177,7 @@ class ShowmessageAction extends MailboxAction
         return '';
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index ccae49bb3e4a59e13c526117962ec130cd7ced4b..2c469c9deec69c88a546de8b239007614d6a142c 100644 (file)
@@ -106,7 +106,7 @@ class ShownoticeAction extends Action
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index ce237dae225560dcdbdea879473851bc768b9f23..82665e5b8b3841f1c68015ecb0be4359a617128b 100644 (file)
@@ -56,7 +56,7 @@ require_once INSTALLDIR.'/lib/feedlist.php';
 
 class ShowstreamAction extends ProfileAction
 {
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
@@ -135,6 +135,17 @@ class ShowstreamAction extends ProfileAction
                               sprintf(_('FOAF for %s'), $this->user->nickname)));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'showstream', array('nickname' => $this->user->nickname));
+    }
+
     function extraHead()
     {
         // for remote subscriptions etc.
index 7ebb54d33d6b6b00204bf8df7806650afd10f9d1..4482de9a7c74279b000e042012fbb927a86b5dbd 100644 (file)
@@ -118,6 +118,16 @@ class SubscribersAction extends GalleryAction
         $this->raw(common_markup_to_html($message));
         $this->elementEnd('div');
     }
+
+    function showSections()
+    {
+        parent::showSections();
+        $cloud = new SubscribersPeopleTagCloudSection($this);
+        $cloud->show();
+
+        $cloud2 = new SubscribersPeopleSelfTagCloudSection($this);
+        $cloud2->show();
+    }
 }
 
 class SubscribersList extends ProfileList
@@ -130,7 +140,7 @@ class SubscribersList extends ProfileList
         $bf->show();
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index e6f3c54db8c83c67820e8898875c4f7cd18de71d..095b18ad87db49b97f1c16746d3a7366f6b0f7a4 100644 (file)
@@ -125,6 +125,16 @@ class SubscriptionsAction extends GalleryAction
         $this->raw(common_markup_to_html($message));
         $this->elementEnd('div');
     }
+
+    function showSections()
+    {
+        parent::showSections();
+        $cloud = new SubscriptionsPeopleTagCloudSection($this);
+        $cloud->show();
+
+        $cloud2 = new SubscriptionsPeopleSelfTagCloudSection($this);
+        $cloud2->show();
+    }
 }
 
 class SubscriptionsList extends ProfileList
index 246b3299d32e975db9faa02648a3b18cade8335e..691153d6a3bcd845c0f3c4765cc8ee9f3040b328 100644 (file)
@@ -79,7 +79,7 @@ class SupAction extends Action
         return $updates;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index d15f64498dc0c76e2fd1f5c47f20889c7e82ec37..02f3e35225cca6976fc7efe5a8b0930b346664eb 100644 (file)
@@ -45,6 +45,13 @@ class TagAction extends Action
         return true;
     }
 
+    function showSections()
+    {
+        $pop = new PopularNoticeSection($this);
+        $pop->show();
+    }
+
+
     function title()
     {
         if ($this->page == 1) {
@@ -70,6 +77,17 @@ class TagAction extends Action
                               sprintf(_('Feed for tag %s'), $this->tag)));
     }
 
+    /**
+     * Output document relationship links
+     *
+     * @return void
+     */
+    function showRelationshipLinks()
+    {
+        $this->sequenceRelationships($this->page > 1, $this->count > NOTICES_PER_PAGE, // FIXME
+                                     $this->page, 'tag', array('tag' => $this->tag));
+    }
+
     function showPageNotice()
     {
         return sprintf(_('Messages tagged "%s", most recent first'), $this->tag);
@@ -86,4 +104,9 @@ class TagAction extends Action
         $this->pagination($this->page > 1, $cnt > NOTICES_PER_PAGE,
                           $this->page, 'tag', array('tag' => $this->tag));
     }
+
+    function isReadOnly($args)
+    {
+        return true;
+    }
 }
index a77fa12c984c5a00b18037664eaa0565db15564e..83cf3afe2f45b7aa594adb248291117dd4d87908 100644 (file)
@@ -65,7 +65,7 @@ class TagrssAction extends Rss10Action
         return $c;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 0f9f523a14f7b65d88290ab7492c28b0ba4437b2..b0e3be687c1118da16e0f88584911b6a7b786c2e 100644 (file)
@@ -142,7 +142,7 @@ class TwitapisearchjsonAction extends TwitterapiAction
      * @return boolean true
      */
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 7dc52fda9eaf69d315d83a585793accb563f7172..08cb31ae037c77c55af08f5017156685ed0076a0 100644 (file)
@@ -29,7 +29,7 @@ class UpdateprofileAction extends Action
         parent::handle($args);
         try {
             common_remove_magic_from_request();
-            $req = OAuthRequest::from_request();
+            $req = OAuthRequest::from_request('POST', common_local_url('updateprofile'));
             # Note: server-to-server function!
             $server = omb_oauth_server();
             list($consumer, $token) = $server->verify_request($req);
index 8723848c7b975a7ff700774eef7dab9ebeacd81f..1680191495506c043d0cdc98df116d708d0e90c5 100644 (file)
@@ -97,47 +97,91 @@ class UserauthorizationAction extends Action
         $location = $params['omb_listenee_location'];
         $avatar = $params['omb_listenee_avatar'];
 
-        $this->elementStart('div', 'profile');
+        $this->elementStart('div', array('class' => 'profile'));
+        $this->elementStart('div', 'entity_profile vcard');
+        $this->elementStart('a', array('href' => $profile,
+                                            'class' => 'url'));
         if ($avatar) {
             $this->element('img', array('src' => $avatar,
-                                        'class' => 'avatar',
+                                        'class' => 'photo avatar',
                                         'width' => AVATAR_PROFILE_SIZE,
                                         'height' => AVATAR_PROFILE_SIZE,
                                         'alt' => $nickname));
         }
-        $this->element('a', array('href' => $profile,
-                                  'class' => 'external profile nickname'),
-                       $nickname);
+        $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
+        $this->elementStart('span', $hasFN);
+        $this->raw($nickname);
+        $this->elementEnd('span');
+        $this->elementEnd('a');
+
         if (!is_null($fullname)) {
-            $this->elementStart('div', 'fullname');
-            if (!is_null($homepage)) {
-                $this->element('a', array('href' => $homepage),
-                               $fullname);
-            } else {
-                $this->text($fullname);
-            }
-            $this->elementEnd('div');
+            $this->elementStart('dl', 'entity_fn');
+            $this->elementStart('dd');
+            $this->elementStart('span', 'fn');
+            $this->raw($fullname);
+            $this->elementEnd('span');
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
         }
         if (!is_null($location)) {
-            $this->element('div', 'location', $location);
+            $this->elementStart('dl', 'entity_location');
+            $this->element('dt', null, _('Location'));
+            $this->elementStart('dd', 'label');
+            $this->raw($location);
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
+        }
+
+        if (!is_null($homepage)) {
+            $this->elementStart('dl', 'entity_url');
+            $this->element('dt', null, _('URL'));
+            $this->elementStart('dd');
+            $this->elementStart('a', array('href' => $homepage,
+                                                'class' => 'url'));
+            $this->raw($homepage);
+            $this->elementEnd('a');
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
         }
+
         if (!is_null($bio)) {
-            $this->element('div', 'bio', $bio);
+            $this->elementStart('dl', 'entity_note');
+            $this->element('dt', null, _('Note'));
+            $this->elementStart('dd', 'note');
+            $this->raw($bio);
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
+        }
+
+        if (!is_null($license)) {
+            $this->elementStart('dl', 'entity_license');
+            $this->element('dt', null, _('License'));
+            $this->elementStart('dd', 'license');
+            $this->element('a', array('href' => $license,
+                                      'class' => 'license'),
+                           $license);
+            $this->elementEnd('dd');
+            $this->elementEnd('dl');
         }
-        $this->elementStart('div', 'license');
-        $this->element('a', array('href' => $license,
-                                  'class' => 'license'),
-                       $license);
-        $this->elementEnd('div');
         $this->elementEnd('div');
+
+        $this->elementStart('div', 'entity_actions');
+        $this->elementStart('ul');
+        $this->elementStart('li', 'entity_subscribe');
         $this->elementStart('form', array('method' => 'post',
                                           'id' => 'userauthorization',
+                                          'class' => 'form_user_authorization',
                                           'name' => 'userauthorization',
                                           'action' => common_local_url('userauthorization')));
         $this->hidden('token', common_session_token());
-        $this->submit('accept', _('Accept'));
-        $this->submit('reject', _('Reject'));
+
+        $this->submit('accept', _('Accept'), 'submit accept', null, _('Subscribe to this user'));
+        $this->submit('reject', _('Reject'), 'submit reject', null, _('Reject this subscription'));
         $this->elementEnd('form');
+        $this->elementEnd('li');
+        $this->elementEnd('ul');
+        $this->elementEnd('div');
+        $this->elementEnd('div');
     }
 
     function sendAuthorization()
index 1e30d1aac3d1249683ba51b775028f268b4f36f7..4a985fcd7220c842f6b99efc9dcc597f21e959bd 100644 (file)
@@ -50,7 +50,7 @@ class UserbyidAction extends Action
      * 
      * @return boolean true
      */
-    function isReadOnly()
+    function isReadOnly($args)
     {                
         return true;
     }
index 06b2334bf5b636801e99b32f87e7ecfc830eea2e..e3088dcbd83d6e26dc51110ecd633f626e78becc 100644 (file)
@@ -52,7 +52,7 @@ class UsergroupsAction extends Action
     var $page = null;
     var $profile = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index d3bf352d8df3cd71bca218686657be344a2454c9..5861d9ee3687bd7a4e79e6088ea30a059c690a2b 100644 (file)
@@ -96,7 +96,7 @@ class UserrssAction extends Rss10Action
         parent::initRss($limit);
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 0758318037af2f26df170cf07bf96d9034594f70..1335b6b806653119d6ab6c0ee96c7e4c86ab5eb0 100644 (file)
@@ -52,7 +52,7 @@ class XrdsAction extends Action
      *
      * @return boolean true
      */
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 0a01552feced630bb1ba3d6e3e49c89633f41250..e70d9ab46e843bbb6c1a2fa2c98a9ae6133aedfa 100644 (file)
@@ -30,6 +30,8 @@ $config['site']['path'] = 'laconica';
 #$config['site']['closed'] = true;
 #Only allow registration for people invited by another user
 #$config['site']['inviteonly'] = true;
+#Make the site invisible to  non-logged-in users
+#$config['site']['private'] = true;
 
 # If you want logging sent to a file instead of syslog
 #$config['site']['logfile'] = '/tmp/laconica.log';
index a790a3fd27cca512c8e9d3bc543905f5ef90d8cf..5b57494d984d6cee4b92b1b4e0f5b7325d283e0b 100644 (file)
@@ -117,6 +117,7 @@ create table notice (
 
     index notice_profile_id_idx (profile_id),
     index notice_created_idx (created),
+    index notice_replyto_idx (reply_to),
     FULLTEXT(content)
 ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
 
index 52d555dbfe1cdc2f69c35b86fcf9382429d236d2..d5124e223a8d5b0e695e35d4063ff16b8771e840 100644 (file)
@@ -1,27 +1,28 @@
 INSERT INTO notice_source
     (code, name, url, created)
 VALUES
+    ('adium', 'Adium', 'http://www.adiumx.com/', now()),
+    ('betwittered','BeTwittered','http://www.32hours.com/betwitteredinfo/', now()),
+    ('bti','bti','http://gregkh.github.com/bti/', now()),
+    ('cliqset', 'Cliqset', 'http://www.cliqset.com/', now()),
+    ('deskbar','Deskbar-Applet','http://www.gnome.org/projects/deskbar-applet/', now()),
     ('Do','Gnome Do','http://do.davebsd.com/wiki/index.php?title=Microblog_Plugin', now()),
     ('Facebook','Facebook','http://apps.facebook.com/identica/', now()),
     ('Gwibber','Gwibber','http://launchpad.net/gwibber', now()),
     ('HelloTxt','HelloTxt','http://hellotxt.com/', now()),
-    ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()),
-    ('LaTwit','LaTwit','http://latwit.mac65.com/', now()),
-    ('Nambu','Nambu','http://www.nambu.com/', now()),
-    ('Pikchur','Pikchur','http://www.pikchur.com/', now()),
-    ('Ping.fm','Ping.fm','http://ping.fm/', now()),
-    ('Twidge','Twidge','http://software.complete.org/twidge', now()),
-    ('Updating.Me','Updating.Me','http://updating.me/', now()),
-    ('betwittered','BeTwittered','http://www.32hours.com/betwitteredinfo/', now()),
-    ('bti','bti','http://gregkh.github.com/bti/', now()),
-    ('deskbar','Deskbar-Applet','http://www.gnome.org/projects/deskbar-applet/', now()),
     ('identicatools','Laconica Tools','http://bitbucketlabs.net/laconica-tools/', now()),
     ('identichat','identichat','http://identichat.prosody.im/', now()),
+    ('IdentiFox','IdentiFox','http://www.bitbucket.org/uncryptic/identifox/', now()),
     ('identitwitch','IdentiTwitch','http://richfish.org/identitwitch/', now()),
+    ('LaTwit','LaTwit','http://latwit.mac65.com/', now()),
+    ('maisha', 'Maisha', 'http://maisha.grango.org/', now()),
     ('mbpidgin','mbpidgin','http://code.google.com/p/microblog-purple/', now()),
     ('Mobidentica', 'Mobidentica', 'http://www.substanceofcode.com/software/mobidentica/', now()),
     ('moconica','Moconica','http://moconica.com/', now()),
+    ('nambu','Nambu','http://www.nambu.com/', now()),
     ('peoplebrowsr', 'PeopleBrowsr', 'http://www.peoplebrowsr.com/', now()),
+    ('Pikchur','Pikchur','http://www.pikchur.com/', now()),
+    ('Ping.fm','Ping.fm','http://ping.fm/', now()),
     ('pocketwit','PockeTwit','http://code.google.com/p/pocketwit/', now()),
     ('posty','Posty','http://spreadingfunkyness.com/posty/', now()),
     ('royalewithcheese','Royale With Cheese','http://p.hellyeah.org/', now()),
@@ -33,9 +34,11 @@ VALUES
     ('tarpipe','tarpipe','http://tarpipe.com/', now()),
     ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()),
     ('tr.im','tr.im','http://tr.im/', now()),
+    ('triklepost', 'Tricklepost', 'http://github.com/zcopley/tricklepost/tree/master', now()),
     ('tweenky','Tweenky','http://beta.tweenky.com/', now()),
     ('twhirl','Twhirl','http://www.twhirl.org/', now()),
     ('twibble','twibble','http://www.twibble.de/', now()),
+    ('Twidge','Twidge','http://software.complete.org/twidge', now()),
     ('twidge','Twidge','http://software.complete.org/twidge', now()),
     ('twidroid','twidroid','http://www.twidroid.com/', now()),
     ('twittelator','Twittelator','http://www.stone.com/iPhone/Twittelator/', now()),
@@ -45,6 +48,6 @@ VALUES
     ('twittertools','Twitter Tools','http://wordpress.org/extend/plugins/twitter-tools/', now()),
     ('twitux','Twitux','http://live.gnome.org/DanielMorales/Twitux', now()),
     ('twitvim','TwitVim','http://vim.sourceforge.net/scripts/script.php?script_id=2204', now()),
+    ('Updating.Me','Updating.Me','http://updating.me/', now()),
     ('urfastr','urfastr','http://urfastr.net/', now()),
-    ('adium', 'Adium', 'http://www.adiumx.com/', now()),
     ('yatca','Yatca','http://www.yatca.com/', now());
index e83d08c13e9024fe5482aa7b4540b178754dbad4..e24bde9179fd884a220b05f26f170a06914b07b5 100644 (file)
--- a/index.php
+++ b/index.php
@@ -128,7 +128,7 @@ function main()
 
         // XXX: find somewhere for this little block to live
 
-        if (common_config('db', 'mirror') && $action_obj->isReadOnly()) {
+        if (common_config('db', 'mirror') && $action_obj->isReadOnly($args)) {
             if (is_array(common_config('db', 'mirror'))) {
                 // "load balancing", ha ha
                 $arr = common_config('db', 'mirror');
index 0240349bb15d1220f2cdd7babdef83c720febabd..87a99a650895b3774adc3b2e0c84cf401cb370fe 100644 (file)
@@ -1,4 +1,22 @@
-<?
+<?php
+/**
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2009, Controlez-Vous, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
 define('INSTALLDIR', dirname(__FILE__));
 
 function main()
@@ -19,12 +37,12 @@ function checkPrereqs()
 {
     if (file_exists(INSTALLDIR.'/config.php')) {
          ?><p class="error">Config file &quot;config.php&quot; already exists.</p>
-         <?
+         <?php
         return false;
     }
 
     if (version_compare(PHP_VERSION, '5.0.0', '<')) {
-            ?><p class="error">Require PHP version 5 or greater.</p><?
+            ?><p class="error">Require PHP version 5 or greater.</p><?php
                    return false;
     }
 
@@ -34,23 +52,23 @@ function checkPrereqs()
 
     foreach ($reqs as $req) {
         if (!checkExtension($req)) {
-            ?><p class="error">Cannot load required extension &quot;<?= $req ?>&quot;.</p><?
+            ?><p class="error">Cannot load required extension &quot;<?php echo $req; ?>&quot;.</p><?php
                    return false;
         }
     }
 
        if (!is_writable(INSTALLDIR)) {
-         ?><p class="error">Cannot write config file to &quot;<?= INSTALLDIR ?>&quot;.</p>
+         ?><p class="error">Cannot write config file to &quot;<?php echo INSTALLDIR; ?>&quot;.</p>
               <p>On your server, try this command:</p>
-              <blockquote>chmod a+w <?= INSTALLDIR ?></blockquote>
-         <?
+              <blockquote>chmod a+w <?php echo INSTALLDIR; ?></blockquote>
+         <?php
             return false;
        }
 
        if (!is_writable(INSTALLDIR.'/avatar/')) {
-         ?><p class="error">Cannot write avatar directory &quot;<?= INSTALLDIR ?>/avatar/&quot;.</p>
+         ?><p class="error">Cannot write avatar directory &quot;<?php echo INSTALLDIR; ?>/avatar/&quot;.</p>
               <p>On your server, try this command:</p>
-              <blockquote>chmod a+w <?= INSTALLDIR ?>/avatar/</blockquote>
+              <blockquote>chmod a+w <?php echo INSTALLDIR; ?>/avatar/</blockquote>
          <?
             return false;
        }
@@ -211,7 +229,7 @@ function handlePost()
 function writeConf($sitename, $sqlUrl)
 {
     $res = file_put_contents(INSTALLDIR.'/config.php',
-                             "<?\n".
+                             "<?php\n".
                              "\$config['site']['name'] = \"$sitename\";\n\n".
                              "\$config['db']['database'] = \"$sqlUrl\";\n\n");
     return $res;
@@ -247,9 +265,9 @@ function runDbScript($filename, $conn)
        <div id="core">
        <div id="content">
        <h1>Install Laconica</h1>
-<? main() ?>
+<?php main(); ?>
        </div>
        </div>
        </div>
 </body>
-</html>
\ No newline at end of file
+</html>
index 81139744ff9cdab7eb928df3f2e83a5df5611562..53e6eb7923c9da5734ed27846aa45ef839e1b848 100644 (file)
@@ -166,28 +166,36 @@ $(document).ready(function(){
                                                                                                                                                   $("#notice_action-submit").addClass("disabled");
                                                                                                                                                   return true;
                                                                                                                                                 },
-                                          success: function(xml) {     if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) {
+                                          success: function(xml) {     if ($("#error", xml).length > 0) {
                                                                                                        var result = document._importNode($("p", xml).get(0), true);
                                                                                                        result = result.textContent || result.innerHTML;
                                                                                                        alert(result);
                                                                                                }
                                                                                                else {
-                                                                                                       $("#notices_primary .notices").prepend(document._importNode($("li", xml).get(0), true));
+                                                                                                   if ($("#command_result", xml).length > 0) {
+                                                                                                           var result = document._importNode($("p", xml).get(0), true);
+                                                                                                           result = result.textContent || result.innerHTML;
+                                                                                                           alert(result);
+                                                    }
+                                                    else {
+                                                                                                           $("#notices_primary .notices").prepend(document._importNode($("li", xml).get(0), true));
+                                                                                                           $("#notices_primary .notice:first").css({display:"none"});
+                                                                                                           $("#notices_primary .notice:first").fadeIn(2500);
+                                                                                                           NoticeHover();
+                                                                                                           NoticeReply();
+                                                                                                       }
                                                                                                        $("#notice_data-text").val("");
-                                                                                                       counter();
-                                                                                                       $("#notices_primary .notice:first").css({display:"none"});
-                                                                                                       $("#notices_primary .notice:first").fadeIn(2500);
-                                                                                                       NoticeHover();
-                                                                                                       NoticeReply();
+                                                    counter();
                                                                                                }
                                                                                                $("#form_notice").removeClass("processing");
                                                                                                $("#notice_action-submit").removeAttr("disabled");
                                                                                                $("#notice_action-submit").removeClass("disabled");
                                                                                         }
                                           };
-       $("#form_notice").ajaxForm(PostNotice);
-       $("#form_notice").each(addAjaxHidden);
-
+    if (document.body.id  != 'inbox' && document.body.id != 'outbox') {
+           $("#form_notice").ajaxForm(PostNotice);
+           $("#form_notice").each(addAjaxHidden);
+    }
     NoticeHover();
     NoticeReply();
 });
index cc98d4445a4b6c1d95b602b50677c14c28d53cd8..2ec9329e052d25d90745a8bae55638e21e17f5b8 100644 (file)
@@ -124,6 +124,7 @@ class Action extends HTMLOutputter // lawsuit
         $this->showShortcutIcon();
         $this->showStylesheets();
         $this->showScripts();
+        $this->showRelationshipLinks();
         $this->showOpenSearch();
         $this->showFeeds();
         $this->showDescription();
@@ -192,10 +193,6 @@ class Action extends HTMLOutputter // lawsuit
     {
         if (Event::handle('StartShowStyles', array($this))) {
             if (Event::handle('StartShowLaconicaStyles', array($this))) {
-                $this->element('link', array('rel' => 'stylesheet',
-                                             'type' => 'text/css',
-                                             'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION,
-                                             'media' => 'screen, projection, tv'));
                 $this->element('link', array('rel' => 'stylesheet',
                                              'type' => 'text/css',
                                              'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION,
@@ -264,6 +261,19 @@ class Action extends HTMLOutputter // lawsuit
         }
     }
 
+    /**
+     * Show document relationship links
+     *
+     * SHOULD overload
+     *
+     * @return nothing
+     */
+    function showRelationshipLinks()
+    {
+        // output <link> elements with appropriate HTML4.01 link types:
+        // http://www.w3.org/TR/html401/types.html#type-links
+    }
+
     /**
      * Show OpenSearch headers
      *
@@ -791,9 +801,12 @@ class Action extends HTMLOutputter // lawsuit
      *
      * MAY override
      *
+     * @param array $args other arguments
+     *
      * @return boolean is read only action?
      */
-    function isReadOnly()
+
+    function isReadOnly($args)
     {
         return false;
     }
@@ -1039,4 +1052,36 @@ class Action extends HTMLOutputter // lawsuit
     {
         return null;
     }
+
+    /**
+     * Generate document metadata for sequential navigation
+     *
+     * @param boolean $have_before is there something before?
+     * @param boolean $have_after  is there something after?
+     * @param integer $page        current page
+     * @param string  $action      current action
+     * @param array   $args        rest of query arguments
+     *
+     * @return nothing
+     */
+    function sequenceRelationships($have_next, $have_previous, $page, $action, $args=null)
+    {
+        // Outputs machine-readable pagination in <link> elements.
+        // Pattern taken from $this->pagination() method.
+
+        // "next" is equivalent to "after"
+        if ($have_next) {
+            $pargs   = array('page' => $page-1);
+            $this->element('link', array('rel' => 'next',
+                                         'href' => common_local_url($action, $args, $pargs),
+                                         'title' => _('Next')));
+        }
+        // "previous" is equivalent to "before"
+        if ($have_previous=true) { // FIXME
+            $pargs   = array('page' => $page+1);
+            $this->element('link', array('rel' => 'prev',
+                                         'href' => common_local_url($action, $args, $pargs),
+                                         'title' => _('Previous')));
+        }
+    }
 }
index 526d9f81be245a36e1173814415b25e6e3720818..282682133a2c64abd366ef1102fd2869c74b4648 100644 (file)
@@ -93,7 +93,7 @@ class ErrorAction extends Action
         return $this->message;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 8e21d7393b082950a3113b7758e6f1a601a36ad3..0484918ce22d59e35d0a4af3e56f47a1d6778ad2 100644 (file)
@@ -76,7 +76,7 @@ class GalleryAction extends Action
         return true;
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index 0cdcf0c51642bfec6081c7e8ed8a5d16313c29bc..f786c20a806ed53c3c55cff6eb9c0cbe0367dad5 100644 (file)
@@ -232,7 +232,7 @@ class ResultItem
         $this->profile_image_url = ($avatar) ?
             $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE);
 
-        $this->created_at = date('r', $this->notice->created);
+        $this->created_at = common_date_rfc2822($this->notice->created);
     }
 
     /**
index f8ab7cf3b65d2109d17b8adae2d017fc6a09f002..d3f8408525ae3eb3dd43f9c5a50b37d63bca1841 100644 (file)
@@ -67,7 +67,7 @@ class PeopleSearchResults extends ProfileList
         return preg_replace($this->pattern, '<strong>\\1</strong>', htmlspecialchars($text));
     }
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
         return true;
     }
index e46350c630870385b44236a0cdc27e2f163db49c..f92732375b53ff4c4967e98965fb7668d7f31f83 100644 (file)
@@ -47,7 +47,7 @@ class PersonalAction extends Action
 
     var $user = null;
 
-    function isReadOnly()
+    function isReadOnly($args)
     {
          return true;
     }
index 63e6138df2dee7b182d0a38e40f128e945afe461..acc0336673f5071e4c9fea95f3f51b4cf22dc03f 100644 (file)
@@ -93,43 +93,45 @@ class PersonalGroupNav extends Widget
 
         $this->out->elementStart('ul', array('class' => 'nav'));
 
-        $this->out->menuItem(common_local_url('all', array('nickname' =>
-                                                       $nickname)),
-                         _('Personal'),
-                         sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
-                         $action == 'all', 'nav_timeline_personal');
-        $this->out->menuItem(common_local_url('replies', array('nickname' =>
-                                                              $nickname)),
-                         _('Replies'),
-                         sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
-                         $action == 'replies', 'nav_timeline_replies');
-        $this->out->menuItem(common_local_url('showstream', array('nickname' =>
-                                                              $nickname)),
-                         _('Profile'),
-                         ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
-                         $action == 'showstream', 'nav_profile');
-        $this->out->menuItem(common_local_url('showfavorites', array('nickname' =>
-                                                              $nickname)),
-                         _('Favorites'),
-                         sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
-                         $action == 'showfavorites', 'nav_timeline_favorites');
+        if (Event::handle('StartPersonalGroupNav', array($this))) {
+            $this->out->menuItem(common_local_url('all', array('nickname' =>
+                                                           $nickname)),
+                             _('Personal'),
+                             sprintf(_('%s and friends'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
+                             $action == 'all', 'nav_timeline_personal');
+            $this->out->menuItem(common_local_url('replies', array('nickname' =>
+                                                                  $nickname)),
+                             _('Replies'),
+                             sprintf(_('Replies to %s'), (($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname)),
+                             $action == 'replies', 'nav_timeline_replies');
+            $this->out->menuItem(common_local_url('showstream', array('nickname' =>
+                                                                  $nickname)),
+                             _('Profile'),
+                             ($user_profile && $user_profile->fullname) ? $user_profile->fullname : $nickname,
+                             $action == 'showstream', 'nav_profile');
+            $this->out->menuItem(common_local_url('showfavorites', array('nickname' =>
+                                                                  $nickname)),
+                             _('Favorites'),
+                             sprintf(_('%s\'s favorite notices'), ($user_profile) ? $user_profile->getBestName() : _('User')),
+                             $action == 'showfavorites', 'nav_timeline_favorites');
 
-        $cur = common_current_user();
+            $cur = common_current_user();
 
-        if ($cur && $cur->id == $user->id) {
+            if ($cur && $cur->id == $user->id) {
 
-            $this->out->menuItem(common_local_url('inbox', array('nickname' =>
-                                                                     $nickname)),
-                             _('Inbox'),
-                             _('Your incoming messages'),
-                             $action == 'inbox');
-            $this->out->menuItem(common_local_url('outbox', array('nickname' =>
-                                                                     $nickname)),
-                             _('Outbox'),
-                             _('Your sent messages'),
-                             $action == 'outbox');
+                $this->out->menuItem(common_local_url('inbox', array('nickname' =>
+                                                                         $nickname)),
+                                 _('Inbox'),
+                                 _('Your incoming messages'),
+                                 $action == 'inbox');
+                $this->out->menuItem(common_local_url('outbox', array('nickname' =>
+                                                                         $nickname)),
+                                 _('Outbox'),
+                                 _('Your sent messages'),
+                                 $action == 'outbox');
+            }
+            Event::handle('EndPersonalGroupNav', array($this));
         }
-
         $this->out->elementEnd('ul');
     }
 }
index 0505f0fa9ac857b1846ee838ce81e4b83b620219..a8d47ef542b5a0ea9e2c7c344de0f928c4af9035 100644 (file)
@@ -50,17 +50,26 @@ class PopularNoticeSection extends NoticeSection
     {
         if (common_config('db', 'type') == 'pgsql') {
             $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))';
+            if (!empty($this->out->tag)) {
+                $tag = pg_escape_string($this->tag);
+            }
         } else {
             $weightexpr='sum(exp(-(now() - fave.modified) / %s))';
+            if (!empty($this->out->tag)) {
+                 $tag = mysql_escape_string($this->out->tag);
+            }
         }
-
-        $qry = 'SELECT notice.*, '.
-          $weightexpr . ' as weight ' .
-          'FROM notice JOIN fave ON notice.id = fave.notice_id ' .
-          'GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' .
-                   'notice.rendered,notice.url,notice.created,notice.modified,' .
-                   'notice.reply_to,notice.is_local,notice.source ' .
-          'ORDER BY weight DESC';
+        $qry = "SELECT notice.*, $weightexpr as weight ";
+        if(isset($tag)) {
+            $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' .
+                    "WHERE notice.id = notice_tag.notice_id and '$tag' = notice_tag.tag";
+        } else {
+            $qry .= 'FROM notice JOIN fave ON notice.id = fave.notice_id';
+        }
+        $qry .= ' GROUP BY notice.id,notice.profile_id,notice.content,notice.uri,' .
+                'notice.rendered,notice.url,notice.created,notice.modified,' .
+                'notice.reply_to,notice.is_local,notice.source ' .
+                'ORDER BY weight DESC';
 
         $offset = 0;
         $limit  = NOTICES_PER_SECTION + 1;
index c81924e316e3be03527acddf31c309567f96df1f..1f2e309945c2ca3af30ba054c277b95445c7a25c 100644 (file)
@@ -179,6 +179,11 @@ class ProfileAction extends Action
         $this->element('h2', null, _('Statistics'));
 
         // Other stats...?
+        $this->elementStart('dl', 'entity_user-id');
+        $this->element('dt', null, _('User ID'));
+        $this->element('dd', null, $this->profile->id);
+        $this->elementEnd('dl');
+
         $this->elementStart('dl', 'entity_member-since');
         $this->element('dt', null, _('Member since'));
         $this->element('dd', null, date('j M Y',
diff --git a/lib/subpeopletagcloudsection.php b/lib/subpeopletagcloudsection.php
new file mode 100644 (file)
index 0000000..d98f28a
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Personal tag cloud section
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Personal tag cloud section
+ *
+ * @category Widget
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ */
+
+class SubPeopleTagCloudSection extends TagCloudSection
+{
+    function getTags()
+    {
+        $qry = $this->query();
+        $limit = TAGS_PER_SECTION;
+        $offset = 0;
+
+        if (common_config('db','type') == 'pgsql') {
+            $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+        } else {
+            $qry .= ' LIMIT ' . $offset . ', ' . $limit;
+        }
+
+        $profile_tag = Memcached_DataObject::cachedQuery('Profile_tag',
+                                                 sprintf($qry,
+                                                         $this->out->user->id));
+        return $profile_tag;
+    }
+
+    function tagUrl($tag) {
+        return common_local_url('peopletag', array('tag' => $tag));
+    }
+
+    function showTag($tag, $weight, $relative) {
+        $rel = 'tag-cloud-';
+        $rel .= 1+intval(7 * $relative * $weight - 0.01);
+
+        $this->out->elementStart('li', $rel);
+        $this->out->element('a', array('href' => $this->tagUrl($tag)), $tag);
+        $this->out->elementEnd('li');
+    }
+}
diff --git a/lib/subscriberspeopleselftagcloudsection.php b/lib/subscriberspeopleselftagcloudsection.php
new file mode 100644 (file)
index 0000000..b5a39c6
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Personal tag cloud section
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Personal tag cloud section
+ *
+ * @category Widget
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ */
+
+class SubscribersPeopleSelfTagCloudSection extends SubPeopleTagCloudSection
+{
+    function title()
+    {
+        return _('People Tagcloud as self-tagged');
+    }
+
+    function query() {
+        return 'select tag, count(tag) as weight from subscription left join profile_tag on tagger = subscriber where subscribed=%d and subscribed != subscriber and tagger = tagged group by tag order by weight desc';
+    }
+}
diff --git a/lib/subscriberspeopletagcloudsection.php b/lib/subscriberspeopletagcloudsection.php
new file mode 100644 (file)
index 0000000..23011ef
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Personal tag cloud section
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Personal tag cloud section
+ *
+ * @category Widget
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ */
+
+class SubscribersPeopleTagCloudSection extends SubPeopleTagCloudSection
+{
+    function title()
+    {
+        return _('People Tagcloud as tagged');
+    }
+
+    function tagUrl($tag) {
+        $nickname = $this->out->profile->nickname;
+        return common_local_url('subscribers', array('nickname' => $nickname, 'tag' => $tag));
+    }
+
+
+    function query() {
+        return 'select tag, count(tag) as weight from subscription left join profile_tag on subscriber=tagged and subscribed=tagger where subscribed=%d and subscriber != subscribed group by tag order by weight desc';
+    }
+}
diff --git a/lib/subscriptionspeopleselftagcloudsection.php b/lib/subscriptionspeopleselftagcloudsection.php
new file mode 100644 (file)
index 0000000..8ac65ad
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Personal tag cloud section
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Personal tag cloud section
+ *
+ * @category Widget
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ */
+
+class SubscriptionsPeopleSelfTagCloudSection extends SubPeopleTagCloudSection
+{
+    function title()
+    {
+        return _('People Tagcloud as self-tagged');
+    }
+
+    function query() {
+        return 'select tag, count(tag) as weight from subscription left join profile_tag on tagger = subscriber where subscribed=%d and subscriber != subscribed and tagger = tagged group by tag order by weight desc';
+    }
+}
diff --git a/lib/subscriptionspeopletagcloudsection.php b/lib/subscriptionspeopletagcloudsection.php
new file mode 100644 (file)
index 0000000..c3f7d17
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Laconica, the distributed open-source microblogging tool
+ *
+ * Personal tag cloud section
+ *
+ * PHP version 5
+ *
+ * LICENCE: This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category  Widget
+ * @package   Laconica
+ * @author    Evan Prodromou <evan@controlyourself.ca>
+ * @copyright 2009 Control Yourself, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://laconi.ca/
+ */
+
+if (!defined('LACONICA')) {
+    exit(1);
+}
+
+/**
+ * Personal tag cloud section
+ *
+ * @category Widget
+ * @package  Laconica
+ * @author   Evan Prodromou <evan@controlyourself.ca>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://laconi.ca/
+ */
+
+class SubscriptionsPeopleTagCloudSection extends SubPeopleTagCloudSection
+{
+    function title()
+    {
+        return _('People Tagcloud as tagged');
+    }
+
+    function tagUrl($tag) {
+        $nickname = $this->out->profile->nickname;
+        return common_local_url('subscriptions', array('nickname' => $nickname, 'tag' => $tag));
+    }
+
+    function query() {
+        return 'select tag, count(tag) as weight from subscription left join profile_tag on subscriber=tagger and subscribed=tagged where subscriber=%d and subscriber != subscribed group by tag order by weight desc';
+    }
+}
index b8357c6889545e9a1f5d191b1401637fd0a09e94..6a90b4e2885701d83c99cfe93d08ac0afdf48161 100644 (file)
@@ -418,7 +418,7 @@ class TwitterapiAction extends Action
     function date_twitter($dt)
     {
         $t = strtotime($dt);
-        return date("D M d G:i:s O Y", $t);
+        return date("D M d H:i:s O Y", $t);
     }
 
     // XXX: Candidate for a general utility method somewhere?
index ab5e99593ee75a151562125827993b120b23364b..e0eda0114b7101e046c55df94a3cb95919550bd4 100644 (file)
@@ -1326,3 +1326,16 @@ function common_compatible_license($from, $to)
     // XXX: better compatibility check needed here!
     return ($from == $to);
 }
+
+/**
+ * returns a quoted table name, if required according to config
+ */
+function common_database_tablename($tablename)
+{
+  
+  if(common_config('db','quote_identifiers')) {
+      $tablename = '"'. $tablename .'"';
+  }
+  //table prefixes could be added here later
+  return $tablename;
+}
index faf549054a60598a97fd0c12e9e7fef0a804d69d..9a9cdccf3265c0269c00564a40b4453d073b730c 100644 (file)
Binary files a/locale/pl_PL/LC_MESSAGES/laconica.mo and b/locale/pl_PL/LC_MESSAGES/laconica.mo differ
index 9a61ada6bdea901d4af1e768d0ebae596896df06..8da9dd59b3b7f528b35ec44f72986923d00b2263 100644 (file)
@@ -1,41 +1,33 @@
-# #-#-#-#-#  laconica.pot (PACKAGE VERSION)  #-#-#-#-#
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
+# translation of pl.po to Polish
 # Paweł Wilk <siefca@gnu.org>, 2008.
+# Piotr Drąg <piotrdrag@gmail.com>, 2009.
 #
-# #-#-#-#-#  laconica.new.pot (PACKAGE VERSION)  #-#-#-#-#
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Polish language has 3 plural forms.
+# Special case is used for one and some numbers ending in 2, 3, or 4.
+# Example:
+# 1         WINDOW  -> 1 OKNO
+# x2 to x4  WINDOWS -> x2 do x4 OKNA (x != 1)
+# 5 or more WINDOWS -> 5 lub więcej OKIEN
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-25 16:24+0000\n"
-"PO-Revision-Date: 2009-02-28 17:14+0000\n"
-"Last-Translator: Ryba <ryba-laconica@h4v.eu>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
+"POT-Creation-Date: 2009-03-11 09:33+0000\n"
+"PO-Revision-Date: 2009-04-10 00:39+0200\n"
+"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
+"Language-Team: Polish <pl@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-"X-Generator: Pootle 1.1.0\n"
-
-#  Polish language has 3 plural forms.
-#  Special case is used for one and some numbers ending in 2, 3, or 4.
-#  Example:
-#  1         WINDOW   -> 1 OKNO
-#  x2 to x4  WINDOWS  -> x2 do x4 OKNA  (x != 1)
-#  5 or more WINDOWS  -> 5 lub więcej OKIEN
+"Plural-Forms:  nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
 #: ../actions/noticesearchrss.php:64 actions/noticesearchrss.php:68
 #: actions/noticesearchrss.php:88
 #, php-format
 msgid " Search Stream for \"%s\""
-msgstr "Szukaj strumienia dla \"%s\""
+msgstr " Znajdź strumień dla \"%s\""
 
 #: ../actions/finishopenidlogin.php:82 ../actions/register.php:191
 #: actions/finishopenidlogin.php:88 actions/register.php:205
@@ -43,26 +35,27 @@ msgstr "Szukaj strumienia dla \"%s\""
 msgid ""
 " except this private data: password, email address, IM address, phone number."
 msgstr ""
-"z wyłączeniem tych prywatnych danych: e-maila, identyfikatora IM, numeru "
+" poza tymi prywatnymi danymi: hasło, adres e-mail, adres komunikatora, numer "
 "telefonu."
 
 #: ../actions/showstream.php:400 ../lib/stream.php:109
 #: actions/showstream.php:418 lib/mailbox.php:164 lib/stream.php:76
 msgid " from "
-msgstr ""
+msgstr " od "
 
 #: ../actions/twitapistatuses.php:478 actions/twitapistatuses.php:412
-#: actions/twitapistatuses.php:347
+#: actions/twitapistatuses.php:347 actions/twitapistatuses.php:363
 #, php-format
 msgid "%1$s / Updates replying to %2$s"
-msgstr ""
+msgstr "%1$s/aktualizacje odpowiadające na %2$s"
 
 #: ../actions/invite.php:168 actions/invite.php:176 actions/invite.php:211
+#: actions/invite.php:218
 #, php-format
 msgid "%1$s has invited you to join them on %2$s"
-msgstr "%1$s zapraszają Cię byś dołączył do nich w %2$s"
+msgstr "%1$s zapraszają Cię, abyś dołączył do nich w %2$s"
 
-#: ../actions/invite.php:170
+#: ../actions/invite.php:170 actions/invite.php:220
 #, php-format
 msgid ""
 "%1$s has invited you to join them on %2$s (%3$s).\n"
@@ -92,11 +85,38 @@ msgid ""
 "\n"
 "Sincerely, %2$s\n"
 msgstr ""
+"Użytkownik %1$s zapraszają Cię, abyś dołączył do nich w %2$s (%3$s).\n"
+"\n"
+"%2$s jest usługą mikroblogowania, która umożliwia pozostawanie w kontakcie z "
+"osobami, których znasz i z tymi, którzy Cię interesują.\n"
+"\n"
+"Możesz także dzielić się w sieci nowinkami o sobie, swoimi przemyśleniami, "
+"lub swoim życiem z osobami, którzy Cię znają. To także wspaniały sposób na "
+"poznawanie nowych osób, którzy dzielą Twoje zainteresowania.\n"
+"\n"
+"Użytkownik %1$s powiedział:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Możesz zobaczyć stronę profilu %1$s na %2$s tutaj:\n"
+"\n"
+"%5$s\n"
+"\n"
+"Jeśli chcesz wypróbować usługę, naciśnij na poniższy odnośnik, aby "
+"zaakceptować zaproszenie.\n"
+"\n"
+"%6$s\n"
+"\n"
+"Jeśli nie, możesz zignorować tę wiadomość. Dziękujemy za Twoją cierpliwość i "
+"czas.\n"
+"\n"
+"Z poważaniem, %2$s\n"
 
 #: ../lib/mail.php:124 lib/mail.php:124 lib/mail.php:126 lib/mail.php:241
+#: lib/mail.php:236
 #, php-format
 msgid "%1$s is now listening to your notices on %2$s."
-msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s."
+msgstr "Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s."
 
 #: ../lib/mail.php:126
 #, php-format
@@ -108,16 +128,18 @@ msgid ""
 "Faithfully yours,\n"
 "%4$s.\n"
 msgstr ""
-"%1$s obserwuje teraz Twoje wpisy na %2$s.\n"
+"Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s.\n"
+"\n"
+"\t%3$s\n"
 "\n"
-"Kłaniam się,\n"
+"Z poważaniem,\n"
 "%4$s.\n"
 
 #: ../actions/twitapistatuses.php:482 actions/twitapistatuses.php:415
-#: actions/twitapistatuses.php:350
+#: actions/twitapistatuses.php:350 actions/twitapistatuses.php:367
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
-msgstr ""
+msgstr "%1$s aktualizuje tę odpowiedź na aktualizacje od %2$s/%3$s."
 
 #: ../actions/shownotice.php:45 actions/shownotice.php:45
 #: actions/shownotice.php:161
@@ -129,7 +151,7 @@ msgstr "Status użytkownika %1$s na %2$s"
 #: actions/invite.php:99 actions/invite.php:123 actions/invite.php:131
 #, php-format
 msgid "%s (%s)"
-msgstr ""
+msgstr "%s (%s)"
 
 #: ../actions/publicrss.php:62 actions/publicrss.php:48
 #: actions/publicrss.php:90
@@ -142,68 +164,74 @@ msgstr "Publiczny strumień %s"
 #: actions/allrss.php:60 actions/twitapistatuses.php:155 lib/personal.php:51
 #: actions/all.php:65 actions/allrss.php:103 actions/facebookhome.php:164
 #: actions/twitapistatuses.php:126 lib/personalgroupnav.php:99
+#: actions/all.php:68 actions/all.php:114 actions/allrss.php:106
+#: actions/facebookhome.php:163 actions/twitapistatuses.php:130
 #, php-format
 msgid "%s and friends"
 msgstr "%s i przyjaciele"
 
 #: ../actions/twitapistatuses.php:49 actions/twitapistatuses.php:49
-#: actions/twitapistatuses.php:33
+#: actions/twitapistatuses.php:33 actions/twitapistatuses.php:32
 #, php-format
 msgid "%s public timeline"
 msgstr "Publiczna oś czasu %s"
 
-#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411
+#: ../lib/mail.php:206 lib/mail.php:212 lib/mail.php:411 lib/mail.php:412
 #, php-format
 msgid "%s status"
-msgstr "status %s"
+msgstr "Status %s"
 
 #: ../actions/twitapistatuses.php:338 actions/twitapistatuses.php:265
-#: actions/twitapistatuses.php:199
+#: actions/twitapistatuses.php:199 actions/twitapistatuses.php:209
 #, php-format
 msgid "%s timeline"
-msgstr "oś czasu %s"
+msgstr "Oś czasu %s"
 
 #: ../actions/twitapistatuses.php:52 actions/twitapistatuses.php:52
-#: actions/twitapistatuses.php:36
+#: actions/twitapistatuses.php:36 actions/twitapistatuses.php:38
 #, php-format
 msgid "%s updates from everyone!"
-msgstr ""
+msgstr "%s aktualizuje od każdego!"
 
-#: ../actions/register.php:213
+#: ../actions/register.php:213 actions/register.php:497
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
 "to confirm your email address.)"
 msgstr ""
+"(Powinieneś właśnie otrzymać wiadomość e-mail, zawierającą instrukcje "
+"potwierdzenia adresu e-mail)"
 
-#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605
+#: ../lib/util.php:257 lib/util.php:273 lib/action.php:605 lib/action.php:702
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
 "broughtby%%](%%site.broughtbyurl%%). "
 msgstr ""
-"**%%site.name%%** to serwis z mikroblogami prowadzony przez [%%site.broughtby"
-"%%](%%site.broughtbyurl%%)."
+"**%%site.name%%** jest usługą mikroblogowania prowadzony przez [%%site."
+"broughtby%%](%%site.broughtbyurl%%). "
 
-#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607
+#: ../lib/util.php:259 lib/util.php:275 lib/action.php:607 lib/action.php:704
 #, php-format
 msgid "**%%site.name%%** is a microblogging service. "
-msgstr "**%%site.name%%** to serwis do mikroblogowania."
+msgstr "**%%site.name%%** jest usługą mikroblogowania. "
 
 #: ../lib/util.php:274 lib/util.php:290
 msgid ". Contributors should be attributed by full name or nickname."
 msgstr ""
-". Współpracownicy powinni być wymienieni z imienia i nazwiska lub pseudonimu."
+". Współtwórcy powinni być wymienieni z imienia i nazwiska lub pseudonimu."
 
 #: ../actions/finishopenidlogin.php:73 ../actions/profilesettings.php:43
 #: actions/finishopenidlogin.php:79 actions/profilesettings.php:76
 #: actions/finishopenidlogin.php:101 actions/profilesettings.php:100
 #: lib/groupeditform.php:139
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
-msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych"
+msgstr "1-64 małe litery lub liczby, bez spacji i znaków przestankowych"
 
 #: ../actions/register.php:152 actions/register.php:166
+#: actions/register.php:368
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
 msgstr ""
+"1-64 małe litery lub liczby, bez spacji i znaków przestankowych. Wymagane."
 
 #: ../actions/password.php:42 actions/profilesettings.php:181
 #: actions/passwordsettings.php:102
@@ -213,39 +241,41 @@ msgstr "6 lub więcej znaków"
 #: ../actions/recoverpassword.php:180 actions/recoverpassword.php:186
 #: actions/recoverpassword.php:220
 msgid "6 or more characters, and don't forget it!"
-msgstr "6 lub więcej znaków – nie zapomnij go!"
+msgstr "6 lub więcej znaków, i nie zapomnij go!"
 
 #: ../actions/register.php:154 actions/register.php:168
 #: actions/register.php:373
 msgid "6 or more characters. Required."
-msgstr ""
+msgstr "6 lub więcej znaków. Wymagane."
 
 #: ../actions/imsettings.php:197 actions/imsettings.php:205
+#: actions/imsettings.php:321
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
 "s for sending messages to you."
 msgstr ""
-"Na Twój adres komunikatora został wysłany kod potwierdzający. Musisz "
+"Kod potwierdzający został wysłany na dodany adres komunikatora. Musisz "
 "zaakceptować otrzymywanie wiadomości od %s."
 
 #: ../actions/emailsettings.php:213 actions/emailsettings.php:231
+#: actions/emailsettings.php:350
 msgid ""
 "A confirmation code was sent to the email address you added. Check your "
 "inbox (and spam box!) for the code and instructions on how to use it."
 msgstr ""
-"Kod potwierdzający został wysłany na podany przez Ciebie adres e-mail. "
-"Sprawdź w swojej skrzynce odbiorczej (także w folderze SPAM) czy otrzymałeś "
-"kod i instrukcje dotyczące jego użycia. "
+"Kod potwierdzający został wysłany na dodany adres e-mail. Sprawdź w swojej "
+"skrzynce odbiorczej (także w wiadomościach niechcianych!), czy otrzymałeś "
+"kod i instrukcje dotyczące jego użycia."
 
 #: ../actions/smssettings.php:216 actions/smssettings.php:224
 msgid ""
 "A confirmation code was sent to the phone number you added. Check your inbox "
 "(and spam box!) for the code and instructions on how to use it."
 msgstr ""
-"Kod potwierdzający został wysłany na podany przez Ciebie numer telefonu. "
-"Sprawdź w swojej skrzynce odbiorczej (także w folderze SPAM) czy otrzymałeś "
-"kod i instrukcje dotyczące jego użycia. "
+"Kod potwierdzający został wysłany na dodany numer telefonu. Sprawdź w swojej "
+"skrzynce odbiorczej (także w wiadomościach niechcianych!), czy otrzymałeś "
+"kod i instrukcje dotyczące jego użycia."
 
 #: ../actions/twitapiaccount.php:49 ../actions/twitapihelp.php:45
 #: ../actions/twitapistatuses.php:88 ../actions/twitapistatuses.php:259
@@ -265,9 +295,14 @@ msgstr ""
 #: actions/twitapistatuses.php:147 actions/twitapistatuses.php:228
 #: actions/twitapistatuses.php:239 actions/twitapistatuses.php:392
 #: actions/twitapistatuses.php:402 actions/twitapistatuses.php:429
-#: actions/twitapiusers.php:32
+#: actions/twitapiusers.php:32 actions/twitapidirect_messages.php:120
+#: actions/twitapifavorites.php:91 actions/twitapifavorites.php:108
+#: actions/twitapistatuses.php:82 actions/twitapistatuses.php:159
+#: actions/twitapistatuses.php:246 actions/twitapistatuses.php:257
+#: actions/twitapistatuses.php:416 actions/twitapistatuses.php:426
+#: actions/twitapistatuses.php:453
 msgid "API method not found!"
-msgstr "metoda API nie znaleziona!"
+msgstr "Nie znaleziono metody API!"
 
 #: ../actions/twitapiaccount.php:57 ../actions/twitapiaccount.php:113
 #: ../actions/twitapiaccount.php:119 ../actions/twitapiblocks.php:28
@@ -288,18 +323,21 @@ msgstr "metoda API nie znaleziona!"
 #: actions/twitapidirect_messages.php:184 actions/twitapifavorites.php:143
 #: actions/twitapihelp.php:52 actions/twitapilaconica.php:172
 #: actions/twitapinotifications.php:31 actions/twitapinotifications.php:37
-#: actions/twitapistatuses.php:562
+#: actions/twitapistatuses.php:562 actions/twitapiaccount.php:46
+#: actions/twitapiaccount.php:98 actions/twitapiaccount.php:104
+#: actions/twitapidirect_messages.php:193 actions/twitapifavorites.php:149
+#: actions/twitapistatuses.php:625 actions/twitapitrends.php:87
 msgid "API method under construction."
-msgstr "metoda API w trakcie powstawania."
+msgstr "Metoda API jest w trakcie tworzenia."
 
-#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568
+#: ../lib/util.php:324 lib/util.php:340 lib/action.php:568 lib/action.php:661
 msgid "About"
-msgstr "O serwisie"
+msgstr "O usłudze"
 
 #: ../actions/userauthorization.php:119 actions/userauthorization.php:126
 #: actions/userauthorization.php:143
 msgid "Accept"
-msgstr "Akceptuj"
+msgstr "Zaakceptuj"
 
 #: ../actions/emailsettings.php:62 ../actions/imsettings.php:63
 #: ../actions/openidsettings.php:57 ../actions/smssettings.php:71
@@ -308,6 +346,7 @@ msgstr "Akceptuj"
 #: actions/twittersettings.php:85 actions/emailsettings.php:120
 #: actions/imsettings.php:127 actions/openidsettings.php:111
 #: actions/smssettings.php:133 actions/twittersettings.php:163
+#: actions/twittersettings.php:166
 msgid "Add"
 msgstr "Dodaj"
 
@@ -330,13 +369,14 @@ msgid "Address"
 msgstr "Adres"
 
 #: ../actions/invite.php:131 actions/invite.php:139 actions/invite.php:176
+#: actions/invite.php:181
 msgid "Addresses of friends to invite (one per line)"
-msgstr "Adresy subskrybentów, których zapraszasz (jeden w każdej linii)"
+msgstr "Adresy przyjaciół, których zapraszasz (jeden na wiersz)"
 
 #: ../actions/showstream.php:273 actions/showstream.php:288
 #: actions/showstream.php:422
 msgid "All subscriptions"
-msgstr "Wszyscy obserwowani"
+msgstr "Wszystkie subskrypcje"
 
 #: ../actions/publicrss.php:64 actions/publicrss.php:50
 #: actions/publicrss.php:92
@@ -348,7 +388,7 @@ msgstr "Wszystkie aktualizacje od %s"
 #: actions/noticesearchrss.php:90
 #, php-format
 msgid "All updates matching search term \"%s\""
-msgstr "Wszystkie aktualizacje pasujące do wzorca wyszukiwania \"%s\""
+msgstr "Wszystkie aktualizacje pasujące do wyszukiwanego terminu \"%s\""
 
 #: ../actions/finishopenidlogin.php:29 ../actions/login.php:31
 #: ../actions/openidlogin.php:29 ../actions/register.php:30
@@ -361,68 +401,72 @@ msgstr "Jesteś już zalogowany."
 
 #: ../lib/subs.php:42 lib/subs.php:42 lib/subs.php:49
 msgid "Already subscribed!."
-msgstr "Już obserwujesz!"
+msgstr "Już subskrybowane!"
 
 #: ../actions/deletenotice.php:54 actions/deletenotice.php:55
-#: actions/deletenotice.php:113
+#: actions/deletenotice.php:113 actions/deletenotice.php:114
 msgid "Are you sure you want to delete this notice?"
 msgstr "Jesteś pewien, że chcesz usunąć ten wpis?"
 
 #: ../actions/userauthorization.php:77 actions/userauthorization.php:83
 #: actions/userauthorization.php:81
 msgid "Authorize subscription"
-msgstr "Pozwól na obserwację"
+msgstr "Upoważnij subskrypcję"
 
 #: ../actions/login.php:104 ../actions/register.php:178
-#: actions/register.php:192
+#: actions/register.php:192 actions/login.php:218 actions/openidlogin.php:117
+#: actions/register.php:416
 msgid "Automatically login in the future; not for shared computers!"
 msgstr ""
-"Automatycznie loguj mnie na konto. Nie używać w przypadku współdzielonych "
-"komputerów!"
+"Automatyczne logowanie. Nie użyj na komputerach używanych przez wiele osób!"
 
 #: ../actions/profilesettings.php:65 actions/profilesettings.php:98
+#: actions/profilesettings.php:144
 msgid ""
 "Automatically subscribe to whoever subscribes to me (best for non-humans)"
 msgstr ""
-"Automatycznie zasubskrybuj każdego kto mnie zasubskrybuje (najlepsze dla "
+"Automatycznie zasubskrybuj każdego, kto mnie zasubskrybuje (najlepsze dla "
 "botów)"
 
 #: ../actions/avatar.php:32 ../lib/settingsaction.php:90
 #: actions/profilesettings.php:34 actions/avatarsettings.php:65
 #: actions/showgroup.php:209 lib/accountsettingsaction.php:107
+#: actions/avatarsettings.php:67 actions/showgroup.php:211
 msgid "Avatar"
 msgstr "Awatar"
 
 #: ../actions/avatar.php:113 actions/profilesettings.php:350
-#: actions/avatarsettings.php:395
+#: actions/avatarsettings.php:395 actions/avatarsettings.php:346
 msgid "Avatar updated."
-msgstr "Awatar załadowany."
+msgstr "Zaktualizowano awatar."
 
 #: ../actions/imsettings.php:55 actions/imsettings.php:56
+#: actions/imsettings.php:108
 #, php-format
 msgid ""
 "Awaiting confirmation on this address. Check your Jabber/GTalk account for a "
 "message with further instructions. (Did you add %s to your buddy list?)"
 msgstr ""
-"Oczekiwanie na potwierdzenie dla tego adresu. Sprawdź czy na Twoje konto "
-"Jabbera/GTalka przyszła wiadomość z dalszymi instrukcjami. (Nie zapomnij "
-"dodać %s do listy znajomych.)"
+"Oczekiwanie na potwierdzenie tego adresu. Sprawdź swoje konto Jabbera/GTalk, "
+"czy otrzymałeś wiadomość z dalszymi instrukcjami (dodałeś %s do listy "
+"znajomych?)."
 
 #: ../actions/emailsettings.php:54 actions/emailsettings.php:55
+#: actions/emailsettings.php:107
 msgid ""
 "Awaiting confirmation on this address. Check your inbox (and spam box!) for "
 "a message with further instructions."
 msgstr ""
-"Ten adres oczekuje potwierdzenia. Sprawdź swoją skrzynkę odbiorczą (także "
-"folder SPAM!) czy dostałeś wiadomość z dalszymi instrukcjami.  "
+"Oczekiwanie na potwierdzenie tego adresu. Sprawdź swoją skrzynkę odbiorczą "
+"(także w wiadomościach niechcianych!), czy otrzymałeś wiadomość z dalszymi "
+"instrukcjami."
 
 #: ../actions/smssettings.php:58 actions/smssettings.php:58
 #: actions/smssettings.php:111
 msgid "Awaiting confirmation on this phone number."
-msgstr "Oczekiwanie na potwierdzenie dla tego numeru telefonu."
+msgstr "Oczekiwanie na potwierdzenie tego numeru telefonu."
 
 #: ../lib/util.php:1318 lib/util.php:1452
-#, fuzzy
 msgid "Before »"
 msgstr "Wcześniej »"
 
@@ -436,23 +480,24 @@ msgstr "O mnie"
 #: ../actions/updateprofile.php:103 actions/profilesettings.php:216
 #: actions/register.php:89 actions/updateprofile.php:104
 #: actions/profilesettings.php:205 actions/register.php:174
-#: actions/updateprofile.php:107
+#: actions/updateprofile.php:107 actions/updateprofile.php:109
 msgid "Bio is too long (max 140 chars)."
-msgstr "Wpis \"O mnie\" jest za długi (maks. 140 znaków)"
+msgstr "Wpis \"O mnie\" jest za długi (maksymalnie 140 znaków)."
 
 #: ../lib/deleteaction.php:41 lib/deleteaction.php:41 lib/deleteaction.php:69
 msgid "Can't delete this notice."
-msgstr "Nie można usunąć tego wpisu. "
+msgstr "Nie można usunąć tego wpisu."
 
 #: ../actions/updateprofile.php:119 actions/updateprofile.php:120
-#: actions/updateprofile.php:123
+#: actions/updateprofile.php:123 actions/updateprofile.php:125
 #, php-format
 msgid "Can't read avatar URL '%s'"
-msgstr "Nie można odczytać URL-a awatara '%s'"
+msgstr "Nie można odczytać adresu URL awatara \"%s\""
 
 #: ../actions/password.php:85 ../actions/recoverpassword.php:300
 #: actions/profilesettings.php:404 actions/recoverpassword.php:313
 #: actions/passwordsettings.php:169 actions/recoverpassword.php:347
+#: actions/passwordsettings.php:174
 msgid "Can't save new password."
 msgstr "Nie można zapisać nowego hasła."
 
@@ -465,8 +510,9 @@ msgid "Cancel"
 msgstr "Anuluj"
 
 #: ../lib/openid.php:121 lib/openid.php:121 lib/openid.php:130
+#: lib/openid.php:133
 msgid "Cannot instantiate OpenID consumer object."
-msgstr "Nie można stworzyć instancji obiektu OpenID."
+msgstr "Nie można utworzyć instancji obiektu klienta OpenID."
 
 #: ../actions/imsettings.php:163 actions/imsettings.php:171
 #: actions/imsettings.php:286
@@ -474,9 +520,9 @@ msgid "Cannot normalize that Jabber ID"
 msgstr "Nie można znormalizować tego identyfikatora Jabbera"
 
 #: ../actions/emailsettings.php:181 actions/emailsettings.php:199
-#: actions/emailsettings.php:311
+#: actions/emailsettings.php:311 actions/emailsettings.php:318
 msgid "Cannot normalize that email address"
-msgstr ""
+msgstr "Nie można znormalizować tego adresu e-mail"
 
 #: ../actions/password.php:45 actions/profilesettings.php:184
 #: actions/passwordsettings.php:110
@@ -486,7 +532,7 @@ msgstr "Zmień"
 #: ../lib/settingsaction.php:88 lib/settingsaction.php:88
 #: lib/accountsettingsaction.php:114
 msgid "Change email handling"
-msgstr ""
+msgstr "Zmień obsługę adresu e-mail"
 
 #: ../actions/password.php:32 actions/profilesettings.php:36
 #: actions/passwordsettings.php:58
@@ -495,12 +541,12 @@ msgstr "Zmień hasło"
 
 #: ../lib/settingsaction.php:94 lib/accountsettingsaction.php:111
 msgid "Change your password"
-msgstr ""
+msgstr "Zmień hasło"
 
 #: ../lib/settingsaction.php:85 lib/settingsaction.php:85
 #: lib/accountsettingsaction.php:105
 msgid "Change your profile settings"
-msgstr ""
+msgstr "Zmień ustawienia profilu"
 
 #: ../actions/password.php:43 ../actions/recoverpassword.php:181
 #: ../actions/register.php:155 ../actions/smssettings.php:65
@@ -520,21 +566,21 @@ msgstr "Potwierdź adres"
 #: ../actions/smssettings.php:245 actions/emailsettings.php:256
 #: actions/imsettings.php:230 actions/smssettings.php:253
 #: actions/emailsettings.php:379 actions/imsettings.php:361
-#: actions/smssettings.php:374
+#: actions/smssettings.php:374 actions/emailsettings.php:386
 msgid "Confirmation cancelled."
 msgstr "Anulowano potwierdzenie."
 
 #: ../actions/smssettings.php:63 actions/smssettings.php:63
 #: actions/smssettings.php:118
 msgid "Confirmation code"
-msgstr ""
+msgstr "Kod potwierdzający"
 
 #: ../actions/confirmaddress.php:38 actions/confirmaddress.php:38
 #: actions/confirmaddress.php:80
 msgid "Confirmation code not found."
 msgstr "Nie znaleziono kodu potwierdzającego."
 
-#: ../actions/register.php:202
+#: ../actions/register.php:202 actions/register.php:473
 #, php-format
 msgid ""
 "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may "
@@ -552,9 +598,24 @@ msgid ""
 "\n"
 "Thanks for signing up and we hope you enjoy using this service."
 msgstr ""
+"Gratulacje, %s! Witaj na %%%%site.name%%%%. Stąd możesz chcieć...\n"
+"\n"
+"* Przejść do [swojego profilu](%s) i wysłać swoją pierwszą wiadomość.\n"
+"* Dodać [adres Jabbera/GTalk](%%%%action.imsettings%%%%), abyś mógł wysyłać "
+"wpisy przez komunikatora.\n"
+"* [Poszukać osób](%%%%action.peoplesearch%%%%), których możesz znać lub "
+"którzy dzielą Twoje zainteresowania. \n"
+"* Zaktualizować swoje [ustawienia profilu](%%%%action.profilesettings%%%%), "
+"aby powiedzieć innym więcej o sobie. \n"
+"* Przeczytać [dokumentację w sieci](%%%%doc.help%%%%), aby dowiedzieć się o "
+"funkcjach, które mogłeś pominąć. \n"
+"\n"
+"Dziękujemy za zarejestrowanie się i mamy nadzieję, że używanie tej usługi "
+"sprawi Ci przyjemność."
 
 #: ../actions/finishopenidlogin.php:91 actions/finishopenidlogin.php:97
-#: actions/finishopenidlogin.php:119 lib/action.php:330
+#: actions/finishopenidlogin.php:119 lib/action.php:330 lib/action.php:403
+#: lib/action.php:406
 msgid "Connect"
 msgstr "Połącz"
 
@@ -563,11 +624,12 @@ msgstr "Połącz"
 msgid "Connect existing account"
 msgstr "Połącz z istniejącym kontem"
 
-#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576
+#: ../lib/util.php:332 lib/util.php:348 lib/action.php:576 lib/action.php:669
 msgid "Contact"
 msgstr "Kontakt"
 
 #: ../lib/openid.php:178 lib/openid.php:178 lib/openid.php:187
+#: lib/openid.php:190
 #, php-format
 msgid "Could not create OpenID form: %s"
 msgstr "Nie można utworzyć formularza OpenID: %s"
@@ -577,45 +639,46 @@ msgstr "Nie można utworzyć formularza OpenID: %s"
 #: actions/twitapifriendships.php:48 actions/twitapifriendships.php:64
 #, php-format
 msgid "Could not follow user: %s is already on your list."
-msgstr ""
+msgstr "Nie można obserwować użytkownika: %s jest już na Twojej liście."
 
 #: ../actions/twitapifriendships.php:53 actions/twitapifriendships.php:53
 #: actions/twitapifriendships.php:41
 msgid "Could not follow user: User not found."
-msgstr ""
+msgstr "Nie można obserwować użytkownika: nie znaleziono użytkownika."
 
 #: ../lib/openid.php:160 lib/openid.php:160 lib/openid.php:169
+#: lib/openid.php:172
 #, php-format
 msgid "Could not redirect to server: %s"
 msgstr "Nie można przekierować do serwera: %s"
 
 #: ../actions/updateprofile.php:162 actions/updateprofile.php:163
-#: actions/updateprofile.php:166
+#: actions/updateprofile.php:166 actions/updateprofile.php:176
 msgid "Could not save avatar info"
 msgstr "Nie można zapisać informacji o awatarze"
 
 #: ../actions/updateprofile.php:155 actions/updateprofile.php:156
-#: actions/updateprofile.php:159
+#: actions/updateprofile.php:159 actions/updateprofile.php:163
 msgid "Could not save new profile info"
 msgstr "Nie można zapisać informacji o nowym profilu"
 
 #: ../lib/subs.php:54 lib/subs.php:61 lib/subs.php:72
 msgid "Could not subscribe other to you."
-msgstr ""
+msgstr "Nie można zasubskrybować innych do Ciebie."
 
 #: ../lib/subs.php:46 lib/subs.php:46 lib/subs.php:57
 msgid "Could not subscribe."
-msgstr ""
+msgstr "Nie można zasubskrybować."
 
 #: ../actions/recoverpassword.php:102 actions/recoverpassword.php:105
 #: actions/recoverpassword.php:111
 msgid "Could not update user with confirmed email address."
-msgstr ""
+msgstr "Nie można zaktualizować użytkownika z potwierdzonym adresem e-mail."
 
 #: ../actions/finishremotesubscribe.php:99
 #: actions/finishremotesubscribe.php:101 actions/finishremotesubscribe.php:114
 msgid "Couldn't convert request tokens to access tokens."
-msgstr "Nie można przekształcić tokenów z żądaniami na tokeny dostępu."
+msgstr "Nie można przekonwertować tokenów żądań na tokeny dostępu."
 
 #: ../actions/confirmaddress.php:84 ../actions/emailsettings.php:234
 #: ../actions/imsettings.php:218 ../actions/smssettings.php:241
@@ -623,52 +686,56 @@ msgstr "Nie można przekształcić tokenów z żądaniami na tokeny dostępu."
 #: actions/imsettings.php:226 actions/smssettings.php:249
 #: actions/confirmaddress.php:126 actions/emailsettings.php:375
 #: actions/imsettings.php:357 actions/smssettings.php:370
+#: actions/emailsettings.php:382
 msgid "Couldn't delete email confirmation."
-msgstr "Nie można skasować potwierdzenia adresu e-mail."
+msgstr "Nie można usunąć potwierdzenia adresu e-mail."
 
 #: ../lib/subs.php:103 lib/subs.php:116 lib/subs.php:134
 msgid "Couldn't delete subscription."
-msgstr "Nie można usunąć obserwacji."
+msgstr "Nie można usunąć subskrypcji."
 
 #: ../actions/twitapistatuses.php:93 actions/twitapistatuses.php:98
-#: actions/twitapistatuses.php:84
+#: actions/twitapistatuses.php:84 actions/twitapistatuses.php:87
 msgid "Couldn't find any statuses."
-msgstr ""
+msgstr "Nie można znaleźć żadnych statusów."
 
 #: ../actions/remotesubscribe.php:127 actions/remotesubscribe.php:136
 #: actions/remotesubscribe.php:178
 msgid "Couldn't get a request token."
-msgstr "Nie można uzyskać tokena z żądaniem."
+msgstr "Nie można uzyskać tokenu żądana."
 
 #: ../actions/emailsettings.php:205 ../actions/imsettings.php:187
 #: ../actions/smssettings.php:206 actions/emailsettings.php:223
 #: actions/imsettings.php:195 actions/smssettings.php:214
 #: actions/emailsettings.php:337 actions/imsettings.php:311
-#: actions/smssettings.php:325
+#: actions/smssettings.php:325 actions/emailsettings.php:344
 msgid "Couldn't insert confirmation code."
 msgstr "Nie można wprowadzić kodu potwierdzającego."
 
 #: ../actions/finishremotesubscribe.php:180
 #: actions/finishremotesubscribe.php:182 actions/finishremotesubscribe.php:218
 msgid "Couldn't insert new subscription."
-msgstr "Nie można wprowadzić nowej obserwacji."
+msgstr "Nie można wprowadzić nowej subskrypcji."
 
 #: ../actions/profilesettings.php:184 ../actions/twitapiaccount.php:96
 #: actions/profilesettings.php:299 actions/twitapiaccount.php:94
 #: actions/profilesettings.php:302 actions/twitapiaccount.php:81
+#: actions/twitapiaccount.php:82
 msgid "Couldn't save profile."
 msgstr "Nie można zapisać profilu."
 
 #: ../actions/profilesettings.php:161 actions/profilesettings.php:276
 #: actions/profilesettings.php:279
 msgid "Couldn't update user for autosubscribe."
-msgstr ""
+msgstr "Nie można zaktualizować użytkownika do automatycznej subskrypcji."
 
 #: ../actions/emailsettings.php:280 ../actions/emailsettings.php:294
 #: actions/emailsettings.php:298 actions/emailsettings.php:312
 #: actions/emailsettings.php:440 actions/emailsettings.php:462
+#: actions/emailsettings.php:447 actions/emailsettings.php:469
+#: actions/smssettings.php:515 actions/smssettings.php:539
 msgid "Couldn't update user record."
-msgstr ""
+msgstr "Nie można zaktualizować wpisu użytkownika."
 
 #: ../actions/confirmaddress.php:72 ../actions/emailsettings.php:156
 #: ../actions/emailsettings.php:259 ../actions/imsettings.php:138
@@ -682,7 +749,8 @@ msgstr ""
 #: actions/emailsettings.php:411 actions/imsettings.php:252
 #: actions/imsettings.php:395 actions/othersettings.php:162
 #: actions/profilesettings.php:259 actions/smssettings.php:266
-#: actions/smssettings.php:408
+#: actions/smssettings.php:408 actions/emailsettings.php:287
+#: actions/emailsettings.php:418
 msgid "Couldn't update user."
 msgstr "Nie można zaktualizować użytkownika."
 
@@ -694,57 +762,61 @@ msgstr "Utwórz"
 #: ../actions/finishopenidlogin.php:70 actions/finishopenidlogin.php:76
 #: actions/finishopenidlogin.php:98
 msgid "Create a new user with this nickname."
-msgstr "Załóż użytkownika o tym pseudonimie."
+msgstr "Utwórz nowego użytkownika o tym pseudonimie."
 
 #: ../actions/finishopenidlogin.php:68 actions/finishopenidlogin.php:74
 #: actions/finishopenidlogin.php:96
 msgid "Create new account"
-msgstr "Załóż nowe konto"
+msgstr "Utwórz nowe konto"
 
 #: ../actions/finishopenidlogin.php:191 actions/finishopenidlogin.php:197
 #: actions/finishopenidlogin.php:231
 msgid "Creating new account for OpenID that already has a user."
-msgstr "Tworzenie nowego konta użytkownika na podstawie identyfikatora OpenID."
+msgstr ""
+"Tworzenie nowego konta dla identyfikatora OpenID, który posiada już "
+"użytkownika."
 
 #: ../actions/imsettings.php:45 actions/imsettings.php:46
 #: actions/imsettings.php:100
 msgid "Current confirmed Jabber/GTalk address."
-msgstr "Potwierdzone adresy Jabbera/GTalka"
+msgstr "Obecnie potwierdzone adresy Jabbera/GTalk."
 
 #: ../actions/smssettings.php:46 actions/smssettings.php:46
 #: actions/smssettings.php:100
 msgid "Current confirmed SMS-enabled phone number."
-msgstr ""
+msgstr "Obecnie potwierdzone numery telefonów z włączoną usługą SMS."
 
 #: ../actions/emailsettings.php:44 actions/emailsettings.php:45
 #: actions/emailsettings.php:99
 msgid "Current confirmed email address."
-msgstr ""
+msgstr "Obecnie potwierdzone adresy e-mail."
 
 #: ../actions/showstream.php:356 actions/showstream.php:367
 msgid "Currently"
 msgstr "Obecnie"
 
 #: ../classes/Notice.php:72 classes/Notice.php:86 classes/Notice.php:91
+#: classes/Notice.php:114
 #, php-format
 msgid "DB error inserting hashtag: %s"
-msgstr ""
+msgstr "Błąd bazy danych podczas wprowadzania znacznika hasha: %s"
 
 #: ../lib/util.php:1061 lib/util.php:1110 classes/Notice.php:698
+#: classes/Notice.php:757
 #, php-format
 msgid "DB error inserting reply: %s"
-msgstr "Błąd przy dodawaniu do bazy danych: %s"
+msgstr "Błąd bazy danych podczas wprowadzania odpowiedzi: %s"
 
 #: ../actions/deletenotice.php:41 actions/deletenotice.php:41
-#: actions/deletenotice.php:79
+#: actions/deletenotice.php:79 actions/deletenotice.php:111
 msgid "Delete notice"
-msgstr ""
+msgstr "Usuń wpis"
 
 #: ../actions/profilesettings.php:51 ../actions/register.php:172
 #: actions/profilesettings.php:84 actions/register.php:186
-#: actions/profilesettings.php:114
+#: actions/profilesettings.php:114 actions/register.php:404
 msgid "Describe yourself and your interests in 140 chars"
-msgstr "Opisz się w 140 znakach"
+msgstr "Opisz się i swoje zainteresowania w 140 znakach"
 
 #: ../actions/register.php:158 ../actions/register.php:161
 #: ../lib/settingsaction.php:87 actions/register.php:172
@@ -756,59 +828,60 @@ msgstr "E-mail"
 #: ../actions/emailsettings.php:59 actions/emailsettings.php:60
 #: actions/emailsettings.php:115
 msgid "Email Address"
-msgstr ""
+msgstr "Adres e-mail"
 
 #: ../actions/emailsettings.php:32 actions/emailsettings.php:32
 #: actions/emailsettings.php:60
 msgid "Email Settings"
-msgstr ""
+msgstr "Ustawienia adresu e-mail"
 
 #: ../actions/register.php:73 actions/register.php:80 actions/register.php:163
 msgid "Email address already exists."
-msgstr "Taki e-mail już istnieje"
+msgstr "Adres e-mail już istnieje."
 
 #: ../lib/mail.php:90 lib/mail.php:90 lib/mail.php:173
 msgid "Email address confirmation"
-msgstr "Potwierdzenie adresu e-mailowego"
+msgstr "Potwierdzenie adresu e-mail"
 
 #: ../actions/emailsettings.php:61 actions/emailsettings.php:62
 #: actions/emailsettings.php:117
 msgid "Email address, like \"UserName@example.org\""
-msgstr ""
+msgstr "Adres e-mail, taki jak \"NazwaUżytkownika@przykład.org\""
 
 #: ../actions/invite.php:129 actions/invite.php:137 actions/invite.php:174
+#: actions/invite.php:179
 msgid "Email addresses"
-msgstr ""
+msgstr "Adresy e-mail"
 
 #: ../actions/recoverpassword.php:191 actions/recoverpassword.php:197
 #: actions/recoverpassword.php:231
 msgid "Enter a nickname or email address."
-msgstr "Podaj pseudonim lub adres e-mailowy"
+msgstr "Podaj pseudonim lub adres e-mail."
 
 #: ../actions/smssettings.php:64 actions/smssettings.php:64
 #: actions/smssettings.php:119
 msgid "Enter the code you received on your phone."
-msgstr ""
+msgstr "Podaj kod, który otrzymałeś na telefonie."
 
 #: ../actions/userauthorization.php:137 actions/userauthorization.php:144
 #: actions/userauthorization.php:161
 msgid "Error authorizing token"
-msgstr "Błąd podczas autoryzacji tokena"
+msgstr "Błąd podczas upoważniania tokena"
 
 #: ../actions/finishopenidlogin.php:253 actions/finishopenidlogin.php:259
-#: actions/finishopenidlogin.php:297
+#: actions/finishopenidlogin.php:297 actions/finishopenidlogin.php:302
 msgid "Error connecting user to OpenID."
-msgstr "Błąd w podłączaniu użytkownika do OpenID."
+msgstr "Błąd podczas łączenia użytkownika z OpenID."
 
 #: ../actions/finishaddopenid.php:78 actions/finishaddopenid.php:78
 #: actions/finishaddopenid.php:126
 msgid "Error connecting user."
-msgstr "Błąd w podłączaniu użytkownika."
+msgstr "Błąd podczas łączenia użytkownika."
 
 #: ../actions/finishremotesubscribe.php:151
 #: actions/finishremotesubscribe.php:153 actions/finishremotesubscribe.php:166
 msgid "Error inserting avatar"
-msgstr "Błąd we wstawianiu awatara"
+msgstr "Błąd podczas wprowadzania awatara"
 
 #: ../actions/finishremotesubscribe.php:143
 #: actions/finishremotesubscribe.php:145 actions/finishremotesubscribe.php:158
@@ -823,33 +896,36 @@ msgstr "Błąd podczas wprowadzania zdalnego profilu"
 #: ../actions/recoverpassword.php:240 actions/recoverpassword.php:246
 #: actions/recoverpassword.php:280
 msgid "Error saving address confirmation."
-msgstr "Błąd w zapisie potwierdzenia adresu."
+msgstr "Błąd podczas zapisywania potwierdzenia adresu."
 
 #: ../actions/userauthorization.php:140 actions/userauthorization.php:147
 #: actions/userauthorization.php:164
 msgid "Error saving remote profile"
-msgstr "Błąd w zapisie zdalnego profilu."
+msgstr "Błąd podczas zapisie zdalnego profilu"
 
 #: ../lib/openid.php:226 lib/openid.php:226 lib/openid.php:235
+#: lib/openid.php:238
 msgid "Error saving the profile."
-msgstr "Błąd w zapisie profilu."
+msgstr "Błąd podczas zapisywania profilu."
 
 #: ../lib/openid.php:237 lib/openid.php:237 lib/openid.php:246
+#: lib/openid.php:249
 msgid "Error saving the user."
-msgstr "Błąd w zapisie użytkownika."
+msgstr "Błąd podczas zapisywanie użytkownika."
 
 #: ../actions/password.php:80 actions/profilesettings.php:399
-#: actions/passwordsettings.php:164
+#: actions/passwordsettings.php:164 actions/passwordsettings.php:169
 msgid "Error saving user; invalid."
-msgstr "Błąd podczas zapisywania użytkownika; niepoprawne dane."
+msgstr "Błąd podczas zapisywania użytkownika; nieprawidłowy."
 
 #: ../actions/login.php:47 ../actions/login.php:73
 #: ../actions/recoverpassword.php:307 ../actions/register.php:98
 #: actions/login.php:47 actions/login.php:73 actions/recoverpassword.php:320
 #: actions/register.php:108 actions/login.php:112 actions/login.php:138
 #: actions/recoverpassword.php:354 actions/register.php:198
+#: actions/login.php:120
 msgid "Error setting user."
-msgstr "Błąd w ustawianiu danych użytkownika."
+msgstr "Błąd podczas ustawiania użytkownika."
 
 #: ../actions/finishaddopenid.php:83 actions/finishaddopenid.php:83
 #: actions/finishaddopenid.php:131
@@ -869,78 +945,83 @@ msgstr "Błąd kodu potwierdzającego."
 #: ../actions/finishopenidlogin.php:89 actions/finishopenidlogin.php:95
 #: actions/finishopenidlogin.php:117
 msgid "Existing nickname"
-msgstr "Dotychczasowy pseudonim"
+msgstr "Istniejący pseudonim"
 
-#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570
+#: ../lib/util.php:326 lib/util.php:342 lib/action.php:570 lib/action.php:663
 msgid "FAQ"
 msgstr "FAQ"
 
 #: ../actions/avatar.php:115 actions/profilesettings.php:352
-#: actions/avatarsettings.php:397
+#: actions/avatarsettings.php:397 actions/avatarsettings.php:349
 msgid "Failed updating avatar."
-msgstr "Uaktualnianie awatara nie powiodło się."
+msgstr "Zaktualizowanie awatara nie powiodło się."
 
 #: ../actions/all.php:61 ../actions/allrss.php:64 actions/all.php:61
 #: actions/allrss.php:64 actions/all.php:75 actions/allrss.php:107
+#: actions/allrss.php:110
 #, php-format
 msgid "Feed for friends of %s"
 msgstr "Kanał dla znajomych użytkownika %s"
 
 #: ../actions/replies.php:65 ../actions/repliesrss.php:80
 #: actions/replies.php:65 actions/repliesrss.php:66 actions/replies.php:134
-#: actions/repliesrss.php:71
+#: actions/repliesrss.php:71 actions/replies.php:136
 #, php-format
 msgid "Feed for replies to %s"
 msgstr "Kanał dla odpowiedzi do użytkownika %s"
 
 #: ../actions/tag.php:55 actions/tag.php:55 actions/tag.php:61
+#: actions/tag.php:68
 #, php-format
 msgid "Feed for tag %s"
-msgstr ""
+msgstr "Kanał dla znaczników %s"
 
 #: ../lib/searchaction.php:105 lib/searchaction.php:105
 #: lib/searchgroupnav.php:83
 msgid "Find content of notices"
-msgstr ""
+msgstr "Przeszukaj zawartość wpisów"
 
 #: ../lib/searchaction.php:101 lib/searchaction.php:101
 #: lib/searchgroupnav.php:81
 msgid "Find people on this site"
-msgstr ""
+msgstr "Znajdź osoby na tej stronie"
 
-#: ../actions/login.php:122
+#: ../actions/login.php:122 actions/login.php:247
 msgid ""
 "For security reasons, please re-enter your user name and password before "
 "changing your settings."
 msgstr ""
-"Z powodów bezpieczeństwa wprowadź proszę ponownie nazwę użytkownika i hasło "
-"przed zmianą swoich ustawień."
+"Z powodów bezpieczeństwa ponownie podaj nazwę użytkownika i hasło przed "
+"zmienianiem ustawień."
 
 #: ../actions/profilesettings.php:44 ../actions/register.php:164
 #: actions/profilesettings.php:77 actions/register.php:178
 #: actions/profilesettings.php:103 actions/register.php:391
 #: actions/showgroup.php:235 actions/showstream.php:262
 #: actions/tagother.php:105 lib/groupeditform.php:142
+#: actions/showgroup.php:237 actions/showstream.php:255
+#: actions/tagother.php:104
 msgid "Full name"
-msgstr "Pełna nazwa"
+msgstr "Imię i nazwisko"
 
 #: ../actions/profilesettings.php:98 ../actions/register.php:79
 #: ../actions/updateprofile.php:93 actions/profilesettings.php:213
 #: actions/register.php:86 actions/updateprofile.php:94
 #: actions/editgroup.php:195 actions/newgroup.php:146
 #: actions/profilesettings.php:202 actions/register.php:171
-#: actions/updateprofile.php:97
+#: actions/updateprofile.php:97 actions/updateprofile.php:99
 msgid "Full name is too long (max 255 chars)."
-msgstr "Pełna nazwa jest zbyt długa (max. 255 znaków)."
+msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)."
 
 #: ../lib/util.php:322 lib/util.php:338 lib/action.php:344 lib/action.php:566
+#: lib/action.php:421 lib/action.php:659
 msgid "Help"
 msgstr "Pomoc"
 
 #: ../lib/util.php:298 lib/util.php:314 lib/action.php:322
-#: lib/facebookaction.php:200
+#: lib/facebookaction.php:200 lib/action.php:393 lib/facebookaction.php:213
 msgid "Home"
-msgstr "Początek"
+msgstr "Strona główna"
 
 #: ../actions/profilesettings.php:46 ../actions/register.php:167
 #: actions/profilesettings.php:79 actions/register.php:181
@@ -954,17 +1035,17 @@ msgstr "Strona domowa"
 #: actions/editgroup.php:192 actions/newgroup.php:143
 #: actions/profilesettings.php:199 actions/register.php:168
 msgid "Homepage is not a valid URL."
-msgstr "Adres strony domowej nie jest poprawnym URL-em."
+msgstr "Strona domowa nie jest prawidłowym adresem URL."
 
 #: ../actions/emailsettings.php:91 actions/emailsettings.php:98
-#: actions/emailsettings.php:173
+#: actions/emailsettings.php:173 actions/emailsettings.php:178
 msgid "I want to post notices by email."
-msgstr ""
+msgstr "Chcę wysyłać wpisy przez e-mail."
 
 #: ../lib/settingsaction.php:102 lib/settingsaction.php:96
 #: lib/connectsettingsaction.php:104
 msgid "IM"
-msgstr ""
+msgstr "Komunikator"
 
 #: ../actions/imsettings.php:60 actions/imsettings.php:61
 #: actions/imsettings.php:118
@@ -982,146 +1063,149 @@ msgid ""
 "If you already have an account, login with your username and password to "
 "connect it to your OpenID."
 msgstr ""
-"Jeśli już masz konto, zaloguj się używając nazwy użytkownika i hasła, aby "
+"Jeśli już masz konto, zaloguj się za pomocą nazwy użytkownika i hasła, aby "
 "połączyć je ze swoim identyfikatorem OpenID."
 
-#: ../actions/openidsettings.php:45
+#: ../actions/openidsettings.php:45 actions/openidsettings.php:96
 msgid ""
 "If you want to add an OpenID to your account, enter it in the box below and "
 "click \"Add\"."
 msgstr ""
-"Jeśli chcesz skojarzyć konto OpenID ze swoim lokalnym kontem, wprowadź "
-"identyfikator w poniższe pole i kliknij \"Dodaj\"."
+"Jeśli chcesz dodać identyfikator OpenID do swojego konta, podaj go w "
+"poniższym polu i naciśnij \"Dodaj\"."
 
-#: ../actions/recoverpassword.php:137
+#: ../actions/recoverpassword.php:137 actions/recoverpassword.php:152
 msgid ""
 "If you've forgotten or lost your password, you can get a new one sent to the "
 "email address you have stored  in your account."
 msgstr ""
+"Jeśli zapomniałeś lub zgubiłeś swoje hasło, możesz dostać nowe na adres e-"
+"mail, który podałeś."
 
 #: ../actions/emailsettings.php:67 ../actions/smssettings.php:76
 #: actions/emailsettings.php:68 actions/smssettings.php:76
 #: actions/emailsettings.php:127 actions/smssettings.php:140
 msgid "Incoming email"
-msgstr ""
+msgstr "Wiadomości przychodzące"
 
 #: ../actions/emailsettings.php:283 actions/emailsettings.php:301
-#: actions/emailsettings.php:443
+#: actions/emailsettings.php:443 actions/emailsettings.php:450
+#: actions/smssettings.php:518
 msgid "Incoming email address removed."
-msgstr ""
+msgstr "Usunięto przychodzący adres e-mail."
 
 #: ../actions/password.php:69 actions/profilesettings.php:388
-#: actions/passwordsettings.php:153
+#: actions/passwordsettings.php:153 actions/passwordsettings.php:158
 msgid "Incorrect old password"
-msgstr "Stare hasło jest niepoprawne"
+msgstr "Niepoprawne stare hasło"
 
 #: ../actions/login.php:67 actions/login.php:67 actions/facebookhome.php:131
-#: actions/login.php:132
+#: actions/login.php:132 actions/facebookhome.php:130 actions/login.php:114
 msgid "Incorrect username or password."
-msgstr "Błędna nazwa użytkownika lub hasło."
+msgstr "Niepoprawna nazwa użytkownika lub hasło."
 
-#: ../actions/recoverpassword.php:265
+#: ../actions/recoverpassword.php:265 actions/recoverpassword.php:304
 msgid ""
 "Instructions for recovering your password have been sent to the email "
 "address registered to your account."
 msgstr ""
-"Instrukcje dotyczące przywrócenia hasła zostały wysłane na adres e-mailowy "
-"skojarzony z Twoim kontem."
+"Instrukcje przywracania hasła zostały wysłane na adres e-mail zarejestrowany "
+"z Twoim kontem."
 
 #: ../actions/updateprofile.php:114 actions/updateprofile.php:115
-#: actions/updateprofile.php:118
+#: actions/updateprofile.php:118 actions/updateprofile.php:120
 #, php-format
 msgid "Invalid avatar URL '%s'"
-msgstr "Błędny URL awatara '%s'"
+msgstr "Nieprawidłowy adres URL awatara \"%s\""
 
 #: ../actions/invite.php:55 actions/invite.php:62 actions/invite.php:70
 #, php-format
 msgid "Invalid email address: %s"
-msgstr ""
+msgstr "Nieprawidłowy adres e-mail: %s"
 
 #: ../actions/updateprofile.php:98 actions/updateprofile.php:99
-#: actions/updateprofile.php:102
+#: actions/updateprofile.php:102 actions/updateprofile.php:104
 #, php-format
 msgid "Invalid homepage '%s'"
-msgstr "Błędna strona domowa '%s'"
+msgstr "Nieprawidłowa strona domowa \"%s\""
 
 #: ../actions/updateprofile.php:82 actions/updateprofile.php:83
-#: actions/updateprofile.php:86
+#: actions/updateprofile.php:86 actions/updateprofile.php:88
 #, php-format
 msgid "Invalid license URL '%s'"
-msgstr "Błędny URL licencji '%s'"
+msgstr "Nieprawidłowy adres URL licencji \"%s\""
 
 #: ../actions/postnotice.php:61 actions/postnotice.php:62
 #: actions/postnotice.php:66
 msgid "Invalid notice content"
-msgstr "Błędna zawartość wpisu"
+msgstr "Nieprawidłowa zawartość wpisu"
 
 #: ../actions/postnotice.php:67 actions/postnotice.php:68
 #: actions/postnotice.php:72
 msgid "Invalid notice uri"
-msgstr "Błędny URI wpisu"
+msgstr "Nieprawidłowy adres URI wpisu"
 
 #: ../actions/postnotice.php:72 actions/postnotice.php:73
 #: actions/postnotice.php:77
 msgid "Invalid notice url"
-msgstr "Błędny URL wpisu"
+msgstr "Nieprawidłowy adres URL wpisu"
 
 #: ../actions/updateprofile.php:87 actions/updateprofile.php:88
-#: actions/updateprofile.php:91
+#: actions/updateprofile.php:91 actions/updateprofile.php:93
 #, php-format
 msgid "Invalid profile URL '%s'."
-msgstr "Błędny URL profilu '%s'."
+msgstr "Nieprawidłowy adres URL profilu \"%s\"."
 
 #: ../actions/remotesubscribe.php:96 actions/remotesubscribe.php:105
 #: actions/remotesubscribe.php:135
 msgid "Invalid profile URL (bad format)"
-msgstr "Błędny URL profilu (zły format)"
+msgstr "Nieprawidłowy adres URL profilu (błędny format)"
 
 #: ../actions/finishremotesubscribe.php:77
 #: actions/finishremotesubscribe.php:79 actions/finishremotesubscribe.php:80
 msgid "Invalid profile URL returned by server."
-msgstr "Błędny URL profilu zwrócony przez serwer."
+msgstr "Nieprawidłowy adres URL profilu zwrócony przez serwer."
 
 #: ../actions/avatarbynickname.php:37 actions/avatarbynickname.php:37
 #: actions/avatarbynickname.php:69
 msgid "Invalid size."
-msgstr "Niepoprawny rozmiar."
+msgstr "Nieprawidłowy rozmiar."
 
 #: ../actions/finishopenidlogin.php:235 ../actions/register.php:93
 #: ../actions/register.php:111 actions/finishopenidlogin.php:241
 #: actions/register.php:103 actions/register.php:121
 #: actions/finishopenidlogin.php:279 actions/register.php:193
-#: actions/register.php:211
+#: actions/register.php:211 actions/finishopenidlogin.php:284
 msgid "Invalid username or password."
-msgstr "Błędna nazwa użytkownika lub hasło."
+msgstr "Nieprawidłowa nazwa użytkownika lub hasło."
 
 #: ../actions/invite.php:79 actions/invite.php:86 actions/invite.php:102
 msgid "Invitation(s) sent"
-msgstr ""
+msgstr "Wysłano zaproszenia"
 
 #: ../actions/invite.php:97 actions/invite.php:104 actions/invite.php:136
 msgid "Invitation(s) sent to the following people:"
-msgstr ""
+msgstr "Wysłano zaproszenia do następujących osób:"
 
 #: ../lib/util.php:306 lib/util.php:322 lib/facebookaction.php:207
-#: lib/subgroupnav.php:103
+#: lib/subgroupnav.php:103 lib/facebookaction.php:220
 msgid "Invite"
-msgstr ""
+msgstr "Zaproś"
 
 #: ../actions/invite.php:123 actions/invite.php:130 actions/invite.php:104
 msgid "Invite new users"
-msgstr ""
+msgstr "Zaproś nowych użytkowników"
 
-#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609
+#: ../lib/util.php:261 lib/util.php:277 lib/action.php:609 lib/action.php:706
 #, php-format
 msgid ""
 "It runs the [Laconica](http://laconi.ca/) microblogging software, version %"
 "s, available under the [GNU Affero General Public License](http://www.fsf."
 "org/licensing/licenses/agpl-3.0.html)."
 msgstr ""
-"Działa pod kontrolą  oprogramowania [Laconica](http://laconi.ca/) służącego "
-"do prowadzenia mikroblogów, w wersji %s, dostępnego na licencji [GNU Affero "
-"General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
+"Działa pod kontrolą oprogramowania do mikroblogowania [Laconica](http://"
+"laconi.ca/) w wersji %s, dostępnego na [Powszechnej Licencji Publicznej GNU "
+"Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #: ../actions/imsettings.php:173 actions/imsettings.php:181
 #: actions/imsettings.php:296
@@ -1129,132 +1213,143 @@ msgid "Jabber ID already belongs to another user."
 msgstr "Identyfikator Jabbera należy już do innego użytkownika."
 
 #: ../actions/imsettings.php:62 actions/imsettings.php:63
+#: actions/imsettings.php:120
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
 "add %s to your buddy list in your IM client or on GTalk."
 msgstr ""
-"Adres Jabbera lub GTalka w postaci \"Użytkownik@przykladowadomena.org\". Nie "
-"zapomnij dodać %s do listy znajomych w swoim komunikatorze lub panelu GTalka."
+"Adres Jabbera lub GTalk, taki jak \"NazwaUżytkownika@przykład.org\". "
+"Najpierw upewnij się, że dodałeś %s do listy znajomych w komunikatorze lub "
+"na GTalk."
 
 #: ../actions/profilesettings.php:57 actions/profilesettings.php:90
 #: actions/profilesettings.php:128
 msgid "Language"
-msgstr ""
+msgstr "Język"
 
 #: ../actions/profilesettings.php:113 actions/profilesettings.php:228
 #: actions/profilesettings.php:217
 msgid "Language is too long (max 50 chars)."
-msgstr ""
+msgstr "Język jest za długi (maksymalnie 50 znaków)."
 
 #: ../actions/profilesettings.php:52 ../actions/register.php:173
 #: actions/profilesettings.php:85 actions/register.php:187
 #: actions/profilesettings.php:117 actions/register.php:408
 #: actions/showgroup.php:244 actions/showstream.php:271
 #: actions/tagother.php:113 lib/groupeditform.php:156 lib/grouplist.php:126
-#: lib/profilelist.php:125
+#: lib/profilelist.php:125 actions/showgroup.php:246
+#: actions/showstream.php:264 actions/tagother.php:112 lib/profilelist.php:123
 msgid "Location"
-msgstr "Lokalizacja"
+msgstr "Położenie"
 
 #: ../actions/profilesettings.php:104 ../actions/register.php:85
 #: ../actions/updateprofile.php:108 actions/profilesettings.php:219
 #: actions/register.php:92 actions/updateprofile.php:109
 #: actions/editgroup.php:201 actions/newgroup.php:152
 #: actions/profilesettings.php:208 actions/register.php:177
-#: actions/updateprofile.php:112
+#: actions/updateprofile.php:112 actions/updateprofile.php:114
 msgid "Location is too long (max 255 chars)."
-msgstr "Lokalizacja jest za długa (max. 255 znaków)."
+msgstr "Położenie jest za długie (maksymalnie 255 znaków)."
 
 #: ../actions/login.php:97 ../actions/login.php:106
 #: ../actions/openidlogin.php:68 ../lib/util.php:310 actions/login.php:97
 #: actions/login.php:106 actions/openidlogin.php:77 lib/util.php:326
 #: actions/facebooklogin.php:93 actions/login.php:186 actions/login.php:239
 #: actions/openidlogin.php:112 lib/action.php:335 lib/facebookaction.php:288
-#: lib/facebookaction.php:315 lib/logingroupnav.php:75
+#: lib/facebookaction.php:315 lib/logingroupnav.php:75 actions/login.php:169
+#: actions/login.php:222 actions/openidlogin.php:121 lib/action.php:412
+#: lib/facebookaction.php:293 lib/facebookaction.php:319
 #, php-format
 msgid "Login"
-msgstr "Login"
+msgstr "Zaloguj się"
 
 #: ../actions/openidlogin.php:44 actions/openidlogin.php:52
-#: actions/openidlogin.php:62
+#: actions/openidlogin.php:62 actions/openidlogin.php:70
 #, php-format
 msgid "Login with an [OpenID](%%doc.openid%%) account."
-msgstr "Zaloguj się używając konta  [OpenID](%%doc.openid%%)."
+msgstr "Zaloguj się za pomocą konta [OpenID](%%doc.openid%%)."
 
-#: ../actions/login.php:126
+#: ../actions/login.php:126 actions/login.php:251
 #, php-format
 msgid ""
 "Login with your username and password. Don't have a username yet? [Register]"
 "(%%action.register%%) a new account, or try [OpenID](%%action.openidlogin%"
 "%). "
 msgstr ""
-"Zaloguj się używając nazwy użytkownika i hasła. Nie masz ich jeszcze? "
-"[Zarejestruj się](%%action.register%%) i utwórz konto, albo użyj swojego "
-"[OpenID](%%action.openidlogin%%)."
+"Zaloguj się za pomocą nazwy użytkownika i hasła. Nie masz ich jeszcze? "
+"[Zarejestruj](%%action.register%%) nowe konto lub wypróbuj [OpenID](%%action."
+"openidlogin%%). "
 
-#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332
+#: ../lib/util.php:308 lib/util.php:324 lib/action.php:332 lib/action.php:409
 msgid "Logout"
-msgstr "Wyloguj"
+msgstr "Wyloguj się"
 
 #: ../actions/register.php:166 actions/register.php:180
 #: actions/register.php:393
 msgid "Longer name, preferably your \"real\" name"
-msgstr ""
+msgstr "Dłuższa nazwa, najlepiej twoje \"prawdziwe\" nazwisko"
 
 #: ../actions/login.php:110 actions/login.php:110 actions/login.php:245
-#: lib/facebookaction.php:320
+#: lib/facebookaction.php:320 actions/login.php:228 lib/facebookaction.php:325
 msgid "Lost or forgotten password?"
-msgstr "Zgubione hasło?"
+msgstr "Zgubione lub zapomniane hasło?"
 
 #: ../actions/emailsettings.php:80 ../actions/smssettings.php:89
 #: actions/emailsettings.php:81 actions/smssettings.php:89
+#: actions/emailsettings.php:139 actions/smssettings.php:150
 msgid "Make a new email address for posting to; cancels the old one."
-msgstr ""
+msgstr "Używaj nowego adresu e-mail do wysyłania; anuluj stary."
 
 #: ../actions/emailsettings.php:27 actions/emailsettings.php:27
 #: actions/emailsettings.php:71
 #, php-format
 msgid "Manage how you get email from %%site.name%%."
-msgstr ""
+msgstr "Zarządzaj, jak otrzymywać wiadomości e-mail od %%site.name%%."
 
 #: ../actions/showstream.php:300 actions/showstream.php:315
 #: actions/showstream.php:480
 msgid "Member since"
-msgstr "W serwisie od"
+msgstr "Członek od"
 
 #: ../actions/userrss.php:70 actions/userrss.php:67 actions/userrss.php:72
 #, php-format
 msgid "Microblog by %s"
-msgstr "%s – mikroblog"
+msgstr "Mikroblog użytkownika %s"
 
-#: ../actions/smssettings.php:304
+#: ../actions/smssettings.php:304 actions/smssettings.php:464
 #, php-format
 msgid ""
 "Mobile carrier for your phone. If you know a carrier that accepts SMS over "
 "email but isn't listed here, send email to let us know at %s."
 msgstr ""
+"Operator komórkowy Twojego telefonu. Jeśli znasz operatora, który akceptuje "
+"wiadomości SMS przez e-mail, a nie znajduje się na liście, wyślij wiadomość "
+"e-mail na %s (w języku angielskim), aby nam o tym powiedzieć."
 
 #: ../actions/finishopenidlogin.php:79 ../actions/register.php:188
 #: actions/finishopenidlogin.php:85 actions/register.php:202
 #: actions/finishopenidlogin.php:107 actions/register.php:429
+#: actions/register.php:430
 msgid "My text and files are available under "
-msgstr "Moje teksty i pliki są widoczne pod"
+msgstr "Moje teksty i pliki są dostępne na "
 
 #: ../actions/emailsettings.php:82 ../actions/smssettings.php:91
 #: actions/emailsettings.php:83 actions/smssettings.php:91
 #: actions/emailsettings.php:142 actions/smssettings.php:152
 msgid "New"
-msgstr ""
+msgstr "Nowe"
 
 #: ../lib/mail.php:144 lib/mail.php:144 lib/mail.php:286
 #, php-format
 msgid "New email address for posting to %s"
-msgstr ""
+msgstr "Nowy adres e-mail do wysyłania do %s"
 
 #: ../actions/emailsettings.php:297 actions/emailsettings.php:315
-#: actions/emailsettings.php:465
+#: actions/emailsettings.php:465 actions/emailsettings.php:472
+#: actions/smssettings.php:542
 msgid "New incoming email address added."
-msgstr ""
+msgstr "Dodano nowy przychodzący adres e-mail."
 
 #: ../actions/finishopenidlogin.php:71 actions/finishopenidlogin.php:77
 #: actions/finishopenidlogin.php:99
@@ -1272,9 +1367,9 @@ msgstr "Nowy wpis"
 msgid "New password"
 msgstr "Nowe hasło"
 
-#: ../actions/recoverpassword.php:314
+#: ../actions/recoverpassword.php:314 actions/recoverpassword.php:361
 msgid "New password successfully saved. You are now logged in."
-msgstr "Nowe hasło zapisano pomyślnie. Możesz się zalogować."
+msgstr "Pomyślnie zapisano nowe hasło. Jesteś teraz zalogowany."
 
 #: ../actions/login.php:101 ../actions/profilesettings.php:41
 #: ../actions/register.php:151 actions/login.php:101
@@ -1282,7 +1377,9 @@ msgstr "Nowe hasło zapisano pomyślnie. Możesz się zalogować."
 #: actions/login.php:228 actions/profilesettings.php:98
 #: actions/register.php:367 actions/showgroup.php:224
 #: actions/showstream.php:251 actions/tagother.php:95
-#: lib/facebookaction.php:308 lib/groupeditform.php:137
+#: lib/facebookaction.php:308 lib/groupeditform.php:137 actions/login.php:211
+#: actions/showgroup.php:226 actions/showstream.php:244
+#: actions/tagother.php:94 lib/facebookaction.php:312
 msgid "Nickname"
 msgstr "Pseudonim"
 
@@ -1293,21 +1390,23 @@ msgstr "Pseudonim"
 #: actions/newgroup.php:134 actions/profilesettings.php:214
 #: actions/register.php:159
 msgid "Nickname already in use. Try another one."
-msgstr "Ten pseudonim jest już w użyciu. Wybierz inny."
+msgstr "Pseudonim jest już używany. Spróbuj innego."
 
 #: ../actions/finishopenidlogin.php:165 ../actions/profilesettings.php:88
 #: ../actions/register.php:67 ../actions/updateprofile.php:77
 #: actions/finishopenidlogin.php:171 actions/profilesettings.php:203
 #: actions/register.php:74 actions/updateprofile.php:78
 #: actions/finishopenidlogin.php:205 actions/profilesettings.php:192
-#: actions/updateprofile.php:81
+#: actions/updateprofile.php:81 actions/editgroup.php:179
+#: actions/newgroup.php:130 actions/register.php:156
+#: actions/updateprofile.php:83
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
-msgstr "Pseudonim musi zawierać tylko małe litery i cyfry, bez znaków spacji."
+msgstr "Pseudonim może zawierać tylko małe litery i cyfry, bez spacji."
 
 #: ../actions/finishopenidlogin.php:170 actions/finishopenidlogin.php:176
 #: actions/finishopenidlogin.php:210
 msgid "Nickname not allowed."
-msgstr "Pseudonim niedozwolony."
+msgstr "Niedozwolony pseudonim."
 
 #: ../actions/remotesubscribe.php:72 actions/remotesubscribe.php:81
 #: actions/remotesubscribe.php:106
@@ -1317,12 +1416,13 @@ msgstr "Pseudonim użytkownika którego chcesz obserwować"
 #: ../actions/recoverpassword.php:162 actions/recoverpassword.php:167
 #: actions/recoverpassword.php:186
 msgid "Nickname or email"
-msgstr "Pseudonim lub e-mail"
+msgstr "Pseudonim lub adres e-mail"
 
 #: ../actions/deletenotice.php:59 actions/deletenotice.php:60
 #: actions/block.php:147 actions/deletenotice.php:118
+#: actions/deletenotice.php:116
 msgid "No"
-msgstr ""
+msgstr "Nie"
 
 #: ../actions/imsettings.php:156 actions/imsettings.php:164
 #: actions/imsettings.php:279
@@ -1332,17 +1432,17 @@ msgstr "Brak identyfikatora Jabbera."
 #: ../actions/userauthorization.php:129 actions/userauthorization.php:136
 #: actions/userauthorization.php:153
 msgid "No authorization request!"
-msgstr "Brak żądania autoryzacji!"
+msgstr "Brak żądania upoważnienia!"
 
 #: ../actions/smssettings.php:181 actions/smssettings.php:189
 #: actions/smssettings.php:299
 msgid "No carrier selected."
-msgstr ""
+msgstr "Nie wybrano operatora."
 
 #: ../actions/smssettings.php:316 actions/smssettings.php:324
 #: actions/smssettings.php:486
 msgid "No code entered"
-msgstr ""
+msgstr "Nie podano kodu"
 
 #: ../actions/confirmaddress.php:33 actions/confirmaddress.php:33
 #: actions/confirmaddress.php:75
@@ -1352,27 +1452,29 @@ msgstr "Brak kodu potwierdzającego."
 #: ../actions/newnotice.php:44 actions/newmessage.php:53
 #: actions/newnotice.php:44 classes/Command.php:197 actions/newmessage.php:109
 #: actions/newnotice.php:126 classes/Command.php:223
+#: actions/newmessage.php:142 actions/newnotice.php:131 lib/command.php:223
 msgid "No content!"
 msgstr "Brak zawartości!"
 
 #: ../actions/emailsettings.php:174 actions/emailsettings.php:192
-#: actions/emailsettings.php:304
+#: actions/emailsettings.php:304 actions/emailsettings.php:311
 msgid "No email address."
-msgstr ""
+msgstr "Brak adresu e-mail."
 
 #: ../actions/userbyid.php:32 actions/userbyid.php:32 actions/userbyid.php:70
 msgid "No id."
 msgstr "Brak identyfikatora."
 
 #: ../actions/emailsettings.php:271 actions/emailsettings.php:289
-#: actions/emailsettings.php:430
+#: actions/emailsettings.php:430 actions/emailsettings.php:437
+#: actions/smssettings.php:505
 msgid "No incoming email address."
-msgstr ""
+msgstr "Brak przychodzącego adresu e-mail."
 
 #: ../actions/finishremotesubscribe.php:65
 #: actions/finishremotesubscribe.php:67 actions/finishremotesubscribe.php:68
 msgid "No nickname provided by remote server."
-msgstr "Zdalny serwer nie wysłał pseudonimu."
+msgstr "Zdalny serwer nie dostarczył pseudonimu."
 
 #: ../actions/avatarbynickname.php:27 actions/avatarbynickname.php:27
 #: actions/avatarbynickname.php:59 actions/leavegroup.php:81
@@ -1383,24 +1485,24 @@ msgstr "Brak pseudonimu."
 #: ../actions/smssettings.php:229 actions/emailsettings.php:240
 #: actions/imsettings.php:214 actions/smssettings.php:237
 #: actions/emailsettings.php:363 actions/imsettings.php:345
-#: actions/smssettings.php:358
+#: actions/smssettings.php:358 actions/emailsettings.php:370
 msgid "No pending confirmation to cancel."
 msgstr "Brak oczekujących potwierdzeń do anulowania."
 
 #: ../actions/smssettings.php:176 actions/smssettings.php:184
 #: actions/smssettings.php:294
 msgid "No phone number."
-msgstr ""
+msgstr "Brak numeru telefonu."
 
 #: ../actions/finishremotesubscribe.php:72
 #: actions/finishremotesubscribe.php:74 actions/finishremotesubscribe.php:75
 msgid "No profile URL returned by server."
-msgstr "Serwer nie zwrócił żadnego URL-a."
+msgstr "Serwer nie zwrócił adresu URL profilu."
 
 #: ../actions/recoverpassword.php:226 actions/recoverpassword.php:232
 #: actions/recoverpassword.php:266
 msgid "No registered email address for that user."
-msgstr "Brak zarejestrowanych adresów e-mailowych dla tego użytkownika."
+msgstr "Brak zarejestrowanych adresów e-mail dla tego użytkownika."
 
 #: ../actions/userauthorization.php:49 actions/userauthorization.php:55
 #: actions/userauthorization.php:57
@@ -1410,51 +1512,52 @@ msgstr "Nie znaleziono żądania!"
 #: ../actions/noticesearch.php:64 ../actions/peoplesearch.php:64
 #: actions/noticesearch.php:69 actions/peoplesearch.php:69
 #: actions/groupsearch.php:81 actions/noticesearch.php:104
-#: actions/peoplesearch.php:85
+#: actions/peoplesearch.php:85 actions/noticesearch.php:117
 msgid "No results"
 msgstr "Brak wyników"
 
 #: ../actions/avatarbynickname.php:32 actions/avatarbynickname.php:32
 #: actions/avatarbynickname.php:64
 msgid "No size."
-msgstr "Zerowy rozmiar."
+msgstr "Brak rozmiaru."
 
 #: ../actions/twitapistatuses.php:595 actions/twitapifavorites.php:136
 #: actions/twitapistatuses.php:520 actions/twitapifavorites.php:112
-#: actions/twitapistatuses.php:446
+#: actions/twitapistatuses.php:446 actions/twitapifavorites.php:118
+#: actions/twitapistatuses.php:470
 msgid "No status found with that ID."
-msgstr ""
+msgstr "Nie znaleziono statusów z tym identyfikatorem."
 
 #: ../actions/twitapistatuses.php:555 actions/twitapistatuses.php:478
-#: actions/twitapistatuses.php:418
+#: actions/twitapistatuses.php:418 actions/twitapistatuses.php:442
 msgid "No status with that ID found."
-msgstr ""
+msgstr "Nie znaleziono statusów z tym identyfikatorem."
 
 #: ../actions/openidsettings.php:135 actions/openidsettings.php:144
 #: actions/openidsettings.php:222
 msgid "No such OpenID."
-msgstr "Brak takiego identyfikatora OpenID."
+msgstr "Nie ma takiego identyfikatora OpenID."
 
 #: ../actions/doc.php:29 actions/doc.php:29 actions/doc.php:64
 msgid "No such document."
-msgstr "Brak takiego dokumentu."
+msgstr "Nie ma takiego dokumentu."
 
 #: ../actions/shownotice.php:32 ../actions/shownotice.php:83
 #: ../lib/deleteaction.php:30 actions/shownotice.php:32
 #: actions/shownotice.php:83 lib/deleteaction.php:30 actions/shownotice.php:87
 #: lib/deleteaction.php:51
 msgid "No such notice."
-msgstr "Brak takiego wpisu."
+msgstr "Nie ma takiego wpisu."
 
 #: ../actions/recoverpassword.php:56 actions/recoverpassword.php:56
 #: actions/recoverpassword.php:62
 msgid "No such recovery code."
-msgstr "Brak takiego kodu przywracania."
+msgstr "Nie ma takiego kodu przywracania."
 
 #: ../actions/postnotice.php:56 actions/postnotice.php:57
 #: actions/postnotice.php:60
 msgid "No such subscription"
-msgstr "Nie ma takiej obserwacji"
+msgstr "Nie ma takiej subskrypcji"
 
 #: ../actions/all.php:34 ../actions/allrss.php:35
 #: ../actions/avatarbynickname.php:43 ../actions/foaf.php:40
@@ -1480,14 +1583,16 @@ msgstr "Nie ma takiej obserwacji"
 #: actions/usergroups.php:92 actions/userrss.php:38 actions/xrds.php:73
 #: classes/Command.php:140 classes/Command.php:185 classes/Command.php:234
 #: classes/Command.php:271 lib/galleryaction.php:60 lib/mailbox.php:82
-#: lib/subs.php:34 lib/subs.php:109
+#: lib/subs.php:34 lib/subs.php:109 actions/all.php:56 actions/allrss.php:68
+#: actions/favoritesrss.php:74 lib/command.php:140 lib/command.php:185
+#: lib/command.php:234 lib/command.php:271 lib/mailbox.php:84
 msgid "No such user."
 msgstr "Brak takiego użytkownika."
 
 #: ../actions/recoverpassword.php:211 actions/recoverpassword.php:217
 #: actions/recoverpassword.php:251
 msgid "No user with that email address or username."
-msgstr ""
+msgstr "Brak użytkownika z tym adresem e-mail lub nazwą użytkownika."
 
 #: ../lib/gallery.php:80 lib/gallery.php:85
 msgid "Nobody to show!"
@@ -1501,64 +1606,66 @@ msgstr "To nie jest kod przywracania."
 #: ../scripts/maildaemon.php:50 scripts/maildaemon.php:50
 #: scripts/maildaemon.php:53
 msgid "Not a registered user."
-msgstr ""
+msgstr "To nie jest zarejestrowany użytkownik."
 
 #: ../lib/twitterapi.php:226 ../lib/twitterapi.php:247
 #: ../lib/twitterapi.php:332 lib/twitterapi.php:391 lib/twitterapi.php:418
 #: lib/twitterapi.php:502 lib/twitterapi.php:448 lib/twitterapi.php:476
-#: lib/twitterapi.php:566
+#: lib/twitterapi.php:566 lib/twitterapi.php:483 lib/twitterapi.php:511
+#: lib/twitterapi.php:601
 msgid "Not a supported data format."
-msgstr ""
+msgstr "To nie jest obsługiwany format danych."
 
 #: ../actions/imsettings.php:167 actions/imsettings.php:175
 #: actions/imsettings.php:290
 msgid "Not a valid Jabber ID"
-msgstr "Niepoprawny identyfikator Jabbera"
+msgstr "To nie jest prawidłowy identyfikator Jabbera"
 
 #: ../lib/openid.php:131 lib/openid.php:131 lib/openid.php:140
+#: lib/openid.php:143
 msgid "Not a valid OpenID."
-msgstr "Niepoprawny identyfikator OpenID."
+msgstr "To nie jest prawidłowy identyfikator OpenID."
 
 #: ../actions/emailsettings.php:185 actions/emailsettings.php:203
-#: actions/emailsettings.php:315
+#: actions/emailsettings.php:315 actions/emailsettings.php:322
 msgid "Not a valid email address"
-msgstr ""
+msgstr "To nie jest prawidłowy adres e-mail"
 
 #: ../actions/register.php:63 actions/register.php:70 actions/register.php:152
 msgid "Not a valid email address."
-msgstr "Niewłaściwy adres e-mailowy."
+msgstr "To nie jest prawidłowy adres e-mail."
 
 #: ../actions/profilesettings.php:91 ../actions/register.php:71
 #: actions/profilesettings.php:206 actions/register.php:78
 #: actions/editgroup.php:186 actions/newgroup.php:137
 #: actions/profilesettings.php:195 actions/register.php:161
 msgid "Not a valid nickname."
-msgstr "Niewłaściwy pseudonim."
+msgstr "To nie jest prawidłowy pseudonim."
 
 #: ../actions/remotesubscribe.php:120 actions/remotesubscribe.php:129
 #: actions/remotesubscribe.php:159
 msgid "Not a valid profile URL (incorrect services)."
-msgstr "Błędny URL profilu (niepoprawne usługi)"
+msgstr "To nie jest prawidłowy adres URL profilu (niepoprawne usługi)."
 
 #: ../actions/remotesubscribe.php:113 actions/remotesubscribe.php:122
 #: actions/remotesubscribe.php:152
 msgid "Not a valid profile URL (no XRDS defined)."
-msgstr "Błędny URL profilu (nie zdefiniowany XRDS)"
+msgstr "To nie jest prawidłowy adres URL profilu (nie podano XRDS)."
 
 #: ../actions/remotesubscribe.php:104 actions/remotesubscribe.php:113
 #: actions/remotesubscribe.php:143
 msgid "Not a valid profile URL (no YADIS document)."
-msgstr "Błędny URL profilu (brak dokumentu YADIS)"
+msgstr "To nie jest prawidłowy adres URL profilu (brak dokumentu YADIS)."
 
 #: ../actions/avatar.php:95 actions/profilesettings.php:332
-#: lib/imagefile.php:87
+#: lib/imagefile.php:87 lib/imagefile.php:90
 msgid "Not an image or corrupt file."
-msgstr "Brak obrazka lub plik uszkodzony."
+msgstr "To nie jest obraz lub lub plik jest uszkodzony."
 
 #: ../actions/finishremotesubscribe.php:51
 #: actions/finishremotesubscribe.php:53 actions/finishremotesubscribe.php:54
 msgid "Not authorized."
-msgstr "Brak autoryzacji."
+msgstr "Brak upoważnienia."
 
 #: ../actions/finishremotesubscribe.php:38
 #: actions/finishremotesubscribe.php:38 actions/finishremotesubscribe.php:40
@@ -1566,9 +1673,9 @@ msgid "Not expecting this response!"
 msgstr "Nieoczekiwana odpowiedź!"
 
 #: ../actions/twitapistatuses.php:422 actions/twitapistatuses.php:361
-#: actions/twitapistatuses.php:309
+#: actions/twitapistatuses.php:309 actions/twitapistatuses.php:327
 msgid "Not found"
-msgstr ""
+msgstr "Nie znaleziono"
 
 #: ../actions/finishaddopenid.php:29 ../actions/logout.php:33
 #: ../actions/newnotice.php:29 ../actions/subscribe.php:28
@@ -1582,18 +1689,18 @@ msgstr ""
 #: actions/newmessage.php:83 actions/newnotice.php:90 actions/nudge.php:63
 #: actions/subedit.php:31 actions/subscribe.php:30 actions/unblock.php:60
 #: actions/unsubscribe.php:27 lib/deleteaction.php:66
-#: lib/settingsaction.php:72
+#: lib/settingsaction.php:72 actions/newmessage.php:87
 msgid "Not logged in."
 msgstr "Niezalogowany."
 
 #: ../lib/subs.php:91 lib/subs.php:104 lib/subs.php:122
 msgid "Not subscribed!."
-msgstr "Nie obserwujesz!."
+msgstr "Nie zasubskrybowane!"
 
 #: ../actions/opensearch.php:35 actions/opensearch.php:35
 #: actions/opensearch.php:67
 msgid "Notice Search"
-msgstr ""
+msgstr "Wyszukiwanie wpisów"
 
 #: ../actions/showstream.php:82 actions/showstream.php:82
 #: actions/showstream.php:180 actions/showstream.php:187
@@ -1605,19 +1712,19 @@ msgstr "Kanał wpisów dla %s"
 #: ../actions/shownotice.php:39 actions/shownotice.php:39
 #: actions/shownotice.php:94
 msgid "Notice has no profile"
-msgstr "Wpis nie ma przypisanego profilu"
+msgstr "Wpis nie posiada profilu"
 
 #: ../actions/showstream.php:316 actions/showstream.php:331
 #: actions/showstream.php:504 lib/facebookaction.php:477 lib/mailbox.php:116
-#: lib/noticelist.php:87
+#: lib/noticelist.php:87 lib/facebookaction.php:581 lib/mailbox.php:118
 msgid "Notices"
 msgstr "Wpisy"
 
 #: ../actions/tag.php:35 ../actions/tag.php:81 actions/tag.php:35
-#: actions/tag.php:81 actions/tag.php:41
+#: actions/tag.php:81 actions/tag.php:41 actions/tag.php:49
 #, php-format
 msgid "Notices tagged with %s"
-msgstr ""
+msgstr "Wpisy ze znacznikiem %s"
 
 #: ../actions/password.php:39 actions/profilesettings.php:178
 #: actions/passwordsettings.php:97
@@ -1626,7 +1733,7 @@ msgstr "Stare hasło"
 
 #: ../lib/settingsaction.php:96 ../lib/util.php:314 lib/settingsaction.php:90
 #: lib/util.php:330 lib/accountsettingsaction.php:116 lib/action.php:341
-#: lib/logingroupnav.php:81
+#: lib/logingroupnav.php:81 lib/action.php:418
 msgid "OpenID"
 msgstr "OpenID"
 
@@ -1636,39 +1743,43 @@ msgid "OpenID Account Setup"
 msgstr "Ustawienia konta OpenID"
 
 #: ../lib/openid.php:180 lib/openid.php:180 lib/openid.php:266
+#: lib/openid.php:269
 msgid "OpenID Auto-Submit"
-msgstr "Automatyczne zatwierdzanie OpenID"
+msgstr "Automatyczne wysłanie OpenID"
 
 #: ../actions/finishaddopenid.php:99 ../actions/finishopenidlogin.php:140
 #: ../actions/openidlogin.php:60 actions/finishaddopenid.php:99
 #: actions/finishopenidlogin.php:146 actions/openidlogin.php:68
 #: actions/finishaddopenid.php:170 actions/openidlogin.php:80
+#: actions/openidlogin.php:89
 msgid "OpenID Login"
-msgstr "Użytkownik OpenID"
+msgstr "Login OpenID"
 
 #: ../actions/openidlogin.php:65 ../actions/openidsettings.php:49
 #: actions/openidlogin.php:74 actions/openidsettings.php:50
 #: actions/openidlogin.php:102 actions/openidsettings.php:101
+#: actions/openidlogin.php:111
 msgid "OpenID URL"
-msgstr "URL usługi OpenID"
+msgstr "Adres URL identyfikatora OpenID"
 
 #: ../actions/finishaddopenid.php:42 ../actions/finishopenidlogin.php:103
 #: actions/finishaddopenid.php:42 actions/finishopenidlogin.php:109
 #: actions/finishaddopenid.php:88 actions/finishopenidlogin.php:130
 msgid "OpenID authentication cancelled."
-msgstr "Uwiarygadnianie OpenID przerwane."
+msgstr "Anulowano uwierzytelnienie OpenID."
 
 #: ../actions/finishaddopenid.php:46 ../actions/finishopenidlogin.php:107
 #: actions/finishaddopenid.php:46 actions/finishopenidlogin.php:113
 #: actions/finishaddopenid.php:92 actions/finishopenidlogin.php:134
 #, php-format
 msgid "OpenID authentication failed: %s"
-msgstr "Uwiarygadnianie OpenID nie powiodło się: %s"
+msgstr "Uwierzytelnienie OpenID nie powiodło się: %s"
 
 #: ../lib/openid.php:133 lib/openid.php:133 lib/openid.php:142
+#: lib/openid.php:145
 #, php-format
 msgid "OpenID failure: %s"
-msgstr "Awaria OpenID: %s"
+msgstr "Niepowodzenie OpenID: %s"
 
 #: ../actions/openidsettings.php:144 actions/openidsettings.php:153
 #: actions/openidsettings.php:231
@@ -1681,13 +1792,14 @@ msgid "OpenID settings"
 msgstr "Ustawienia OpenID"
 
 #: ../actions/invite.php:135 actions/invite.php:143 actions/invite.php:180
+#: actions/invite.php:186
 msgid "Optionally add a personal message to the invitation."
-msgstr ""
+msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia."
 
 #: ../actions/avatar.php:84 actions/profilesettings.php:321
-#: lib/imagefile.php:75
+#: lib/imagefile.php:75 lib/imagefile.php:79
 msgid "Partial upload."
-msgstr "Częściowa wysyłka."
+msgstr "Częściowo wysłano."
 
 #: ../actions/finishopenidlogin.php:90 ../actions/login.php:102
 #: ../actions/register.php:153 ../lib/settingsaction.php:93
@@ -1695,63 +1807,68 @@ msgstr "Częściowa wysyłka."
 #: actions/register.php:167 actions/finishopenidlogin.php:118
 #: actions/login.php:231 actions/register.php:372
 #: lib/accountsettingsaction.php:110 lib/facebookaction.php:311
+#: actions/login.php:214 lib/facebookaction.php:315
 msgid "Password"
 msgstr "Hasło"
 
 #: ../actions/recoverpassword.php:288 actions/recoverpassword.php:301
 #: actions/recoverpassword.php:335
 msgid "Password and confirmation do not match."
-msgstr "Hasło i jego potwierdzenie nie pasują do siebie."
+msgstr "Hasło i potwierdzenie nie pasują do siebie."
 
 #: ../actions/recoverpassword.php:284 actions/recoverpassword.php:297
 #: actions/recoverpassword.php:331
 msgid "Password must be 6 chars or more."
-msgstr "Hasło musi mieć 6 lub więcej znaków."
+msgstr "Hasło musi mieć sześć lub więcej znaków."
 
 #: ../actions/recoverpassword.php:261 ../actions/recoverpassword.php:263
 #: actions/recoverpassword.php:267 actions/recoverpassword.php:269
 #: actions/recoverpassword.php:199 actions/recoverpassword.php:301
 msgid "Password recovery requested"
-msgstr "Zażądano odzyskania hasła"
+msgstr "Zażądano przywracania hasła"
 
 #: ../actions/password.php:89 ../actions/recoverpassword.php:313
 #: actions/profilesettings.php:408 actions/recoverpassword.php:326
 #: actions/passwordsettings.php:173 actions/recoverpassword.php:200
+#: actions/passwordsettings.php:178
 msgid "Password saved."
-msgstr "Hasło zostało zapisane."
+msgstr "Zapisano hasło."
 
 #: ../actions/password.php:61 ../actions/register.php:88
 #: actions/profilesettings.php:380 actions/register.php:98
 #: actions/passwordsettings.php:145 actions/register.php:183
+#: actions/passwordsettings.php:150
 msgid "Passwords don't match."
-msgstr "Podane hasła nie pasują do siebie."
+msgstr "Hasła nie pasują do siebie."
 
 #: ../lib/searchaction.php:100 lib/searchaction.php:100
 #: lib/searchgroupnav.php:80
 msgid "People"
-msgstr ""
+msgstr "Osoby"
 
 #: ../actions/opensearch.php:33 actions/opensearch.php:33
 #: actions/opensearch.php:64
 msgid "People Search"
-msgstr ""
+msgstr "Wyszukiwanie osób"
 
 #: ../actions/peoplesearch.php:33 actions/peoplesearch.php:33
 #: actions/peoplesearch.php:58
 msgid "People search"
-msgstr "Szukaj ludzi"
+msgstr "Wyszukiwanie osób"
 
 #: ../lib/stream.php:50 lib/personal.php:50 lib/personalgroupnav.php:98
 msgid "Personal"
 msgstr "Osobiste"
 
 #: ../actions/invite.php:133 actions/invite.php:141 actions/invite.php:178
+#: actions/invite.php:184
 msgid "Personal message"
-msgstr ""
+msgstr "Osobista wiadomość"
 
 #: ../actions/smssettings.php:69 actions/smssettings.php:69
+#: actions/smssettings.php:128
 msgid "Phone number, no punctuation or spaces, with area code"
-msgstr ""
+msgstr "Numer telefonu, bez znaków przestankowych i spacji, z kodem państwa"
 
 #: ../actions/userauthorization.php:78
 msgid ""
@@ -1759,21 +1876,20 @@ msgid ""
 "user's notices. If you didn't just ask to subscribe to someone's notices, "
 "click \"Cancel\"."
 msgstr ""
-"Sprawdź proszę poniższe informacje, aby upewnić się czy na pewno chcesz "
-"obserwować wpisy tego użytkownika. Jeżeli to pomyłka lub chodziło o kogoś "
-"innego kliknij \"Anuluj\"."
+"Sprawdź te szczegóły, aby upewnić się, czy chcesz subskrybować wpisy tego "
+"użytkownika. Jeśli nie chcesz, po prostu naciśnij \"Anuluj\"."
 
 #: ../actions/imsettings.php:73 actions/imsettings.php:74
 #: actions/imsettings.php:142
 msgid "Post a notice when my Jabber/GTalk status changes."
-msgstr "Utwórz wpis kiedy zmieni się status na komunikatorze."
+msgstr "Wyślij wpis, kiedy zmieni się mój status na Jabberze/GTalk."
 
 #: ../actions/emailsettings.php:85 ../actions/imsettings.php:67
 #: ../actions/smssettings.php:94 actions/emailsettings.php:86
 #: actions/imsettings.php:68 actions/smssettings.php:94
 #: actions/twittersettings.php:70 actions/emailsettings.php:147
 #: actions/imsettings.php:133 actions/smssettings.php:157
-#: actions/twittersettings.php:134
+#: actions/twittersettings.php:134 actions/twittersettings.php:137
 msgid "Preferences"
 msgstr "Preferencje"
 
@@ -1782,22 +1898,24 @@ msgstr "Preferencje"
 #: actions/imsettings.php:152 actions/smssettings.php:171
 #: actions/emailsettings.php:286 actions/imsettings.php:258
 #: actions/othersettings.php:168 actions/smssettings.php:272
+#: actions/emailsettings.php:293
 msgid "Preferences saved."
-msgstr "Preferencje zostały zapisane."
+msgstr "Zapisano preferencje."
 
 #: ../actions/profilesettings.php:57 actions/profilesettings.php:90
 #: actions/profilesettings.php:129
 msgid "Preferred language"
-msgstr ""
+msgstr "Preferowany język"
 
-#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572
+#: ../lib/util.php:328 lib/util.php:344 lib/action.php:572 lib/action.php:665
 msgid "Privacy"
 msgstr "Prywatność"
 
 #: ../classes/Notice.php:95 ../classes/Notice.php:106 classes/Notice.php:109
 #: classes/Notice.php:119 classes/Notice.php:145 classes/Notice.php:155
+#: classes/Notice.php:178 classes/Notice.php:188
 msgid "Problem saving notice."
-msgstr "Problem z zachowywaniem wpisu."
+msgstr "Problem podczas zapisywania wpisu."
 
 #: ../lib/settingsaction.php:84 ../lib/stream.php:60 lib/personal.php:60
 #: lib/settingsaction.php:84 lib/accountsettingsaction.php:104
@@ -1808,7 +1926,7 @@ msgstr "Profil"
 #: ../actions/remotesubscribe.php:73 actions/remotesubscribe.php:82
 #: actions/remotesubscribe.php:109
 msgid "Profile URL"
-msgstr "URL profilu"
+msgstr "Adres URL profilu"
 
 #: ../actions/profilesettings.php:34 actions/profilesettings.php:32
 #: actions/profilesettings.php:58
@@ -1818,32 +1936,33 @@ msgstr "Ustawienia profilu"
 #: ../actions/postnotice.php:51 ../actions/updateprofile.php:52
 #: actions/postnotice.php:52 actions/updateprofile.php:53
 #: actions/postnotice.php:55 actions/updateprofile.php:56
+#: actions/updateprofile.php:58
 msgid "Profile unknown"
 msgstr "Nieznany profil"
 
 #: ../actions/public.php:54 actions/public.php:54 actions/public.php:124
 msgid "Public Stream Feed"
-msgstr "Publiczny Kanał Strumieni"
+msgstr "Kanał publicznego strumienia"
 
 #: ../actions/public.php:33 actions/public.php:33 actions/public.php:109
-#: lib/publicgroupnav.php:77
+#: lib/publicgroupnav.php:77 actions/public.php:112 lib/publicgroupnav.php:79
 msgid "Public timeline"
 msgstr "Publiczna oś czasu"
 
 #: ../actions/imsettings.php:79 actions/imsettings.php:80
 #: actions/imsettings.php:153
 msgid "Publish a MicroID for my Jabber/GTalk address."
-msgstr ""
+msgstr "Opublikuj MicroID adresu Jabbera/GTalk."
 
 #: ../actions/emailsettings.php:94 actions/emailsettings.php:101
-#: actions/emailsettings.php:178
+#: actions/emailsettings.php:178 actions/emailsettings.php:183
 msgid "Publish a MicroID for my email address."
-msgstr ""
+msgstr "Opublikuj MicroID adresu e-mail."
 
 #: ../actions/tag.php:75 ../actions/tag.php:76 actions/tag.php:75
 #: actions/tag.php:76
 msgid "Recent Tags"
-msgstr ""
+msgstr "Ostatnie znaczniki"
 
 #: ../actions/recoverpassword.php:166 actions/recoverpassword.php:171
 #: actions/recoverpassword.php:190
@@ -1853,29 +1972,30 @@ msgstr "Przywróć"
 #: ../actions/recoverpassword.php:156 actions/recoverpassword.php:161
 #: actions/recoverpassword.php:198
 msgid "Recover password"
-msgstr "Odzyskiwanie hasła"
+msgstr "Przywróć hasło"
 
 #: ../actions/recoverpassword.php:67 actions/recoverpassword.php:67
 #: actions/recoverpassword.php:73
 msgid "Recovery code for unknown user."
-msgstr "Kod przywracający dla nieznanego użytkownika."
+msgstr "Kod przywracania dla nieznanego użytkownika."
 
 #: ../actions/register.php:142 ../actions/register.php:193 ../lib/util.php:312
 #: actions/register.php:152 actions/register.php:207 lib/util.php:328
 #: actions/register.php:69 actions/register.php:436 lib/action.php:338
 #: lib/facebookaction.php:277 lib/logingroupnav.php:78
+#: actions/register.php:438 lib/action.php:415 lib/facebookaction.php:279
 msgid "Register"
-msgstr "Zarejestruj"
+msgstr "Zarejestruj się"
 
 #: ../actions/register.php:28 actions/register.php:28
 #: actions/finishopenidlogin.php:196 actions/register.php:90
 msgid "Registration not allowed."
-msgstr ""
+msgstr "Rejestracja nie jest dozwolona."
 
 #: ../actions/register.php:200 actions/register.php:214
 #: actions/register.php:67
 msgid "Registration successful"
-msgstr ""
+msgstr "Rejestracja powiodła się"
 
 #: ../actions/userauthorization.php:120 actions/userauthorization.php:127
 #: actions/userauthorization.php:144
@@ -1884,19 +2004,19 @@ msgstr "Odrzuć"
 
 #: ../actions/login.php:103 ../actions/register.php:176 actions/login.php:103
 #: actions/register.php:190 actions/login.php:234 actions/openidlogin.php:107
-#: actions/register.php:414
+#: actions/register.php:414 actions/login.php:217 actions/openidlogin.php:116
 msgid "Remember me"
-msgstr "Pamiętaj mnie"
+msgstr "Zapamiętaj mnie"
 
 #: ../actions/updateprofile.php:70 actions/updateprofile.php:71
-#: actions/updateprofile.php:74
+#: actions/updateprofile.php:74 actions/updateprofile.php:76
 msgid "Remote profile with no matching profile"
-msgstr "Zdalny profil bez odpowiadającego profilu lokalnego"
+msgstr "Zdalny profil bez odpowiadającego profilu"
 
 #: ../actions/remotesubscribe.php:65 actions/remotesubscribe.php:73
 #: actions/remotesubscribe.php:88
 msgid "Remote subscribe"
-msgstr "Zdalna subskrypcja"
+msgstr "Zasubskrybuj zdalnie"
 
 #: ../actions/emailsettings.php:47 ../actions/emailsettings.php:75
 #: ../actions/imsettings.php:48 ../actions/openidsettings.php:106
@@ -1908,21 +2028,22 @@ msgstr "Zdalna subskrypcja"
 #: actions/emailsettings.php:134 actions/imsettings.php:102
 #: actions/openidsettings.php:166 actions/smssettings.php:103
 #: actions/smssettings.php:146 actions/twittersettings.php:115
+#: actions/twittersettings.php:118
 msgid "Remove"
 msgstr "Usuń"
 
 #: ../actions/openidsettings.php:68 actions/openidsettings.php:69
 #: actions/openidsettings.php:123
 msgid "Remove OpenID"
-msgstr "Usuń konto OpenID"
+msgstr "Usuń identyfikator OpenID"
 
-#: ../actions/openidsettings.php:73
+#: ../actions/openidsettings.php:73 actions/openidsettings.php:128
 msgid ""
 "Removing your only OpenID would make it impossible to log in! If you need to "
 "remove it, add another OpenID first."
 msgstr ""
-"Usunięcie jedynego konta OpenID uniemożliwi dalsze logowanie! Jeśli musisz "
-"je usunąć dodaj wcześniej jakieś inne."
+"Usunięcie jedynego identyfikatora OpenID uniemożliwi zalogowanie się! Jeśli "
+"musisz je usunąć, dodaj najpierw inne."
 
 #: ../lib/stream.php:55 lib/personal.php:55 lib/personalgroupnav.php:103
 msgid "Replies"
@@ -1931,7 +2052,7 @@ msgstr "Odpowiedzi"
 #: ../actions/replies.php:47 ../actions/repliesrss.php:76 ../lib/stream.php:56
 #: actions/replies.php:47 actions/repliesrss.php:62 lib/personal.php:56
 #: actions/replies.php:116 actions/repliesrss.php:67
-#: lib/personalgroupnav.php:104
+#: lib/personalgroupnav.php:104 actions/replies.php:118
 #, php-format
 msgid "Replies to %s"
 msgstr "Odpowiedzi na %s"
@@ -1939,41 +2060,42 @@ msgstr "Odpowiedzi na %s"
 #: ../actions/recoverpassword.php:183 actions/recoverpassword.php:189
 #: actions/recoverpassword.php:223
 msgid "Reset"
-msgstr "Wyzeruj"
+msgstr "Przywróć"
 
 #: ../actions/recoverpassword.php:173 actions/recoverpassword.php:178
 #: actions/recoverpassword.php:197
 msgid "Reset password"
-msgstr "Ustaw ponownie hasło"
+msgstr "Przywróć hasło"
 
 #: ../lib/settingsaction.php:99 lib/settingsaction.php:93
 #: actions/subscriptions.php:123 lib/connectsettingsaction.php:107
+#: actions/subscriptions.php:125
 msgid "SMS"
-msgstr ""
+msgstr "SMS"
 
 #: ../actions/smssettings.php:67 actions/smssettings.php:67
 #: actions/smssettings.php:126
 msgid "SMS Phone number"
-msgstr ""
+msgstr "Numer telefonu SMS"
 
 #: ../actions/smssettings.php:33 actions/smssettings.php:33
 #: actions/smssettings.php:58
 msgid "SMS Settings"
-msgstr ""
+msgstr "Ustawienia SMS"
 
-#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437
+#: ../lib/mail.php:219 lib/mail.php:225 lib/mail.php:437 lib/mail.php:438
 msgid "SMS confirmation"
-msgstr ""
+msgstr "Potwierdzenie SMS"
 
 #: ../actions/recoverpassword.php:182 actions/recoverpassword.php:188
 #: actions/recoverpassword.php:222
 msgid "Same as password above"
-msgstr "Takie samo jak hasło wprowadzone powyżej"
+msgstr "Takie samo jak powyższe hasło"
 
 #: ../actions/register.php:156 actions/register.php:170
 #: actions/register.php:377
 msgid "Same as password above. Required."
-msgstr ""
+msgstr "Takie samo jak powyższe hasło. Wymagane."
 
 #: ../actions/emailsettings.php:97 ../actions/imsettings.php:81
 #: ../actions/profilesettings.php:67 ../actions/smssettings.php:100
@@ -1984,48 +2106,51 @@ msgstr ""
 #: actions/othersettings.php:117 actions/profilesettings.php:150
 #: actions/smssettings.php:169 actions/subscriptions.php:124
 #: actions/tagother.php:152 actions/twittersettings.php:161
-#: lib/groupeditform.php:171
+#: lib/groupeditform.php:171 actions/emailsettings.php:187
+#: actions/subscriptions.php:126 actions/tagother.php:154
+#: actions/twittersettings.php:164
 msgid "Save"
 msgstr "Zapisz"
 
 #: ../lib/searchaction.php:84 ../lib/util.php:300 lib/searchaction.php:84
-#: lib/util.php:316 lib/action.php:325
+#: lib/util.php:316 lib/action.php:325 lib/action.php:396
 msgid "Search"
-msgstr "Szukaj"
+msgstr "Znajdź"
 
 #: ../actions/noticesearch.php:80 actions/noticesearch.php:85
 #: actions/noticesearch.php:127
 msgid "Search Stream Feed"
-msgstr "Szukaj Kanału Strumieni"
+msgstr "Znajdź kanał strumienia"
 
 #: ../actions/noticesearch.php:30 actions/noticesearch.php:30
-#: actions/noticesearch.php:57
+#: actions/noticesearch.php:57 actions/noticesearch.php:68
 #, php-format
 msgid ""
 "Search for notices on %%site.name%% by their contents. Separate search terms "
 "by spaces; they must be 3 characters or more."
 msgstr ""
-"Wyszukiwanie w treści wpisów w serwisie %%site.name%%. Użyj spacji aby "
-"oddzielić elementy wyszukiwania. Słowa muszą mieć minimum 3 znaki."
+"Znajdź wpisy na %%site.name%% według ich zawartości. Oddziel wyszukiwane "
+"terminy spacjami. Terminy muszą mieć trzy znaki lub więcej."
 
-#: ../actions/peoplesearch.php:28
+#: ../actions/peoplesearch.php:28 actions/peoplesearch.php:52
 #, php-format
 msgid ""
 "Search for people on %%site.name%% by their name, location, or interests. "
 "Separate the terms by spaces; they must be 3 characters or more."
 msgstr ""
-"Szukaj ludzi w serwisie %%site.name%%. Kryteriami mogą być imiona i "
-"nazwiska, miejscowości lub zainteresowania. Użyj spacji aby oddzielić "
-"elementy wyszukiwania. Słowa muszą mieć minimum 3 znaki."
+"Znajdź osoby na %%site.name%% według ich nazwiska, położenia lub "
+"zainteresowań. Oddziel wyszukiwane terminy spacjami. Terminy muszą mieć trzy "
+"znaki lub więcej."
 
 #: ../actions/smssettings.php:296 actions/smssettings.php:304
 #: actions/smssettings.php:457
 msgid "Select a carrier"
-msgstr ""
+msgstr "Wybierz operatora"
 
 #: ../actions/invite.php:137 ../lib/util.php:1172 actions/invite.php:145
 #: lib/util.php:1306 lib/util.php:1731 actions/invite.php:182
-#: lib/messageform.php:167 lib/noticeform.php:177
+#: lib/messageform.php:167 lib/noticeform.php:177 actions/invite.php:189
+#: lib/messageform.php:165
 msgid "Send"
 msgstr "Wyślij"
 
@@ -2033,45 +2158,51 @@ msgstr "Wyślij"
 #: actions/emailsettings.php:74 actions/smssettings.php:82
 #: actions/emailsettings.php:132 actions/smssettings.php:145
 msgid "Send email to this address to post new notices."
-msgstr ""
+msgstr "Wyślij wiadomość e-mail na ten adres, aby wysyłać nowe wpisy."
 
 #: ../actions/emailsettings.php:88 actions/emailsettings.php:89
 #: actions/emailsettings.php:152
 msgid "Send me notices of new subscriptions through email."
-msgstr ""
+msgstr "Wyślij mi wpisy nowych subskrypcji przez e-mail."
 
 #: ../actions/imsettings.php:70 actions/imsettings.php:71
 #: actions/imsettings.php:137
 msgid "Send me notices through Jabber/GTalk."
-msgstr "Wysyłaj mi wpisy przez Jabbera/GTalka"
+msgstr "Wyślij mi wpisy przez Jabbera/GTalk."
 
 #: ../actions/smssettings.php:97 actions/smssettings.php:97
+#: actions/smssettings.php:162
 msgid ""
 "Send me notices through SMS; I understand I may incur exorbitant charges "
 "from my carrier."
 msgstr ""
+"Wyślij mi wpisy przez SMS. Rozumiem, że mogę otrzymywać większe rachunki od "
+"swojego operatora."
 
 #: ../actions/imsettings.php:76 actions/imsettings.php:77
+#: actions/imsettings.php:147
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
+"Wyślij mi odpowiedzi przez Jabbera/GTalk od osób, których nie subskrybuję."
 
 #: ../lib/util.php:304 lib/util.php:320 lib/facebookaction.php:215
+#: lib/facebookaction.php:228
 msgid "Settings"
 msgstr "Ustawienia"
 
 #: ../actions/profilesettings.php:192 actions/profilesettings.php:307
 #: actions/profilesettings.php:319
 msgid "Settings saved."
-msgstr "Ustawienia zostały zapisane."
+msgstr "Zapisano ustawienia."
 
 #: ../actions/tag.php:60 actions/tag.php:60
 msgid "Showing most popular tags from the last week"
-msgstr ""
+msgstr "Wyświetlanie najpopularniejszych znaczników od ostatniego tygodnia"
 
 #: ../actions/finishaddopenid.php:66 actions/finishaddopenid.php:66
 #: actions/finishaddopenid.php:114
 msgid "Someone else already has this OpenID."
-msgstr "Ktoś inny posługuje się już tym identyfikatorem OpenID."
+msgstr "Ktoś inny już posiada ten identyfikator OpenID."
 
 #: ../actions/finishopenidlogin.php:42 ../actions/openidsettings.php:126
 #: actions/finishopenidlogin.php:47 actions/openidsettings.php:135
@@ -2082,27 +2213,28 @@ msgstr "Stało się coś dziwnego."
 #: ../scripts/maildaemon.php:58 scripts/maildaemon.php:58
 #: scripts/maildaemon.php:61
 msgid "Sorry, no incoming email allowed."
-msgstr ""
+msgstr "Przepraszamy, przychodzący e-mail nie jest dozwolony."
 
 #: ../scripts/maildaemon.php:54 scripts/maildaemon.php:54
 #: scripts/maildaemon.php:57
 msgid "Sorry, that is not your incoming email address."
-msgstr ""
+msgstr "Przepraszamy, to nie jest twój przychodzący adres e-mail."
 
-#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574
+#: ../lib/util.php:330 lib/util.php:346 lib/action.php:574 lib/action.php:667
 msgid "Source"
 msgstr "Kod źródłowy"
 
 #: ../actions/showstream.php:296 actions/showstream.php:311
-#: actions/showstream.php:476
+#: actions/showstream.php:476 actions/showgroup.php:375
 msgid "Statistics"
 msgstr "Statystyki"
 
 #: ../actions/finishopenidlogin.php:182 ../actions/finishopenidlogin.php:246
 #: actions/finishopenidlogin.php:188 actions/finishopenidlogin.php:252
 #: actions/finishopenidlogin.php:222 actions/finishopenidlogin.php:290
+#: actions/finishopenidlogin.php:295
 msgid "Stored OpenID not found."
-msgstr "Nie znaleziono zapisanego konta OpenID."
+msgstr "Nie znaleziono przechowywanego identyfikatora OpenID."
 
 #: ../actions/remotesubscribe.php:75 ../actions/showstream.php:188
 #: ../actions/showstream.php:197 actions/remotesubscribe.php:84
@@ -2110,7 +2242,7 @@ msgstr "Nie znaleziono zapisanego konta OpenID."
 #: actions/remotesubscribe.php:113 actions/showstream.php:376
 #: lib/subscribeform.php:139
 msgid "Subscribe"
-msgstr "Subskrybuj"
+msgstr "Zasubskrybuj"
 
 #: ../actions/showstream.php:313 ../actions/subscribers.php:27
 #: actions/showstream.php:328 actions/subscribers.php:27
@@ -2120,14 +2252,14 @@ msgid "Subscribers"
 msgstr "Subskrybenci"
 
 #: ../actions/userauthorization.php:310 actions/userauthorization.php:322
-#: actions/userauthorization.php:338
+#: actions/userauthorization.php:338 actions/userauthorization.php:344
 msgid "Subscription authorized"
-msgstr "Subskrypcja uwierzytelniona"
+msgstr "Upoważniono subskrypcję"
 
 #: ../actions/userauthorization.php:320 actions/userauthorization.php:332
-#: actions/userauthorization.php:349
+#: actions/userauthorization.php:349 actions/userauthorization.php:355
 msgid "Subscription rejected"
-msgstr "Subskrypcja odrzucona"
+msgstr "Odrzucono subskrypcję"
 
 #: ../actions/showstream.php:230 ../actions/showstream.php:307
 #: ../actions/subscriptions.php:27 actions/showstream.php:240
@@ -2138,25 +2270,26 @@ msgid "Subscriptions"
 msgstr "Subskrypcje"
 
 #: ../actions/avatar.php:87 actions/profilesettings.php:324
-#: lib/imagefile.php:78
+#: lib/imagefile.php:78 lib/imagefile.php:82
 msgid "System error uploading file."
-msgstr "Błąd systemowy podczas wysyłania pliku."
+msgstr "Błąd systemu podczas wysyłania pliku."
 
 #: ../actions/tag.php:41 ../lib/util.php:301 actions/tag.php:41
 #: lib/util.php:317 actions/profilesettings.php:122 actions/showstream.php:297
 #: actions/tagother.php:147 actions/tagother.php:207 lib/profilelist.php:162
-#: lib/profilelist.php:164
+#: lib/profilelist.php:164 actions/showstream.php:290 actions/tagother.php:149
+#: actions/tagother.php:209 lib/profilelist.php:160
 msgid "Tags"
-msgstr ""
+msgstr "Znaczniki"
 
 #: ../lib/searchaction.php:104 lib/searchaction.php:104
 msgid "Text"
-msgstr ""
+msgstr "Tekst"
 
 #: ../actions/noticesearch.php:34 actions/noticesearch.php:34
-#: actions/noticesearch.php:67
+#: actions/noticesearch.php:67 actions/noticesearch.php:78
 msgid "Text search"
-msgstr "Szukaj tekstu"
+msgstr "Znajdź tekst"
 
 #: ../actions/openidsettings.php:140 actions/openidsettings.php:149
 #: actions/openidsettings.php:227
@@ -2166,7 +2299,7 @@ msgstr "Ten identyfikator OpenID nie należy do Ciebie."
 #: ../actions/confirmaddress.php:52 actions/confirmaddress.php:52
 #: actions/confirmaddress.php:94
 msgid "That address has already been confirmed."
-msgstr "Ten adres został już potwierdzony"
+msgstr "Ten adres został już potwierdzony."
 
 #: ../actions/confirmaddress.php:43 actions/confirmaddress.php:43
 #: actions/confirmaddress.php:85
@@ -2174,8 +2307,9 @@ msgid "That confirmation code is not for you!"
 msgstr "Ten kod potwierdzający nie jest przeznaczony dla Ciebie!"
 
 #: ../actions/emailsettings.php:191 actions/emailsettings.php:209
+#: actions/emailsettings.php:328
 msgid "That email address already belongs to another user."
-msgstr ""
+msgstr "Ten adres e-mail należy już do innego użytkownika."
 
 #: ../actions/avatar.php:80 actions/profilesettings.php:317
 #: lib/imagefile.php:71
@@ -2185,17 +2319,17 @@ msgstr "Ten plik jest za duży."
 #: ../actions/imsettings.php:170 actions/imsettings.php:178
 #: actions/imsettings.php:293
 msgid "That is already your Jabber ID."
-msgstr "Ten identyfikator Jabbera jest już do Ciebie przypisany."
+msgstr "Ten identyfikator Jabbera jest już Twój."
 
 #: ../actions/emailsettings.php:188 actions/emailsettings.php:206
-#: actions/emailsettings.php:318
+#: actions/emailsettings.php:318 actions/emailsettings.php:325
 msgid "That is already your email address."
-msgstr ""
+msgstr "Ten adres e-mail jest już Twój."
 
 #: ../actions/smssettings.php:188 actions/smssettings.php:196
 #: actions/smssettings.php:306
 msgid "That is already your phone number."
-msgstr ""
+msgstr "Ten numer telefonu jest już Twój."
 
 #: ../actions/imsettings.php:233 actions/imsettings.php:241
 #: actions/imsettings.php:381
@@ -2203,109 +2337,117 @@ msgid "That is not your Jabber ID."
 msgstr "To nie jest Twój identyfikator Jabbera."
 
 #: ../actions/emailsettings.php:249 actions/emailsettings.php:267
-#: actions/emailsettings.php:397
+#: actions/emailsettings.php:397 actions/emailsettings.php:404
 msgid "That is not your email address."
-msgstr ""
+msgstr "To nie jest Twój adres e-mail."
 
 #: ../actions/smssettings.php:257 actions/smssettings.php:265
 #: actions/smssettings.php:393
 msgid "That is not your phone number."
-msgstr ""
+msgstr "To nie jest Twój numer telefonu."
 
 #: ../actions/emailsettings.php:226 ../actions/imsettings.php:210
 #: actions/emailsettings.php:244 actions/imsettings.php:218
 #: actions/emailsettings.php:367 actions/imsettings.php:349
+#: actions/emailsettings.php:374
 msgid "That is the wrong IM address."
 msgstr "To jest błędny adres komunikatora."
 
 #: ../actions/smssettings.php:233 actions/smssettings.php:241
 #: actions/smssettings.php:362
 msgid "That is the wrong confirmation number."
-msgstr ""
+msgstr "To jest błędny numer potwierdzenia."
 
 #: ../actions/smssettings.php:191 actions/smssettings.php:199
 #: actions/smssettings.php:309
 msgid "That phone number already belongs to another user."
-msgstr ""
+msgstr "Ten numer telefonu należy już do innego użytkownika."
 
 #: ../actions/newnotice.php:49 ../actions/twitapistatuses.php:408
 #: actions/newnotice.php:49 actions/twitapistatuses.php:330
 #: actions/facebookhome.php:243 actions/twitapistatuses.php:276
+#: actions/newnotice.php:136 actions/twitapistatuses.php:294
+#: lib/facebookaction.php:485
 msgid "That's too long. Max notice size is 140 chars."
-msgstr "Wpis za długi. Maksymalna długość to 140 znaków."
+msgstr "Wpis jest za długi. Maksymalna długość to 140 znaków."
 
 #: ../actions/twitapiaccount.php:74 actions/twitapiaccount.php:72
-#: actions/twitapiaccount.php:62
+#: actions/twitapiaccount.php:62 actions/twitapiaccount.php:63
 msgid "That's too long. Max notice size is 255 chars."
-msgstr ""
+msgstr "Wpis jest za długi. Maksymalna długość to 255 znaków."
 
 #: ../actions/confirmaddress.php:92 actions/confirmaddress.php:92
+#: actions/confirmaddress.php:159
 #, php-format
 msgid "The address \"%s\" has been confirmed for your account."
-msgstr "Skojarzony z Twoim kontem adres \"%s\" został potwierdzony."
+msgstr "Adres \"%s\" został potwierdzony dla Twojego konta."
 
 #: ../actions/emailsettings.php:264 ../actions/imsettings.php:250
 #: ../actions/smssettings.php:274 actions/emailsettings.php:282
 #: actions/imsettings.php:258 actions/smssettings.php:282
 #: actions/emailsettings.php:416 actions/imsettings.php:402
-#: actions/smssettings.php:413
+#: actions/smssettings.php:413 actions/emailsettings.php:423
 msgid "The address was removed."
 msgstr "Adres został usunięty."
 
-#: ../actions/userauthorization.php:312
+#: ../actions/userauthorization.php:312 actions/userauthorization.php:346
 msgid ""
 "The subscription has been authorized, but no callback URL was passed. Check "
 "with the site's instructions for details on how to authorize the "
 "subscription. Your subscription token is:"
 msgstr ""
-"Twoje żądanie obserwacji zostało odrzucone, ale nie przekazano żadnego URL-a "
-"do zwrotnego komunikatu. Sprawdź w instrukcjach serwisu w jaki sposób "
-"dokładnie odbywa się odrzucanie subskrypcji. Twój token subskrypcji to:"
+"Subskrypcja została upoważniona, ale nie przekazano zwrotnego adresu URL. "
+"Sprawdź w instrukcjach strony, jak upoważnić subskrypcję. Token subskrypcji:"
 
-#: ../actions/userauthorization.php:322
+#: ../actions/userauthorization.php:322 actions/userauthorization.php:357
 msgid ""
 "The subscription has been rejected, but no callback URL was passed. Check "
 "with the site's instructions for details on how to fully reject the "
 "subscription."
 msgstr ""
-"Twoje żądanie obserwacji zostało odrzucone, ale nie przekazano żadnego URL-a "
-"do zwrotnego komunikatu. Sprawdź w instrukcjach serwisu w jaki sposób "
-"dokładnie odbywa się odrzucanie subskrypcji."
+"Subskrypcja została odrzucona, ale nie przekazano zwrotnego adresu URL. "
+"Sprawdź w instrukcjach strony, jak w pełni odrzucić subskrypcję."
 
 #: ../actions/subscribers.php:35 actions/subscribers.php:35
+#: actions/subscribers.php:67
 #, php-format
 msgid "These are the people who listen to %s's notices."
-msgstr "Ludzie obserwujący wpisy użytkownika %s."
+msgstr "Osoby obserwujące wpisy użytkownika %s."
 
 #: ../actions/subscribers.php:33 actions/subscribers.php:33
+#: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
-msgstr "Ludzie obserwujący Twoje wpisy."
+msgstr "Osoby obserwujący Twoje wpisy."
 
 #: ../actions/subscriptions.php:35 actions/subscriptions.php:35
+#: actions/subscriptions.php:69
 #, php-format
 msgid "These are the people whose notices %s listens to."
-msgstr "Ludzie, których wpisy obserwuje użytkownik %s."
+msgstr "Osoby, których wpisy obserwuje użytkownik %s."
 
 #: ../actions/subscriptions.php:33 actions/subscriptions.php:33
+#: actions/subscriptions.php:65
 msgid "These are the people whose notices you listen to."
-msgstr "Ludzie których wpisy obserwujesz."
+msgstr "Osoby, których wpisy obserwujesz."
 
 #: ../actions/invite.php:89 actions/invite.php:96 actions/invite.php:128
 msgid ""
 "These people are already users and you were automatically subscribed to them:"
 msgstr ""
+"Te osoby są już użytkownikami i zostałeś do nich automatycznie "
+"zasubskrybowany:"
 
-#: ../actions/recoverpassword.php:88
+#: ../actions/recoverpassword.php:88 actions/recoverpassword.php:97
 msgid "This confirmation code is too old. Please start again."
-msgstr "Kod potwierdzający jest przeterminowany. Zacznij jeszcze raz."
+msgstr "Kod potwierdzający jest za stary. Rozpocznij ponownie."
 
-#: ../lib/openid.php:195
+#: ../lib/openid.php:195 lib/openid.php:206
 msgid ""
 "This form should automatically submit itself. If not, click the submit "
 "button to go to your OpenID provider."
 msgstr ""
-"Ten formularz powinien wysłać się automatycznie. Jeśli tak się nie stanie "
-"kliknij Wyślij, aby przejść do Twojego dostawcy OpenID."
+"Ten formularz powinien wysłać się automatycznie. Jeśli tak się nie stanie, "
+"naciśnij przycisk Wyślij, aby przejść do dostawcy OpenID."
 
 #: ../actions/finishopenidlogin.php:56 actions/finishopenidlogin.php:61
 #: actions/finishopenidlogin.php:67
@@ -2315,66 +2457,69 @@ msgid ""
 "to a local account. You can either create a new account, or connect with "
 "your existing account, if you have one."
 msgstr ""
-"Jeżeli logujesz się po raz pierwszy do %s to twoje konto OpenID musi zostać "
-"skojarzone z kontem lokalnym. Możesz więc albo utworzyć nowe konto, albo "
-"połączyć je z posiadanym istniejącym."
+"Jeżeli logujesz się do %s po raz pierwszy, musimy połączyć identyfikator "
+"OpenID z lokalnym kontem. Można utworzyć nowe konto lub połączyć z "
+"istniejącym, jeśli je posiadasz."
 
 #: ../actions/twitapifriendships.php:108 ../actions/twitapistatuses.php:586
 #: actions/twitapifavorites.php:127 actions/twitapifriendships.php:108
 #: actions/twitapistatuses.php:511 actions/twitapifavorites.php:97
 #: actions/twitapifriendships.php:85 actions/twitapistatuses.php:436
+#: actions/twitapifavorites.php:103 actions/twitapistatuses.php:460
 msgid "This method requires a POST or DELETE."
-msgstr ""
+msgstr "Ta metoda wymaga POST lub DELETE."
 
 #: ../actions/twitapiaccount.php:65 ../actions/twitapifriendships.php:44
 #: ../actions/twitapistatuses.php:381 actions/twitapiaccount.php:63
 #: actions/twitapidirect_messages.php:114 actions/twitapifriendships.php:44
 #: actions/twitapistatuses.php:303 actions/twitapiaccount.php:53
 #: actions/twitapidirect_messages.php:122 actions/twitapifriendships.php:32
-#: actions/twitapistatuses.php:244
+#: actions/twitapistatuses.php:244 actions/twitapiaccount.php:54
+#: actions/twitapidirect_messages.php:131 actions/twitapistatuses.php:262
 msgid "This method requires a POST."
-msgstr ""
+msgstr "Ta metoda wymaga POST."
 
-#: ../lib/util.php:164 lib/util.php:246
+#: ../lib/util.php:164 lib/util.php:246 lib/htmloutputter.php:104
 msgid "This page is not available in a media type you accept"
-msgstr "Ta strona nie jest dostępna dla medium, którego typ akceptujesz"
+msgstr "Ta strona jest niedostępna dla akceptowanego typu medium"
 
 #: ../actions/profilesettings.php:63 actions/profilesettings.php:96
 #: actions/profilesettings.php:138
 msgid "Timezone"
-msgstr ""
+msgstr "Strefa czasowa"
 
 #: ../actions/profilesettings.php:107 actions/profilesettings.php:222
 #: actions/profilesettings.php:211
 msgid "Timezone not selected."
-msgstr ""
+msgstr "Nie wybrano strefy czasowej."
 
-#: ../actions/remotesubscribe.php:43
+#: ../actions/remotesubscribe.php:43 actions/remotesubscribe.php:74
 #, php-format
 msgid ""
 "To subscribe, you can [login](%%action.login%%), or [register](%%action."
 "register%%) a new  account. If you already have an account  on a [compatible "
 "microblogging site](%%doc.openmublog%%),  enter your profile URL below."
 msgstr ""
-"Aby się zapisać możesz się [zalogować](%%action.login%%) lub [zarejestrować]"
-"(%%action.register%%). Jeśli już posiadasz konto w [kompatybilnym serwisie](%"
-"%doc.openmublog%%) wprowadź poniżej identyfikator URL."
+"Aby zasubskrybować, można [zalogować się](%%action.login%%) lub "
+"[zarejestrować](%%action.register%%) nowe konto. Jeśli już posiadasz konto "
+"na [zgodnej stronie mikroblogowania](%%doc.openmublog%%), podaj poniżej "
+"adres URL profilu."
 
 #: ../actions/twitapifriendships.php:163 actions/twitapifriendships.php:167
 #: actions/twitapifriendships.php:132
 msgid "Two user ids or screen_names must be supplied."
-msgstr ""
+msgstr "Należy dostarczyć dwa identyfikatory lub nazwy użytkowników."
 
 #: ../actions/profilesettings.php:48 ../actions/register.php:169
 #: actions/profilesettings.php:81 actions/register.php:183
-#: actions/profilesettings.php:109
+#: actions/profilesettings.php:109 actions/register.php:398
 msgid "URL of your homepage, blog, or profile on another site"
-msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie"
+msgstr "Adres URL strony domowej, bloga lub profilu na innej stronie"
 
 #: ../actions/remotesubscribe.php:74 actions/remotesubscribe.php:83
 #: actions/remotesubscribe.php:110
 msgid "URL of your profile on another compatible microblogging service"
-msgstr "URL Twojego profilu na kompatybilnym serwisie do mikroblogów"
+msgstr "Adres URL profilu na innej, zgodnej usłudze mikroblogowania"
 
 #: ../actions/emailsettings.php:130 ../actions/imsettings.php:110
 #: ../actions/recoverpassword.php:39 ../actions/smssettings.php:135
@@ -2384,17 +2529,19 @@ msgstr "URL Twojego profilu na kompatybilnym serwisie do mikroblogów"
 #: actions/emailsettings.php:242 actions/grouplogo.php:317
 #: actions/imsettings.php:214 actions/recoverpassword.php:44
 #: actions/smssettings.php:236 actions/twittersettings.php:302
+#: actions/avatarsettings.php:263 actions/emailsettings.php:247
+#: actions/grouplogo.php:324 actions/twittersettings.php:306
 msgid "Unexpected form submission."
-msgstr "Nieoczekiwane przesłanie formularza."
+msgstr "Nieoczekiwane wysłanie formularza."
 
 #: ../actions/recoverpassword.php:276 actions/recoverpassword.php:289
 #: actions/recoverpassword.php:323
 msgid "Unexpected password reset."
-msgstr "Nieoczekiwane wyzerowanie hasła."
+msgstr "Nieoczekiwane przywrócenie hasła."
 
 #: ../index.php:57 index.php:57 actions/recoverpassword.php:202
 msgid "Unknown action"
-msgstr ""
+msgstr "Nieznane działanie"
 
 #: ../actions/finishremotesubscribe.php:58
 #: actions/finishremotesubscribe.php:60 actions/finishremotesubscribe.php:61
@@ -2406,8 +2553,8 @@ msgid ""
 "Unless otherwise specified, contents of this site are copyright by the "
 "contributors and available under the "
 msgstr ""
-"Prawo do kopiowania zawartości tej strony, chyba że zaznaczono inaczej, "
-"należy do tworzących jej treści i uwarunkowane zasadami"
+"Jeśli nie podano inaczej, prawa autorskie do zawartości tej strony należy do "
+"współtwórców i jest dostępna na warunkach licencji "
 
 #: ../actions/confirmaddress.php:48 actions/confirmaddress.php:48
 #: actions/confirmaddress.php:90
@@ -2423,38 +2570,40 @@ msgstr "Zrezygnuj z subskrypcji"
 #: ../actions/postnotice.php:44 ../actions/updateprofile.php:45
 #: actions/postnotice.php:45 actions/updateprofile.php:46
 #: actions/postnotice.php:48 actions/updateprofile.php:49
+#: actions/updateprofile.php:51
 msgid "Unsupported OMB version"
 msgstr "Nieobsługiwana wersja OMB"
 
 #: ../actions/avatar.php:105 actions/profilesettings.php:342
-#: lib/imagefile.php:102
+#: lib/imagefile.php:102 lib/imagefile.php:99
 msgid "Unsupported image file format."
 msgstr "Nieobsługiwany format pliku obrazu."
 
 #: ../lib/settingsaction.php:100 lib/settingsaction.php:94
 #: lib/connectsettingsaction.php:108
 msgid "Updates by SMS"
-msgstr ""
+msgstr "Aktualizacje przez wiadomości SMS"
 
 #: ../lib/settingsaction.php:103 lib/settingsaction.php:97
 #: lib/connectsettingsaction.php:105
 msgid "Updates by instant messenger (IM)"
-msgstr ""
+msgstr "Aktualizacje przez komunikator"
 
 #: ../actions/twitapistatuses.php:241 actions/twitapistatuses.php:158
-#: actions/twitapistatuses.php:129
+#: actions/twitapistatuses.php:129 actions/twitapistatuses.php:134
 #, php-format
 msgid "Updates from %1$s and friends on %2$s!"
-msgstr ""
+msgstr "Aktualizacje od %1$s i przyjaciół na %2$s!"
 
 #: ../actions/twitapistatuses.php:341 actions/twitapistatuses.php:268
-#: actions/twitapistatuses.php:202
+#: actions/twitapistatuses.php:202 actions/twitapistatuses.php:213
 #, php-format
 msgid "Updates from %1$s on %2$s!"
-msgstr ""
+msgstr "Aktualizacje od %1$s na %2$s!"
 
 #: ../actions/avatar.php:68 actions/profilesettings.php:161
 #: actions/avatarsettings.php:162 actions/grouplogo.php:232
+#: actions/avatarsettings.php:165 actions/grouplogo.php:238
 msgid "Upload"
 msgstr "Wyślij"
 
@@ -2465,23 +2614,25 @@ msgid ""
 "site license, also. Use a picture that belongs to you and that you want to "
 "share."
 msgstr ""
-"Tu możesz wysłać nowego \"awatara\" (wizerunek użytkownika). Nie da się "
-"edytować obrazu po jego umieszczeniu w serwisie, więc upewnij się, że jest w "
-"miarę kwadratowy. Wysyłając go zgadzasz się na jego publikację na warunkach "
-"podanych w licencji strony. Użyj grafiki, która należy do Ciebie i którą "
-"możesz dzielić się z innymi."
+"Tu można wysłać nowego \"awatara\" (obraz użytkownika). Nie można "
+"modyfikować obrazu po jego wysłaniu, więc upewnij się, że jest w miarę "
+"kwadratowy. Musi być także na licencji strony. Użyj obrazu, który należy do "
+"Ciebie, i którym chcesz się dzielić."
 
 #: ../lib/settingsaction.php:91
 msgid "Upload a new profile image"
-msgstr ""
+msgstr "Wyślij nowy obraz profilu"
 
 #: ../actions/invite.php:114 actions/invite.php:121 actions/invite.php:154
 msgid ""
 "Use this form to invite your friends and colleagues to use this service."
 msgstr ""
+"Użyj tego formularza, aby zaprosić przyjaciół i kolegów do używania tej "
+"usługi."
 
 #: ../actions/register.php:159 ../actions/register.php:162
-#: actions/register.php:173 actions/register.php:176
+#: actions/register.php:173 actions/register.php:176 actions/register.php:382
+#: actions/register.php:386
 msgid "Used only for updates, announcements, and password recovery"
 msgstr "Używane tylko do aktualizacji, ogłoszeń i przywracania hasła"
 
@@ -2505,8 +2656,10 @@ msgstr "Obserwowany użytkownik nie istnieje."
 #: actions/twitapifavorites.php:42 actions/twitapistatuses.php:167
 #: actions/twitapistatuses.php:503 actions/twitapiusers.php:55
 #: actions/usergroups.php:99 lib/galleryaction.php:67 lib/twitterapi.php:626
+#: actions/twitapiaccount.php:71 actions/twitapistatuses.php:179
+#: actions/twitapistatuses.php:535 actions/twitapiusers.php:59
 msgid "User has no profile."
-msgstr "Użytkownik nie ma profilu."
+msgstr "Użytkownik nie posiada profilu."
 
 #: ../actions/remotesubscribe.php:71 actions/remotesubscribe.php:80
 #: actions/remotesubscribe.php:105
@@ -2515,12 +2668,12 @@ msgstr "Pseudonim użytkownika"
 
 #: ../actions/twitapiusers.php:75 actions/twitapiusers.php:80
 msgid "User not found."
-msgstr ""
+msgstr "Nie znaleziono użytkownika."
 
 #: ../actions/profilesettings.php:63 actions/profilesettings.php:96
 #: actions/profilesettings.php:139
 msgid "What timezone are you normally in?"
-msgstr ""
+msgstr "W jakiej strefie czasowej zwykle się znajdujesz?"
 
 #: ../lib/util.php:1159 lib/util.php:1293 lib/noticeform.php:141
 #, php-format
@@ -2529,111 +2682,115 @@ msgstr "Co słychać, %s?"
 
 #: ../actions/profilesettings.php:54 ../actions/register.php:175
 #: actions/profilesettings.php:87 actions/register.php:189
-#: actions/profilesettings.php:119
+#: actions/profilesettings.php:119 actions/register.php:410
 msgid "Where you are, like \"City, State (or Region), Country\""
-msgstr "Gdzie jesteś? (np. \"miasto, region, kraj\")"
+msgstr "Gdzie jesteś, np. \"miasto, województwo (lub region), kraj\""
 
 #: ../actions/updateprofile.php:128 actions/updateprofile.php:129
-#: actions/updateprofile.php:132
+#: actions/updateprofile.php:132 actions/updateprofile.php:134
 #, php-format
 msgid "Wrong image type for '%s'"
-msgstr "Nieprawidłowy typ obrazu dla '%s'"
+msgstr "Błędny typ obrazu dla \"%s\""
 
 #: ../actions/updateprofile.php:123 actions/updateprofile.php:124
-#: actions/updateprofile.php:127
+#: actions/updateprofile.php:127 actions/updateprofile.php:129
 #, php-format
 msgid "Wrong size image at '%s'"
-msgstr "Nieprawidłowy rozmiar obrazu dla '%s'"
+msgstr "Błędny rozmiar obrazu \"%s\""
 
 #: ../actions/deletenotice.php:63 ../actions/deletenotice.php:72
 #: actions/deletenotice.php:64 actions/deletenotice.php:79
 #: actions/block.php:148 actions/deletenotice.php:122
-#: actions/deletenotice.php:141
+#: actions/deletenotice.php:141 actions/deletenotice.php:115
 msgid "Yes"
-msgstr ""
+msgstr "Tak"
 
 #: ../actions/finishaddopenid.php:64 actions/finishaddopenid.php:64
 #: actions/finishaddopenid.php:112
 msgid "You already have this OpenID!"
-msgstr "Już masz ten identyfikator OpenID!"
+msgstr "Już posiadasz ten identyfikator OpenID!"
 
 #: ../actions/deletenotice.php:37 actions/deletenotice.php:37
 msgid ""
 "You are about to permanently delete a notice.  Once this is done, it cannot "
 "be undone."
 msgstr ""
+"Wpis zostanie za chwilę trwale usunięty. Kiedy to się stanie, to już się nie "
+"odstanie."
 
 #: ../actions/recoverpassword.php:31 actions/recoverpassword.php:31
 #: actions/recoverpassword.php:36
 msgid "You are already logged in!"
-msgstr "Nie musisz ponownie się logować!"
+msgstr "Jesteś już zalogowany!"
 
 #: ../actions/invite.php:81 actions/invite.php:88 actions/invite.php:120
 msgid "You are already subscribed to these users:"
-msgstr ""
+msgstr "Jesteś już zasubskrybowany do tych użytkowników:"
 
 #: ../actions/twitapifriendships.php:128 actions/twitapifriendships.php:128
 #: actions/twitapifriendships.php:105
 msgid "You are not friends with the specified user."
-msgstr ""
+msgstr "Nie jesteś przyjacielem podanego użytkownika."
 
 #: ../actions/password.php:27
 msgid "You can change your password here. Choose a good one!"
-msgstr "Tu możesz zmienić hasło. Wybierz porządne!"
+msgstr "Tutaj można zmienić hasło. Wybierz dobre!"
 
 #: ../actions/register.php:135 actions/register.php:145
 msgid "You can create a new account to start posting notices."
-msgstr "Możesz utworzyć nowe konto, aby rozpocząć wysyłanie wpisów."
+msgstr "Można utworzyć nowe konto, aby rozpocząć wysyłanie wpisów."
 
 #: ../actions/smssettings.php:28 actions/smssettings.php:28
 #: actions/smssettings.php:69
 #, php-format
 msgid "You can receive SMS messages through email from %%site.name%%."
-msgstr ""
+msgstr "Można otrzymywać wiadomości SMS przez e-mail od %%site.name%%."
 
-#: ../actions/openidsettings.php:86
+#: ../actions/openidsettings.php:86 actions/openidsettings.php:143
 msgid ""
 "You can remove an OpenID from your account by clicking the button marked "
 "\"Remove\"."
 msgstr ""
-"Możesz usunąć łączność z serwerem OpenID ze swojego konta klikając \"Usuń\"."
+"Można usunąć identyfikator OpenID ze swojego konta naciskając przycisk \"Usuń"
+"\"."
 
 #: ../actions/imsettings.php:28 actions/imsettings.php:28
+#: actions/imsettings.php:70
 #, php-format
 msgid ""
 "You can send and receive notices through Jabber/GTalk [instant messages](%%"
 "doc.im%%). Configure your address and settings below."
 msgstr ""
-"Możesz wysyłać i odbierać wpisy przez komunikator Jabber/GTalk (%%doc.im%%). "
-"Poniżej możesz skonfigurować swój adres i ustawienia IM."
+"Można wysyłać i odbierać wpisy przez [komunikator](%%doc.im%%) Jabber/GTalk. "
+"Skonfiguruj adres i ustawienia poniżej."
 
-#: ../actions/profilesettings.php:27
+#: ../actions/profilesettings.php:27 actions/profilesettings.php:69
 msgid ""
 "You can update your personal profile info here so people know more about you."
 msgstr ""
-"W tym miejscu możesz zaktualizować informacje zawarte w Twoim osobistym "
-"profilu, aby inni mogli lepiej Cię poznać."
+"Tutaj można zaktualizować osobiste informacje w profilu, aby inni mogli "
+"lepiej Cię poznać."
 
 #: ../actions/finishremotesubscribe.php:31 ../actions/remotesubscribe.php:31
 #: actions/finishremotesubscribe.php:31 actions/remotesubscribe.php:31
 #: actions/finishremotesubscribe.php:33 actions/finishremotesubscribe.php:85
 #: actions/finishremotesubscribe.php:101 actions/remotesubscribe.php:35
 msgid "You can use the local subscription!"
-msgstr "Możesz skorzystać z lokalnej subskrypcji!"
+msgstr "Można używać lokalnej subskrypcji!"
 
 #: ../actions/finishopenidlogin.php:33 ../actions/register.php:61
 #: actions/finishopenidlogin.php:38 actions/register.php:68
-#: actions/finishopenidlogin.php:43
+#: actions/finishopenidlogin.php:43 actions/register.php:149
 msgid "You can't register if you don't agree to the license."
 msgstr ""
 "Nie możesz się zarejestrować, jeśli nie zgadzasz się z warunkami licencji."
 
 #: ../actions/updateprofile.php:63 actions/updateprofile.php:64
-#: actions/updateprofile.php:67
+#: actions/updateprofile.php:67 actions/updateprofile.php:69
 msgid "You did not send us that profile"
-msgstr "Ten profil nie był wysłany przez Ciebie"
+msgstr "Nie wysłałeś nam tego profilu"
 
-#: ../lib/mail.php:147
+#: ../lib/mail.php:147 lib/mail.php:289
 #, php-format
 msgid ""
 "You have a new posting address on %1$s.\n"
@@ -2645,122 +2802,132 @@ msgid ""
 "Faithfully yours,\n"
 "%4$s"
 msgstr ""
+"Posiadasz nowy adres wysyłania na %1$s.\n"
+"\n"
+"Wyślij wiadomość e-mail na %2$s, aby wysłać nowe wpisy.\n"
+"\n"
+"Więcej instrukcji dotyczących poczty e-mail można znaleźć na %3$s.\n"
+"\n"
+"Z poważaniem,\n"
+"%4$s"
 
 #: ../actions/twitapistatuses.php:612 actions/twitapistatuses.php:537
-#: actions/twitapistatuses.php:463
+#: actions/twitapistatuses.php:463 actions/twitapistatuses.php:486
 msgid "You may not delete another user's status."
-msgstr ""
+msgstr "Nie można usuwać statusów innych użytkowników."
 
 #: ../actions/invite.php:31 actions/invite.php:31 actions/invite.php:39
 #, php-format
 msgid "You must be logged in to invite other users to use %s"
 msgstr ""
+"Należy być zalogowanym, aby zapraszać innych użytkowników do używania %s"
 
 #: ../actions/invite.php:103 actions/invite.php:110 actions/invite.php:142
 msgid ""
 "You will be notified when your invitees accept the invitation and register "
 "on the site. Thanks for growing the community!"
 msgstr ""
+"Zostaniesz powiadomiony, kiedy ktoś zaakceptuje zaproszenie i zarejestruje "
+"się na stronie. Dziękujemy za pomoc w zwiększaniu społeczności!"
 
-#: ../actions/recoverpassword.php:149
+#: ../actions/recoverpassword.php:149 actions/recoverpassword.php:158
 msgid "You've been identified. Enter a  new password below. "
-msgstr "Identyfikacja pomyślna. Wprowadź poniżej nowe hasło."
+msgstr "Zostałeś zidentyfikowany. Podaj poniżej nowe hasło. "
 
 #: ../actions/openidlogin.php:67 actions/openidlogin.php:76
-#: actions/openidlogin.php:104
+#: actions/openidlogin.php:104 actions/openidlogin.php:113
 msgid "Your OpenID URL"
-msgstr "URL Twojej usługi OpenID"
+msgstr "Twój adres URL OpenID"
 
-#: ../actions/recoverpassword.php:164
+#: ../actions/recoverpassword.php:164 actions/recoverpassword.php:188
 msgid "Your nickname on this server, or your registered email address."
-msgstr ""
-"Twój pseudonim na tym serwerze lub adres e-mailowy użyty podczas rejestracji."
+msgstr "Twój pseudonim na tym serwerze lub zarejestrowany adres e-mail."
 
-#: ../actions/openidsettings.php:28
+#: ../actions/openidsettings.php:28 actions/openidsettings.php:70
 #, php-format
 msgid ""
 "[OpenID](%%doc.openid%%) lets you log into many sites  with the same user "
 "account.  Manage your associated OpenIDs from here."
 msgstr ""
-"[OpenID](%%doc.openid%%) pozwala logować Ci się do wielu serwisów z "
-"wykorzystaniem jednego konta użytkownika. Tu możesz zarządzać swoimi "
+"[OpenID](%%doc.openid%%) umożliwia logowanie się do wielu stron za pomocą "
+"tego samego konta użytkownika. Tu można zarządzać powiązanymi "
 "identyfikatorami OpenID."
 
-#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945
+#: ../lib/util.php:943 lib/util.php:992 lib/util.php:945 lib/util.php:756
 msgid "a few seconds ago"
 msgstr "kilka sekund temu"
 
-#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957
+#: ../lib/util.php:955 lib/util.php:1004 lib/util.php:957 lib/util.php:768
 #, php-format
 msgid "about %d days ago"
 msgstr "około %d dni temu"
 
-#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953
+#: ../lib/util.php:951 lib/util.php:1000 lib/util.php:953 lib/util.php:764
 #, php-format
 msgid "about %d hours ago"
 msgstr "około %d godzin temu"
 
-#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949
+#: ../lib/util.php:947 lib/util.php:996 lib/util.php:949 lib/util.php:760
 #, php-format
 msgid "about %d minutes ago"
 msgstr "około %d minut temu"
 
-#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961
+#: ../lib/util.php:959 lib/util.php:1008 lib/util.php:961 lib/util.php:772
 #, php-format
 msgid "about %d months ago"
 msgstr "około %d miesięcy temu"
 
-#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955
+#: ../lib/util.php:953 lib/util.php:1002 lib/util.php:955 lib/util.php:766
 msgid "about a day ago"
 msgstr "blisko dzień temu"
 
-#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947
+#: ../lib/util.php:945 lib/util.php:994 lib/util.php:947 lib/util.php:758
 msgid "about a minute ago"
-msgstr "blisko minutę temu"
+msgstr "około minutę temu"
 
-#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959
+#: ../lib/util.php:957 lib/util.php:1006 lib/util.php:959 lib/util.php:770
 msgid "about a month ago"
-msgstr "blisko miesiąc temu"
+msgstr "około miesiąc temu"
 
-#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963
+#: ../lib/util.php:961 lib/util.php:1010 lib/util.php:963 lib/util.php:774
 msgid "about a year ago"
-msgstr "blisko rok temu"
+msgstr "około rok temu"
 
-#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951
+#: ../lib/util.php:949 lib/util.php:998 lib/util.php:951 lib/util.php:762
 msgid "about an hour ago"
-msgstr "blisko godzinę temu"
+msgstr "około godzinę temu"
 
 #: ../actions/showstream.php:423 ../lib/stream.php:132
 #: actions/showstream.php:441 lib/stream.php:99
 msgid "delete"
-msgstr ""
+msgstr "usuń"
 
 #: ../actions/noticesearch.php:130 ../actions/showstream.php:408
 #: ../lib/stream.php:117 actions/noticesearch.php:136
 #: actions/showstream.php:426 lib/stream.php:84 actions/noticesearch.php:187
 msgid "in reply to..."
-msgstr "w odpowiedzi na"
+msgstr "w odpowiedzi na..."
 
 #: ../actions/noticesearch.php:137 ../actions/showstream.php:415
 #: ../lib/stream.php:124 actions/noticesearch.php:143
 #: actions/showstream.php:433 lib/stream.php:91 actions/noticesearch.php:194
 msgid "reply"
-msgstr "odpowiedź"
+msgstr "odpowiedz"
 
 #: ../actions/password.php:44 actions/profilesettings.php:183
 #: actions/passwordsettings.php:106
 msgid "same as password above"
-msgstr "takie samo hasło jak powyżej"
+msgstr "takie samo jak hasło powyżej"
 
 #: ../actions/twitapistatuses.php:755 actions/twitapistatuses.php:678
-#: actions/twitapistatuses.php:555
+#: actions/twitapistatuses.php:555 actions/twitapistatuses.php:596
+#: actions/twitapistatuses.php:618
 msgid "unsupported file type"
-msgstr ""
+msgstr "nieobsługiwany typ pliku"
 
 #: ../lib/util.php:1309 lib/util.php:1443
-#, fuzzy
 msgid "« After"
-msgstr "« następne"
+msgstr "« Następne"
 
 #: actions/deletenotice.php:74 actions/disfavor.php:43
 #: actions/emailsettings.php:127 actions/favor.php:45
@@ -2775,68 +2942,80 @@ msgstr "« następne"
 #: actions/finishopenidlogin.php:38 actions/invite.php:54 actions/nudge.php:80
 #: actions/openidlogin.php:37 actions/recoverpassword.php:316
 #: actions/subscribe.php:46 actions/unblock.php:65 actions/unsubscribe.php:43
+#: actions/avatarsettings.php:251 actions/emailsettings.php:229
+#: actions/grouplogo.php:314 actions/imsettings.php:200 actions/login.php:103
+#: actions/newmessage.php:133 actions/newnotice.php:96
+#: actions/openidsettings.php:188 actions/othersettings.php:136
+#: actions/passwordsettings.php:131 actions/profilesettings.php:172
+#: actions/register.php:113 actions/remotesubscribe.php:53
+#: actions/smssettings.php:216 actions/subedit.php:38 actions/tagother.php:166
+#: actions/twittersettings.php:294 actions/userauthorization.php:39
 msgid "There was a problem with your session token. Try again, please."
-msgstr ""
+msgstr "Wystąpił problem z tokenem sesji. Spróbuj ponownie."
 
 #: actions/disfavor.php:55 actions/disfavor.php:81
 msgid "This notice is not a favorite!"
-msgstr ""
+msgstr "Ten wpis nie jest ulubiony!"
 
 #: actions/disfavor.php:63 actions/disfavor.php:87
 msgid "Could not delete favorite."
-msgstr ""
+msgstr "Nie można usunąć ulubionego wpisu."
 
 #: actions/disfavor.php:72 lib/favorform.php:140
 msgid "Favor"
-msgstr ""
+msgstr "Dodaj do ulubionych"
 
-#: actions/emailsettings.php:92
+#: actions/emailsettings.php:92 actions/emailsettings.php:157
 msgid "Send me email when someone adds my notice as a favorite."
-msgstr ""
+msgstr "Wyślij mi wiadomość e-mail, kiedy ktoś doda mój wpis jako ulubiony."
 
 #: actions/emailsettings.php:95 actions/emailsettings.php:163
 msgid "Send me email when someone sends me a private message."
-msgstr ""
+msgstr "Wyślij mi wiadomość e-mail, kiedy ktoś wyśle mi prywatną wiadomość."
 
 #: actions/favor.php:53 actions/twitapifavorites.php:142 actions/favor.php:81
-#: actions/twitapifavorites.php:118
+#: actions/twitapifavorites.php:118 actions/twitapifavorites.php:124
 msgid "This notice is already a favorite!"
-msgstr ""
+msgstr "Ten wpis jest już ulubiony!"
 
 #: actions/favor.php:60 actions/twitapifavorites.php:151
 #: classes/Command.php:132 actions/favor.php:86
 #: actions/twitapifavorites.php:125 classes/Command.php:152
+#: actions/twitapifavorites.php:131 lib/command.php:152
 msgid "Could not create favorite."
-msgstr ""
+msgstr "Nie można utworzyć ulubionego wpisu."
 
 #: actions/favor.php:70
 msgid "Disfavor"
-msgstr ""
+msgstr "Usuń wpis z ulubionych"
 
 #: actions/favoritesrss.php:60 actions/showfavorites.php:47
 #: actions/favoritesrss.php:100 actions/showfavorites.php:77
+#: actions/favoritesrss.php:110
 #, php-format
 msgid "%s favorite notices"
-msgstr ""
+msgstr "Ulubione wpisy użytkownika %s"
 
 #: actions/favoritesrss.php:64 actions/favoritesrss.php:104
+#: actions/favoritesrss.php:114
 #, php-format
 msgid "Feed of favorite notices of %s"
-msgstr ""
+msgstr "Kanał ulubionych wpisów użytkownika %s"
 
 #: actions/inbox.php:28 actions/inbox.php:59
 #, php-format
 msgid "Inbox for %s - page %d"
-msgstr ""
+msgstr "Odebrane wiadomości użytkownika %s - strona %d"
 
 #: actions/inbox.php:30 actions/inbox.php:62
 #, php-format
 msgid "Inbox for %s"
-msgstr ""
+msgstr "Odebrane wiadomości użytkownika %s"
 
 #: actions/inbox.php:53 actions/inbox.php:115
 msgid "This is your inbox, which lists your incoming private messages."
 msgstr ""
+"To jest skrzynka odbiorcza, która wyświetla przychodzące wiadomości prywatne."
 
 #: actions/invite.php:178 actions/invite.php:213
 #, php-format
@@ -2844,234 +3023,260 @@ msgid ""
 "%1$s has invited you to join them on %2$s (%3$s).\n"
 "\n"
 msgstr ""
+"%1$s zaprosił się do dołączenia do %2$s (%3$s).\n"
+"\n"
 
 #: actions/login.php:104 actions/login.php:235 actions/openidlogin.php:108
 #: actions/register.php:416
 msgid "Automatically login in the future; "
-msgstr ""
+msgstr "Automatyczne logowanie; "
 
 #: actions/login.php:122 actions/login.php:264
 msgid "For security reasons, please re-enter your "
-msgstr ""
+msgstr "Z powodów bezpieczeństwa ponownie podaj "
 
 #: actions/login.php:126 actions/login.php:268
 msgid "Login with your username and password. "
-msgstr ""
+msgstr "Zaloguj się za pomocą nazwy użytkownika i hasła. "
 
 #: actions/newmessage.php:58 actions/twitapidirect_messages.php:130
-#: actions/twitapidirect_messages.php:141
+#: actions/twitapidirect_messages.php:141 actions/newmessage.php:148
+#: actions/twitapidirect_messages.php:150
 msgid "That's too long. Max message size is 140 chars."
-msgstr ""
+msgstr "Wiadomość jest za długa. Maksymalna długość to 140 znaków."
 
 #: actions/newmessage.php:65 actions/newmessage.php:128
+#: actions/newmessage.php:155
 msgid "No recipient specified."
-msgstr ""
+msgstr "Nie podano odbiorcy."
 
 #: actions/newmessage.php:68 actions/newmessage.php:113
 #: classes/Command.php:206 actions/newmessage.php:131
 #: actions/newmessage.php:168 classes/Command.php:237
+#: actions/newmessage.php:119 actions/newmessage.php:158 lib/command.php:237
 msgid "You can't send a message to this user."
-msgstr ""
+msgstr "Nie można wysłać wiadomości do tego użytkownika."
 
 #: actions/newmessage.php:71 actions/twitapidirect_messages.php:146
 #: classes/Command.php:209 actions/twitapidirect_messages.php:158
-#: classes/Command.php:240
+#: classes/Command.php:240 actions/newmessage.php:161
+#: actions/twitapidirect_messages.php:167 lib/command.php:240
 msgid ""
 "Don't send a message to yourself; just say it to yourself quietly instead."
-msgstr ""
+msgstr "Nie wysyłaj wiadomości do siebie, po prostu powiedz to sobie po cichu."
 
 #: actions/newmessage.php:108 actions/microsummary.php:62
-#: actions/newmessage.php:163
+#: actions/newmessage.php:163 actions/newmessage.php:114
 msgid "No such user"
-msgstr ""
+msgstr "Nie ma takiego użytkownika"
 
 #: actions/newmessage.php:117 actions/newmessage.php:67
+#: actions/newmessage.php:71
 msgid "New message"
-msgstr ""
+msgstr "Nowa wiadomość"
 
 #: actions/noticesearch.php:95 actions/noticesearch.php:146
 msgid "Notice without matching profile"
-msgstr ""
+msgstr "Wpis bez odpowiadającego profilu"
 
 #: actions/openidsettings.php:28 actions/openidsettings.php:70
 #, php-format
 msgid "[OpenID](%%doc.openid%%) lets you log into many sites "
-msgstr ""
+msgstr "[OpenID](%%doc.openid%%) umożliwia logowanie się na wiele stron "
 
 #: actions/openidsettings.php:46 actions/openidsettings.php:96
 msgid "If you want to add an OpenID to your account, "
-msgstr ""
+msgstr "Jeśli chcesz dodać identyfikator OpenID do konta, "
 
 #: actions/openidsettings.php:74
 msgid "Removing your only OpenID would make it impossible to log in! "
-msgstr ""
+msgstr "Usunięcie jedynego identyfikatora OpenID uniemożliwi zalogowanie się! "
 
 #: actions/openidsettings.php:87 actions/openidsettings.php:143
 msgid "You can remove an OpenID from your account "
-msgstr ""
+msgstr "Można usunąć identyfikator OpenID z konta "
 
 #: actions/outbox.php:28 actions/outbox.php:58
 #, php-format
 msgid "Outbox for %s - page %d"
-msgstr ""
+msgstr "Wysłane wiadomości użytkownika %s - strona %d"
 
 #: actions/outbox.php:30 actions/outbox.php:61
 #, php-format
 msgid "Outbox for %s"
-msgstr ""
+msgstr "Wysłane wiadomości użytkownika %s"
 
 #: actions/outbox.php:53 actions/outbox.php:116
 msgid "This is your outbox, which lists private messages you have sent."
-msgstr ""
+msgstr "To są wiadomości wysłane, czyli prywatne wiadomości, które wysłałeś."
 
 #: actions/peoplesearch.php:28 actions/peoplesearch.php:52
 #, php-format
 msgid ""
 "Search for people on %%site.name%% by their name, location, or interests. "
 msgstr ""
+"Znajdź osoby na %%site.name%% według ich nazwiska, położenia lub "
+"zainteresowań. "
 
 #: actions/profilesettings.php:27 actions/profilesettings.php:69
 msgid "You can update your personal profile info here "
-msgstr ""
+msgstr "Można tutaj zaktualizować osobiste informacje profilu "
 
 #: actions/profilesettings.php:115 actions/remotesubscribe.php:320
 #: actions/userauthorization.php:159 actions/userrss.php:76
 #: actions/avatarsettings.php:104 actions/avatarsettings.php:179
 #: actions/grouplogo.php:177 actions/remotesubscribe.php:367
 #: actions/userauthorization.php:176 actions/userrss.php:82
+#: actions/avatarsettings.php:106 actions/avatarsettings.php:182
+#: actions/grouplogo.php:183 actions/remotesubscribe.php:366
 msgid "User without matching profile"
-msgstr ""
+msgstr "Użytkownik bez odpowiadającego profilu"
 
 #: actions/recoverpassword.php:91 actions/recoverpassword.php:97
 msgid "This confirmation code is too old. "
-msgstr ""
+msgstr "Ten kod potwierdzający jest za stary. "
 
 #: actions/recoverpassword.php:141 actions/recoverpassword.php:152
 msgid "If you've forgotten or lost your"
-msgstr ""
+msgstr "Jeśli zapomniałeś lub zgubiłeś"
 
 #: actions/recoverpassword.php:154 actions/recoverpassword.php:158
 msgid "You've been identified. Enter a "
-msgstr ""
+msgstr "Zostałeś zidentyfikowany. Podaj "
 
 #: actions/recoverpassword.php:169 actions/recoverpassword.php:188
 msgid "Your nickname on this server, "
-msgstr ""
+msgstr "Pseudonim na tym serwerze, "
 
 #: actions/recoverpassword.php:271 actions/recoverpassword.php:304
 msgid "Instructions for recovering your password "
-msgstr ""
+msgstr "Instrukcje przywracania hasła "
 
 #: actions/recoverpassword.php:327 actions/recoverpassword.php:361
 msgid "New password successfully saved. "
-msgstr ""
+msgstr "Pomyślnie zapisano nowe hasło. "
 
 #: actions/register.php:95 actions/register.php:180
+#: actions/passwordsettings.php:147
 msgid "Password must be 6 or more characters."
-msgstr ""
+msgstr "Hasło musi mieć sześć lub więcej znaków."
 
 #: actions/register.php:216
 #, php-format
 msgid ""
 "Congratulations, %s! And welcome to %%%%site.name%%%%. From here, you may "
 "want to..."
-msgstr ""
+msgstr "Gratulacje, %s! Witaj na %%%%site.name%%%%. Stąd możesz chcieć..."
 
 #: actions/register.php:227
 msgid "(You should receive a message by email momentarily, with "
-msgstr ""
+msgstr "(Powinieneś właśnie otrzymać wiadomość przez e-mail z "
 
 #: actions/remotesubscribe.php:51 actions/remotesubscribe.php:74
 #, php-format
 msgid "To subscribe, you can [login](%%action.login%%),"
-msgstr ""
+msgstr "Aby zasubskrybować, można [zalogować się](%%action.login%%),"
 
 #: actions/showfavorites.php:61 actions/showfavorites.php:145
+#: actions/showfavorites.php:147
 #, php-format
 msgid "Feed for favorites of %s"
-msgstr ""
+msgstr "Kanał ulubionych wpisów użytkownika %s"
 
 #: actions/showfavorites.php:84 actions/twitapifavorites.php:85
 #: actions/showfavorites.php:202 actions/twitapifavorites.php:59
+#: actions/showfavorites.php:179
 msgid "Could not retrieve favorite notices."
-msgstr ""
+msgstr "Nie można odebrać ulubionych wpisów."
 
 #: actions/showmessage.php:33 actions/showmessage.php:81
 msgid "No such message."
-msgstr ""
+msgstr "Nie ma takiej wiadomości."
 
-#: actions/showmessage.php:42
+#: actions/showmessage.php:42 actions/showmessage.php:98
 msgid "Only the sender and recipient may read this message."
-msgstr ""
+msgstr "Tylko nadawca i odbiorca mogą przeczytać tę wiadomość."
 
 #: actions/showmessage.php:61 actions/showmessage.php:108
 #, php-format
 msgid "Message to %1$s on %2$s"
-msgstr ""
+msgstr "Wiadomość do użytkownika %1$s na %2$s"
 
 #: actions/showmessage.php:66 actions/showmessage.php:113
 #, php-format
 msgid "Message from %1$s on %2$s"
-msgstr ""
+msgstr "Wiadomość od użytkownika %1$s na %2$s"
 
 #: actions/showstream.php:154
 msgid "Send a message"
-msgstr ""
+msgstr "Wyślij wiadomość"
 
 #: actions/smssettings.php:312 actions/smssettings.php:464
 #, php-format
 msgid "Mobile carrier for your phone. "
-msgstr ""
+msgstr "Operator komórkowy Twojego telefonu. "
 
 #: actions/twitapidirect_messages.php:76 actions/twitapidirect_messages.php:68
+#: actions/twitapidirect_messages.php:67
 #, php-format
 msgid "Direct messages to %s"
-msgstr ""
+msgstr "Bezpośrednia wiadomość do użytkownika %s"
 
 #: actions/twitapidirect_messages.php:77 actions/twitapidirect_messages.php:69
+#: actions/twitapidirect_messages.php:68
 #, php-format
 msgid "All the direct messages sent to %s"
-msgstr ""
+msgstr "Wszystkie bezpośrednie wiadomości wysłane do użytkownika %s"
 
 #: actions/twitapidirect_messages.php:81 actions/twitapidirect_messages.php:73
+#: actions/twitapidirect_messages.php:72
 msgid "Direct Messages You've Sent"
-msgstr ""
+msgstr "Wysłane bezpośrednie wiadomości"
 
 #: actions/twitapidirect_messages.php:82 actions/twitapidirect_messages.php:74
+#: actions/twitapidirect_messages.php:73
 #, php-format
 msgid "All the direct messages sent from %s"
-msgstr ""
+msgstr "Wszystkie bezpośrednie wiadomości wysłane od użytkownika %s"
 
 #: actions/twitapidirect_messages.php:128
 #: actions/twitapidirect_messages.php:137
+#: actions/twitapidirect_messages.php:146
 msgid "No message text!"
-msgstr ""
+msgstr "Brak tekstu wiadomości!"
 
 #: actions/twitapidirect_messages.php:138
 #: actions/twitapidirect_messages.php:150
+#: actions/twitapidirect_messages.php:159
 msgid "Recipient user not found."
-msgstr ""
+msgstr "Nie znaleziono odbiorcy."
 
 #: actions/twitapidirect_messages.php:141
 #: actions/twitapidirect_messages.php:153
+#: actions/twitapidirect_messages.php:162
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
+"Nie można wysłać bezpośredniej wiadomości do użytkowników, którzy nie są "
+"Twoimi przyjaciółmi."
 
 #: actions/twitapifavorites.php:92 actions/twitapifavorites.php:66
+#: actions/twitapifavorites.php:64
 #, php-format
 msgid "%s / Favorites from %s"
-msgstr ""
+msgstr "%s/ulubione wpisy od %s"
 
 #: actions/twitapifavorites.php:95 actions/twitapifavorites.php:69
+#: actions/twitapifavorites.php:68
 #, php-format
 msgid "%s updates favorited by %s / %s."
-msgstr ""
+msgstr "Użytkownik %s aktualizuje ulubione według %s/%s."
 
 #: actions/twitapifavorites.php:187 lib/mail.php:275
 #: actions/twitapifavorites.php:164 lib/mail.php:553
+#: actions/twitapifavorites.php:170 lib/mail.php:554
 #, php-format
 msgid "%s added your notice as a favorite"
-msgstr ""
+msgstr "Użytkownik %s dodał Twój wpis jako ulubiony"
 
 #: actions/twitapifavorites.php:188 lib/mail.php:276
 #: actions/twitapifavorites.php:165
@@ -3080,230 +3285,251 @@ msgid ""
 "%1$s just added your notice from %2$s as one of their favorites.\n"
 "\n"
 msgstr ""
+"Użytkownik %1$s właśnie dodał Twój wpis od %2$s jako jeden z jego "
+"ulubionych.\n"
+"\n"
 
 #: actions/twittersettings.php:27
 msgid ""
 "Add your Twitter account to automatically send your notices to Twitter, "
 msgstr ""
+"Dodaj swoje konto Twittera, aby automatycznie wysyłać wpisy na Twittera, "
 
 #: actions/twittersettings.php:41 actions/twittersettings.php:60
+#: actions/twittersettings.php:61
 msgid "Twitter settings"
-msgstr ""
+msgstr "Ustawienia Twittera"
 
 #: actions/twittersettings.php:48 actions/twittersettings.php:105
+#: actions/twittersettings.php:106
 msgid "Twitter Account"
-msgstr ""
+msgstr "Konto Twittera"
 
 #: actions/twittersettings.php:56 actions/twittersettings.php:113
+#: actions/twittersettings.php:114
 msgid "Current verified Twitter account."
-msgstr ""
+msgstr "Obecnie sprawdzone konto Twittera."
 
 #: actions/twittersettings.php:63
 msgid "Twitter Username"
-msgstr ""
+msgstr "Nazwa użytkownika Twitter"
 
 #: actions/twittersettings.php:65 actions/twittersettings.php:123
+#: actions/twittersettings.php:126
 msgid "No spaces, please."
-msgstr ""
+msgstr "Bez spacji."
 
 #: actions/twittersettings.php:67
 msgid "Twitter Password"
-msgstr ""
+msgstr "Hasło Twittera"
 
 #: actions/twittersettings.php:72 actions/twittersettings.php:139
+#: actions/twittersettings.php:142
 msgid "Automatically send my notices to Twitter."
-msgstr ""
+msgstr "Automatycznie wyślij moje wpisy na Twittera."
 
 #: actions/twittersettings.php:75 actions/twittersettings.php:146
+#: actions/twittersettings.php:149
 msgid "Send local \"@\" replies to Twitter."
-msgstr ""
+msgstr "Wyślij lokalne odpowiedzi \"@\" na Twittera."
 
 #: actions/twittersettings.php:78 actions/twittersettings.php:153
+#: actions/twittersettings.php:156
 msgid "Subscribe to my Twitter friends here."
-msgstr ""
+msgstr "Zasubskrybuj tutaj moich przyjaciół z Twittera."
 
-#: actions/twittersettings.php:122
+#: actions/twittersettings.php:122 actions/twittersettings.php:331
 msgid ""
 "Username must have only numbers, upper- and lowercase letters, and "
 "underscore (_). 15 chars max."
 msgstr ""
+"Nazwa użytkownika może zawierać tylko liczby, małe i wielkie litery oraz "
+"podkreślnik (_). Maksymalnie 15 znaków."
 
 #: actions/twittersettings.php:128 actions/twittersettings.php:334
+#: actions/twittersettings.php:338
 msgid "Could not verify your Twitter credentials!"
-msgstr ""
+msgstr "Nie można sprawdzić danych uwierzytelniających Twittera!"
 
 #: actions/twittersettings.php:137
 #, php-format
 msgid "Unable to retrieve account information for \"%s\" from Twitter."
-msgstr ""
+msgstr "Nie można pobrać informacji o koncie \"%s\" z Twittera."
 
 #: actions/twittersettings.php:151 actions/twittersettings.php:170
 #: actions/twittersettings.php:348 actions/twittersettings.php:368
+#: actions/twittersettings.php:352 actions/twittersettings.php:372
 msgid "Unable to save your Twitter settings!"
-msgstr ""
+msgstr "Nie można zapisać ustawień Twittera!"
 
 #: actions/twittersettings.php:174 actions/twittersettings.php:376
+#: actions/twittersettings.php:380
 msgid "Twitter settings saved."
-msgstr ""
+msgstr "Zapisano ustawienia Twittera."
 
 #: actions/twittersettings.php:192 actions/twittersettings.php:395
+#: actions/twittersettings.php:399
 msgid "That is not your Twitter account."
-msgstr ""
+msgstr "To nie jest Twoje konto Twittera."
 
 #: actions/twittersettings.php:200 actions/twittersettings.php:208
-#: actions/twittersettings.php:403
+#: actions/twittersettings.php:403 actions/twittersettings.php:407
 msgid "Couldn't remove Twitter user."
-msgstr ""
+msgstr "Nie można usunąć użytkownika Twittera."
 
 #: actions/twittersettings.php:212 actions/twittersettings.php:407
+#: actions/twittersettings.php:411
 msgid "Twitter account removed."
-msgstr ""
+msgstr "Usunięto użytkownika Twittera."
 
 #: actions/twittersettings.php:225 actions/twittersettings.php:239
 #: actions/twittersettings.php:428 actions/twittersettings.php:439
-#: actions/twittersettings.php:453
+#: actions/twittersettings.php:453 actions/twittersettings.php:432
+#: actions/twittersettings.php:443 actions/twittersettings.php:457
 msgid "Couldn't save Twitter preferences."
-msgstr ""
+msgstr "Nie można zapisać preferencji Twittera."
 
 #: actions/twittersettings.php:245 actions/twittersettings.php:461
+#: actions/twittersettings.php:465
 msgid "Twitter preferences saved."
-msgstr ""
+msgstr "Zapisano preferencje Twittera."
 
 #: actions/userauthorization.php:84 actions/userauthorization.php:86
 msgid "Please check these details to make sure "
-msgstr ""
+msgstr "Sprawdź te szczegóły, aby upewnić się "
 
 #: actions/userauthorization.php:324 actions/userauthorization.php:340
 msgid "The subscription has been authorized, but no "
-msgstr ""
+msgstr "Subskrypcja została upoważniona, ale nie "
 
 #: actions/userauthorization.php:334 actions/userauthorization.php:351
 msgid "The subscription has been rejected, but no "
-msgstr ""
+msgstr "Subskrypcja została odrzucona, ale nie "
 
 #: classes/Channel.php:113 classes/Channel.php:132 classes/Channel.php:151
+#: lib/channel.php:138 lib/channel.php:158
 msgid "Command results"
-msgstr ""
+msgstr "Wyniki polecenia"
 
-#: classes/Channel.php:148 classes/Channel.php:204
+#: classes/Channel.php:148 classes/Channel.php:204 lib/channel.php:210
 msgid "Command complete"
-msgstr ""
+msgstr "Zakończono polecenie"
 
-#: classes/Channel.php:158 classes/Channel.php:215
+#: classes/Channel.php:158 classes/Channel.php:215 lib/channel.php:221
 msgid "Command failed"
-msgstr ""
+msgstr "Polecenie nie powiodło się"
 
-#: classes/Command.php:39 classes/Command.php:44
+#: classes/Command.php:39 classes/Command.php:44 lib/command.php:44
 msgid "Sorry, this command is not yet implemented."
-msgstr ""
+msgstr "Przepraszamy, te polecenie nie zostało jeszcze zaimplementowane."
 
 #: classes/Command.php:96 classes/Command.php:113
 #, php-format
 msgid "Subscriptions: %1$s\n"
-msgstr ""
+msgstr "Subskrypcje: %1$s\n"
 
 #: classes/Command.php:125 classes/Command.php:242 classes/Command.php:145
-#: classes/Command.php:276
+#: classes/Command.php:276 lib/command.php:145 lib/command.php:276
 msgid "User has no last notice"
-msgstr ""
+msgstr "Użytkownik nie posiada ostatniego wpisu"
 
-#: classes/Command.php:146 classes/Command.php:166
+#: classes/Command.php:146 classes/Command.php:166 lib/command.php:166
 msgid "Notice marked as fave."
-msgstr ""
+msgstr "Zaznaczono wpis jako ulubiony."
 
-#: classes/Command.php:166 classes/Command.php:189
+#: classes/Command.php:166 classes/Command.php:189 lib/command.php:189
 #, php-format
 msgid "%1$s (%2$s)"
-msgstr ""
+msgstr "%1$s (%2$s)"
 
-#: classes/Command.php:169 classes/Command.php:192
+#: classes/Command.php:169 classes/Command.php:192 lib/command.php:192
 #, php-format
 msgid "Fullname: %s"
-msgstr ""
+msgstr "Imię i nazwisko: %s"
 
-#: classes/Command.php:172 classes/Command.php:195
+#: classes/Command.php:172 classes/Command.php:195 lib/command.php:195
 #, php-format
 msgid "Location: %s"
-msgstr ""
+msgstr "Położenie: %s"
 
-#: classes/Command.php:175 classes/Command.php:198
+#: classes/Command.php:175 classes/Command.php:198 lib/command.php:198
 #, php-format
 msgid "Homepage: %s"
-msgstr ""
+msgstr "Strona domowa: %s"
 
-#: classes/Command.php:178 classes/Command.php:201
+#: classes/Command.php:178 classes/Command.php:201 lib/command.php:201
 #, php-format
 msgid "About: %s"
-msgstr ""
+msgstr "O mnie: %s"
 
-#: classes/Command.php:200 classes/Command.php:228
+#: classes/Command.php:200 classes/Command.php:228 lib/command.php:228
 #, php-format
 msgid "Message too long - maximum is 140 characters, you sent %d"
-msgstr ""
+msgstr "Wiadomość jest za długa - maksymalnie 140 znaków, wysłano %d"
 
-#: classes/Command.php:214 classes/Command.php:245
+#: classes/Command.php:214 classes/Command.php:245 lib/command.php:245
 #, php-format
 msgid "Direct message to %s sent"
-msgstr ""
+msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s"
 
-#: classes/Command.php:216 classes/Command.php:247
+#: classes/Command.php:216 classes/Command.php:247 lib/command.php:247
 msgid "Error sending direct message."
-msgstr ""
+msgstr "Błąd podczas wysyłania bezpośredniej wiadomości."
 
-#: classes/Command.php:263 classes/Command.php:300
+#: classes/Command.php:263 classes/Command.php:300 lib/command.php:300
 msgid "Specify the name of the user to subscribe to"
-msgstr ""
+msgstr "Podaj nazwę użytkownika do zasubskrybowania"
 
-#: classes/Command.php:270 classes/Command.php:307
+#: classes/Command.php:270 classes/Command.php:307 lib/command.php:307
 #, php-format
 msgid "Subscribed to %s"
-msgstr ""
+msgstr "Zasubskrybowano użytkownika %s"
 
-#: classes/Command.php:288 classes/Command.php:328
+#: classes/Command.php:288 classes/Command.php:328 lib/command.php:328
 msgid "Specify the name of the user to unsubscribe from"
-msgstr ""
+msgstr "Podaj nazwę użytkownika do usunięcia subskrypcji"
 
-#: classes/Command.php:295 classes/Command.php:335
+#: classes/Command.php:295 classes/Command.php:335 lib/command.php:335
 #, php-format
 msgid "Unsubscribed from %s"
-msgstr ""
+msgstr "Usunięto subskrypcję użytkownika %s"
 
 #: classes/Command.php:310 classes/Command.php:330 classes/Command.php:353
-#: classes/Command.php:376
+#: classes/Command.php:376 lib/command.php:353 lib/command.php:376
 msgid "Command not yet implemented."
-msgstr ""
+msgstr "Nie zaimplementowano polecenia."
 
-#: classes/Command.php:313 classes/Command.php:356
+#: classes/Command.php:313 classes/Command.php:356 lib/command.php:356
 msgid "Notification off."
-msgstr ""
+msgstr "Wyłączono powiadomienia."
 
-#: classes/Command.php:315 classes/Command.php:358
+#: classes/Command.php:315 classes/Command.php:358 lib/command.php:358
 msgid "Can't turn off notification."
-msgstr ""
+msgstr "Nie można wyłączyć powiadomień."
 
-#: classes/Command.php:333 classes/Command.php:379
+#: classes/Command.php:333 classes/Command.php:379 lib/command.php:379
 msgid "Notification on."
-msgstr ""
+msgstr "Włączono powiadomienia."
 
-#: classes/Command.php:335 classes/Command.php:381
+#: classes/Command.php:335 classes/Command.php:381 lib/command.php:381
 msgid "Can't turn on notification."
-msgstr ""
+msgstr "Nie można włączyć powiadomień."
 
 #: classes/Command.php:344 classes/Command.php:392
 msgid "Commands:\n"
-msgstr ""
+msgstr "Polecenia:\n"
 
 #: classes/Message.php:53 classes/Message.php:56
 msgid "Could not insert message."
-msgstr ""
+msgstr "Nie można wprowadzić wiadomości."
 
 #: classes/Message.php:63 classes/Message.php:66
 msgid "Could not update message with new URI."
-msgstr ""
+msgstr "Nie można zaktualizować wiadomości za pomocą nowego adresu URL."
 
 #: lib/gallery.php:46
 msgid "User without matching profile in system."
-msgstr ""
+msgstr "Użytkownik bez odpowiadającego profilu w systemie."
 
 #: lib/mail.php:147 lib/mail.php:289
 #, php-format
@@ -3311,11 +3537,13 @@ msgid ""
 "You have a new posting address on %1$s.\n"
 "\n"
 msgstr ""
+"Posiadasz nowy adres wysyłania na %1$s.\n"
+"\n"
 
-#: lib/mail.php:249 lib/mail.php:508
+#: lib/mail.php:249 lib/mail.php:508 lib/mail.php:509
 #, php-format
 msgid "New private message from %s"
-msgstr ""
+msgstr "Nowa prywatna wiadomość od użytkownika %s"
 
 #: lib/mail.php:253 lib/mail.php:512
 #, php-format
@@ -3323,88 +3551,97 @@ msgid ""
 "%1$s (%2$s) sent you a private message:\n"
 "\n"
 msgstr ""
+"Użytkownik %1$s (%2$s) wysłał Ci prywatną wiadomość:\n"
+"\n"
 
-#: lib/mailbox.php:43 lib/mailbox.php:89
+#: lib/mailbox.php:43 lib/mailbox.php:89 lib/mailbox.php:91
 msgid "Only the user can read their own mailboxes."
-msgstr ""
+msgstr "Tylko użytkownik może czytać swoje skrzynki pocztowe."
 
 #: lib/openid.php:195 lib/openid.php:203
 msgid "This form should automatically submit itself. "
-msgstr ""
+msgstr "Ten formularz powinien automatycznie się wysłać. "
 
 #: lib/personal.php:65 lib/personalgroupnav.php:113
 msgid "Favorites"
-msgstr ""
+msgstr "Ulubione"
 
 #: lib/personal.php:66 lib/personalgroupnav.php:114
 #, php-format
 msgid "%s's favorite notices"
-msgstr ""
+msgstr "Ulubione wpisy użytkownika %s"
 
 #: lib/personal.php:66 lib/personalgroupnav.php:114
 msgid "User"
-msgstr ""
+msgstr "Użytkownik"
 
 #: lib/personal.php:75 lib/personalgroupnav.php:123
 msgid "Inbox"
-msgstr ""
+msgstr "Odebrane"
 
 #: lib/personal.php:76 lib/personalgroupnav.php:124
 msgid "Your incoming messages"
-msgstr ""
+msgstr "Wiadomości przychodzące"
 
 #: lib/personal.php:80 lib/personalgroupnav.php:128
 msgid "Outbox"
-msgstr ""
+msgstr "Wysłane"
 
 #: lib/personal.php:81 lib/personalgroupnav.php:129
 msgid "Your sent messages"
-msgstr ""
+msgstr "Wysłane wiadomości"
 
 #: lib/settingsaction.php:99 lib/connectsettingsaction.php:110
 msgid "Twitter"
-msgstr ""
+msgstr "Twitter"
 
 #: lib/settingsaction.php:100 lib/connectsettingsaction.php:111
 msgid "Twitter integration options"
-msgstr ""
+msgstr "Opcje integracji z Twitterem"
 
 #: lib/util.php:1718 lib/messageform.php:139 lib/noticelist.php:422
+#: lib/messageform.php:137 lib/noticelist.php:425
 msgid "To"
-msgstr ""
+msgstr "Do"
 
 #: scripts/maildaemon.php:45 scripts/maildaemon.php:48
 msgid "Could not parse message."
-msgstr ""
+msgstr "Nie można przeanalizować wiadomości."
 
-#: actions/all.php:63 actions/facebookhome.php:162
-#, fuzzy, php-format
+#: actions/all.php:63 actions/facebookhome.php:162 actions/all.php:66
+#: actions/facebookhome.php:161
+#, php-format
 msgid "%s and friends, page %d"
-msgstr "%s i przyjaciele"
+msgstr "Użytkownik %s i przyjaciele, strona %d"
 
 #: actions/avatarsettings.php:76
 msgid "You can upload your personal avatar."
-msgstr ""
+msgstr "Można wysłać osobisty awatar."
 
 #: actions/avatarsettings.php:117 actions/avatarsettings.php:191
-#: actions/grouplogo.php:250
-#, fuzzy
+#: actions/grouplogo.php:250 actions/avatarsettings.php:119
+#: actions/avatarsettings.php:194 actions/grouplogo.php:256
 msgid "Avatar settings"
-msgstr "Ustawienia"
+msgstr "Ustawienia awatara"
 
 #: actions/avatarsettings.php:124 actions/avatarsettings.php:199
 #: actions/grouplogo.php:198 actions/grouplogo.php:258
+#: actions/avatarsettings.php:126 actions/avatarsettings.php:202
+#: actions/grouplogo.php:204 actions/grouplogo.php:264
 msgid "Original"
-msgstr ""
+msgstr "Oryginał"
 
 #: actions/avatarsettings.php:139 actions/avatarsettings.php:211
 #: actions/grouplogo.php:209 actions/grouplogo.php:270
+#: actions/avatarsettings.php:141 actions/avatarsettings.php:214
+#: actions/grouplogo.php:215 actions/grouplogo.php:276
 msgid "Preview"
-msgstr ""
+msgstr "Podgląd"
 
 #: actions/avatarsettings.php:225 actions/grouplogo.php:284
+#: actions/avatarsettings.php:228 actions/grouplogo.php:291
 msgid "Crop"
-msgstr ""
+msgstr "Przytnij"
 
 #: actions/avatarsettings.php:248 actions/deletenotice.php:133
 #: actions/emailsettings.php:224 actions/grouplogo.php:307
@@ -3416,594 +3653,567 @@ msgstr ""
 #: actions/subedit.php:38 actions/twittersettings.php:290
 #: actions/userauthorization.php:39
 msgid "There was a problem with your session token. "
-msgstr ""
+msgstr "Wystąpił problem z tokenem sesji. "
 
 #: actions/avatarsettings.php:303 actions/grouplogo.php:360
+#: actions/avatarsettings.php:308
 msgid "Pick a square area of the image to be your avatar"
-msgstr ""
+msgstr "Wybierz kwadratowy obszar obrazu do awatara"
 
 #: actions/avatarsettings.php:327 actions/grouplogo.php:384
+#: actions/avatarsettings.php:323 actions/grouplogo.php:382
 msgid "Lost our file data."
-msgstr ""
+msgstr "Utracono dane pliku."
 
 #: actions/avatarsettings.php:334 actions/grouplogo.php:391
-#: classes/User_group.php:112
-#, fuzzy
+#: classes/User_group.php:112 lib/imagefile.php:112
 msgid "Lost our file."
-msgstr "Brak takiego wpisu."
+msgstr "Utracono plik."
 
 #: actions/avatarsettings.php:349 actions/avatarsettings.php:383
 #: actions/grouplogo.php:406 actions/grouplogo.php:440
-#: classes/User_group.php:129 classes/User_group.php:161
+#: classes/User_group.php:129 classes/User_group.php:161 lib/imagefile.php:144
+#: lib/imagefile.php:191
 msgid "Unknown file type"
-msgstr ""
+msgstr "Nieznany typ pliku"
 
 #: actions/block.php:69 actions/subedit.php:46 actions/unblock.php:70
 msgid "No profile specified."
-msgstr ""
+msgstr "Nie podano profilu."
 
 #: actions/block.php:74 actions/subedit.php:53 actions/tagother.php:46
 #: actions/unblock.php:75
 msgid "No profile with that ID."
-msgstr ""
+msgstr "Brak profilu o tym identyfikatorze."
 
 #: actions/block.php:111
-#, fuzzy
 msgid "Block user"
-msgstr "Brak takiego użytkownika."
+msgstr "Zablokuj użytkownika"
 
 #: actions/block.php:129
 msgid "Are you sure you want to block this user? "
-msgstr ""
+msgstr "Na pewno chcesz zablokować tego użytkownika? "
 
 #: actions/block.php:162
-#, fuzzy
 msgid "You have already blocked this user."
-msgstr "Nie musisz ponownie się logować!"
+msgstr "Ten użytkownik został już zablokowany."
 
 #: actions/block.php:167
 msgid "Failed to save block information."
-msgstr ""
+msgstr "Zapisanie informacji o blokadzie nie powiodło się."
 
 #: actions/confirmaddress.php:159
-#, fuzzy, php-format
+#, php-format
 msgid "The address \"%s\" has been "
-msgstr "Adres został usunięty."
+msgstr "Adres \"%s\" został "
 
 #: actions/deletenotice.php:73
 msgid "You are about to permanently delete a notice. "
-msgstr ""
+msgstr "Za chwilę wpis zostanie trwale usunięty. "
 
 #: actions/disfavor.php:94
 msgid "Add to favorites"
-msgstr ""
+msgstr "Dodaj do ulubionych"
 
 #: actions/editgroup.php:54
 #, php-format
 msgid "Edit %s group"
-msgstr ""
+msgstr "Edytuj grupę %s"
 
 #: actions/editgroup.php:66 actions/groupbyid.php:72 actions/grouplogo.php:66
 #: actions/joingroup.php:60 actions/newgroup.php:65 actions/showgroup.php:100
+#: actions/grouplogo.php:70 actions/grouprss.php:80
 msgid "Inboxes must be enabled for groups to work"
-msgstr ""
+msgstr "Skrzynki odbiorcze grup muszą być włączone, aby działały"
 
 #: actions/editgroup.php:71 actions/grouplogo.php:71 actions/newgroup.php:70
+#: actions/grouplogo.php:75
 msgid "You must be logged in to create a group."
-msgstr ""
+msgstr "Musisz być zalogowany, aby utworzyć grupę."
 
 #: actions/editgroup.php:87 actions/grouplogo.php:87
 #: actions/groupmembers.php:76 actions/joingroup.php:81
-#: actions/showgroup.php:121
-#, fuzzy
+#: actions/showgroup.php:121 actions/grouplogo.php:91 actions/grouprss.php:96
 msgid "No nickname"
-msgstr "Brak pseudonimu."
+msgstr "Brak pseudonimu"
 
 #: actions/editgroup.php:99 actions/groupbyid.php:88 actions/grouplogo.php:100
 #: actions/groupmembers.php:83 actions/joingroup.php:88
-#: actions/showgroup.php:128
-#, fuzzy
+#: actions/showgroup.php:128 actions/grouplogo.php:104
+#: actions/grouprss.php:103
 msgid "No such group"
-msgstr "Brak takiego wpisu."
+msgstr "Nie ma takiej grupy"
 
 #: actions/editgroup.php:106 actions/editgroup.php:165
-#: actions/grouplogo.php:107
+#: actions/grouplogo.php:107 actions/grouplogo.php:111
 msgid "You must be an admin to edit the group"
-msgstr ""
+msgstr "Musisz być administratorem, aby zmodyfikować grupę"
 
 #: actions/editgroup.php:157
 msgid "Use this form to edit the group."
-msgstr ""
+msgstr "Użyj tego formularza, aby zmodyfikować grupę."
 
 #: actions/editgroup.php:179 actions/newgroup.php:130 actions/register.php:156
-#, fuzzy
 msgid "Nickname must have only lowercase letters "
-msgstr "Pseudonim musi zawierać tylko małe litery i cyfry, bez znaków spacji."
+msgstr "Pseudonim może zawierać tylko małe litery "
 
 #: actions/editgroup.php:198 actions/newgroup.php:149
-#, fuzzy
 msgid "description is too long (max 140 chars)."
-msgstr "Wpis \"O mnie\" jest za długi (maks. 140 znaków)"
+msgstr "opis jest za długi (maksymalnie 140 znaków)."
 
 #: actions/editgroup.php:218
-#, fuzzy
 msgid "Could not update group."
-msgstr "Nie można zaktualizować użytkownika."
+msgstr "Nie można zaktualizować grupy."
 
 #: actions/editgroup.php:226
-#, fuzzy
 msgid "Options saved."
-msgstr "Ustawienia zostały zapisane."
+msgstr "Zapisano opcje."
 
 #: actions/emailsettings.php:107 actions/imsettings.php:108
-#, fuzzy, php-format
+#, php-format
 msgid "Awaiting confirmation on this address. "
-msgstr "Błąd kodu potwierdzającego."
+msgstr "Oczekiwanie na potwierdzenie tego adresu. "
 
 #: actions/emailsettings.php:139 actions/smssettings.php:150
 msgid "Make a new email address for posting to; "
-msgstr ""
+msgstr "Utwórz nowy adres e-mail do wysyłania; "
 
 #: actions/emailsettings.php:157
 msgid "Send me email when someone "
-msgstr ""
+msgstr "Wyślij mi wiadomość e-mail, kiedy ktoś "
 
-#: actions/emailsettings.php:168
+#: actions/emailsettings.php:168 actions/emailsettings.php:173
 msgid "Allow friends to nudge me and send me an email."
-msgstr ""
+msgstr "Pozwól przyjaciołom na szturchanie mnie i wyślij mi wiadomość e-mail."
 
 #: actions/emailsettings.php:321
-#, fuzzy
 msgid "That email address already belongs "
-msgstr "Taki e-mail już istnieje"
+msgstr "Ten adres e-mail już należy "
 
 #: actions/emailsettings.php:343
-#, fuzzy
 msgid "A confirmation code was sent to the email address you added. "
-msgstr ""
-"Na Twój adres komunikatora został wysłany kod potwierdzający. Musisz "
-"zaakceptować otrzymywanie wiadomości od %s."
+msgstr "Kod potwierdzający został wysłany na dodany adres e-mail. "
 
 #: actions/facebookhome.php:110
 msgid "Server error - couldn't get user!"
-msgstr ""
+msgstr "Błąd serwera - nie można uzyskać użytkownika!"
 
 #: actions/facebookhome.php:196
 #, php-format
 msgid "If you would like the %s app to automatically update "
-msgstr ""
+msgstr "Jeśli chcesz, aby aplikacja %s automatycznie aktualizowała "
 
 #: actions/facebookhome.php:213 actions/facebooksettings.php:137
 #, php-format
 msgid "Allow %s to update my Facebook status"
-msgstr ""
+msgstr "Pozwól %s na aktualizowanie mojego statusu na Facebook"
 
-#: actions/facebookhome.php:218
+#: actions/facebookhome.php:218 actions/facebookhome.php:223
 msgid "Skip"
-msgstr ""
+msgstr "Pomiń"
 
-#: actions/facebookhome.php:235
-#, fuzzy
+#: actions/facebookhome.php:235 lib/facebookaction.php:479
 msgid "No notice content!"
-msgstr "Brak zawartości!"
+msgstr "Brak zawartości wpisu!"
 
 #: actions/facebookhome.php:295 lib/action.php:870 lib/facebookaction.php:399
+#: actions/facebookhome.php:253 lib/action.php:973 lib/facebookaction.php:433
 msgid "Pagination"
-msgstr ""
+msgstr "Paginacja"
 
 #: actions/facebookhome.php:304 lib/action.php:879 lib/facebookaction.php:408
-#, fuzzy
+#: actions/facebookhome.php:262 lib/action.php:982 lib/facebookaction.php:442
 msgid "After"
-msgstr "« następne"
+msgstr "Następne"
 
 #: actions/facebookhome.php:312 lib/action.php:887 lib/facebookaction.php:416
-#, fuzzy
+#: actions/facebookhome.php:270 lib/action.php:990 lib/facebookaction.php:450
 msgid "Before"
-msgstr "Wcześniej »"
+msgstr "Wcześniej"
 
 #: actions/facebookinvite.php:70
 #, php-format
 msgid "Thanks for inviting your friends to use %s"
-msgstr ""
+msgstr "Dziękujemy za zaproszenie przyjaciół do używania %s"
 
 #: actions/facebookinvite.php:72
 msgid "Invitations have been sent to the following users:"
-msgstr ""
+msgstr "Zaproszenia zostały wysłane do następujących użytkowników:"
 
-#: actions/facebookinvite.php:96
+#: actions/facebookinvite.php:96 actions/facebookinvite.php:102
 #, php-format
 msgid "You have been invited to %s"
-msgstr ""
+msgstr "Zostałeś zaproszony do %s"
 
-#: actions/facebookinvite.php:105
-#, fuzzy, php-format
+#: actions/facebookinvite.php:105 actions/facebookinvite.php:111
+#, php-format
 msgid "Invite your friends to use %s"
-msgstr "Kanał dla znajomych użytkownika %s"
+msgstr "Zaproś przyjaciół do używania %s"
 
-#: actions/facebookinvite.php:113
+#: actions/facebookinvite.php:113 actions/facebookinvite.php:126
 #, php-format
 msgid "Friends already using %s:"
-msgstr ""
+msgstr "Przyjaciele już używający %s:"
 
-#: actions/facebookinvite.php:130
+#: actions/facebookinvite.php:130 actions/facebookinvite.php:143
 #, php-format
 msgid "Send invitations"
-msgstr ""
+msgstr "Wyślij zaproszenia"
 
 #: actions/facebookremove.php:56
-#, fuzzy
 msgid "Couldn't remove Facebook user."
-msgstr "Nie można zaktualizować użytkownika."
+msgstr "Nie można usunąć użytkownika Facebook."
 
 #: actions/facebooksettings.php:65
 msgid "There was a problem saving your sync preferences!"
-msgstr ""
+msgstr "Wystąpił problem podczas zapisywania preferencji synchronizacji!"
 
 #: actions/facebooksettings.php:67
-#, fuzzy
 msgid "Sync preferences saved."
-msgstr "Preferencje zostały zapisane."
+msgstr "Zapisano preferencje synchronizacji."
 
 #: actions/facebooksettings.php:90
 msgid "Automatically update my Facebook status with my notices."
-msgstr ""
+msgstr "Automatycznie aktualizuj status na Facebook moimi wpisami."
 
 #: actions/facebooksettings.php:97
 msgid "Send \"@\" replies to Facebook."
-msgstr ""
+msgstr "Wyślij odpowiedzi \"@\" do Facebook."
 
 #: actions/facebooksettings.php:106
-#, fuzzy
 msgid "Prefix"
-msgstr "Profil"
+msgstr "Przedrostek"
 
 #: actions/facebooksettings.php:108
 msgid "A string to prefix notices with."
-msgstr ""
+msgstr "Tekst do poprzedzenia wpisów."
 
 #: actions/facebooksettings.php:124
 #, php-format
 msgid "If you would like %s to automatically update "
-msgstr ""
+msgstr "Jeśli chcesz, aby %s automatycznie aktualizowało "
 
 #: actions/facebooksettings.php:147
-#, fuzzy
 msgid "Sync preferences"
-msgstr "Preferencje"
+msgstr "Zsynchronizuj preferencje"
 
 #: actions/favor.php:94 lib/disfavorform.php:140
 msgid "Disfavor favorite"
-msgstr ""
+msgstr "Usuń wpis z ulubionych"
 
 #: actions/favorited.php:65 lib/popularnoticesection.php:76
-#: lib/publicgroupnav.php:91
-#, fuzzy
+#: lib/publicgroupnav.php:91 lib/popularnoticesection.php:82
+#: lib/publicgroupnav.php:93
 msgid "Popular notices"
-msgstr "Brak takiego wpisu."
+msgstr "Popularne wpisy"
 
 #: actions/favorited.php:67
-#, fuzzy, php-format
+#, php-format
 msgid "Popular notices, page %d"
-msgstr "Brak takiego wpisu."
+msgstr "Popularne wpisy, strona %d"
 
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
-msgstr ""
+msgstr "Najpopularniejsze wpisy na stronie w te chwili."
 
 #: actions/featured.php:69 lib/featureduserssection.php:82
-#: lib/publicgroupnav.php:87
+#: lib/publicgroupnav.php:87 lib/publicgroupnav.php:89
 msgid "Featured users"
-msgstr ""
+msgstr "Znani użytkownicy"
 
 #: actions/featured.php:71
 #, php-format
 msgid "Featured users, page %d"
-msgstr ""
+msgstr "Znani użytkownicy, strona %d"
 
 #: actions/featured.php:99
 #, php-format
 msgid "A selection of some of the great users on %s"
-msgstr ""
+msgstr "Wybór znanych użytkowników na %s"
 
 #: actions/finishremotesubscribe.php:188
 msgid "That user has blocked you from subscribing."
-msgstr ""
+msgstr "Ten użytkownik zablokował Cię z subskrypcji."
 
 #: actions/groupbyid.php:79
 msgid "No ID"
-msgstr ""
+msgstr "Brak identyfikatora"
 
 #: actions/grouplogo.php:138 actions/grouplogo.php:191
+#: actions/grouplogo.php:144 actions/grouplogo.php:197
 msgid "Group logo"
-msgstr ""
+msgstr "Logo grupy"
 
 #: actions/grouplogo.php:149
 msgid "You can upload a logo image for your group."
-msgstr ""
+msgstr "Można wysłać obraz logo dla grupy."
 
-#: actions/grouplogo.php:448
-#, fuzzy
+#: actions/grouplogo.php:448 actions/grouplogo.php:401
 msgid "Logo updated."
-msgstr "Awatar załadowany."
+msgstr "Zaktualizowano logo."
 
-#: actions/grouplogo.php:450
-#, fuzzy
+#: actions/grouplogo.php:450 actions/grouplogo.php:403
 msgid "Failed updating logo."
-msgstr "Uaktualnianie awatara nie powiodło się."
+msgstr "Zaktualizowanie logo nie powiodło się."
 
 #: actions/groupmembers.php:93 lib/groupnav.php:91
 #, php-format
 msgid "%s group members"
-msgstr ""
+msgstr "Członkowie grupy %s"
 
 #: actions/groupmembers.php:96
 #, php-format
 msgid "%s group members, page %d"
-msgstr ""
+msgstr "Członkowie grupy %s, strona %d"
 
 #: actions/groupmembers.php:111
 msgid "A list of the users in this group."
-msgstr ""
+msgstr "Lista użytkowników znajdujących się w tej grupie."
 
 #: actions/groups.php:62 actions/showstream.php:518 lib/publicgroupnav.php:79
-#: lib/subgroupnav.php:96
+#: lib/subgroupnav.php:96 lib/publicgroupnav.php:81
 msgid "Groups"
-msgstr ""
+msgstr "Grupy"
 
 #: actions/groups.php:64
 #, php-format
 msgid "Groups, page %d"
-msgstr ""
+msgstr "Grupy, strona %d"
 
 #: actions/groups.php:90
 #, php-format
 msgid "%%%%site.name%%%% groups let you find and talk with "
-msgstr ""
+msgstr "Grupy %%%%site.name%%%% pozwalają na szukanie i rozmawianie z "
 
 #: actions/groups.php:106 actions/usergroups.php:124 lib/groupeditform.php:123
-#, fuzzy
+#: actions/usergroups.php:125
 msgid "Create a new group"
-msgstr "Załóż nowe konto"
+msgstr "Utwórz nową grupę"
 
 #: actions/groupsearch.php:57
-#, fuzzy, php-format
+#, php-format
 msgid ""
 "Search for groups on %%site.name%% by their name, location, or description. "
-msgstr ""
-"Szukaj ludzi w serwisie %%site.name%%. Kryteriami mogą być imiona i "
-"nazwiska, miejscowości lub zainteresowania. Użyj spacji aby oddzielić "
-"elementy wyszukiwania. Słowa muszą mieć minimum 3 znaki."
+msgstr "Znajdź grupy na %%site.name%% według ich nazw, położenia lub opisu. "
 
 #: actions/groupsearch.php:63
-#, fuzzy
 msgid "Group search"
-msgstr "Szukaj ludzi"
+msgstr "Znajdź grupę"
 
 #: actions/imsettings.php:70
 msgid "You can send and receive notices through "
-msgstr ""
+msgstr "Można wysyłać i otrzymywać wpisy przez "
 
 #: actions/imsettings.php:120
 #, php-format
 msgid "Jabber or GTalk address, "
-msgstr ""
+msgstr "adres Jabbera lub GTalk, "
 
 #: actions/imsettings.php:147
-#, fuzzy
 msgid "Send me replies through Jabber/GTalk "
-msgstr "Wysyłaj mi wpisy przez Jabbera/GTalka"
+msgstr "Wyślij mi odpowiedzi przez Jabbera/GTalk "
 
 #: actions/imsettings.php:321
-#, fuzzy, php-format
+#, php-format
 msgid "A confirmation code was sent "
-msgstr "Brak kodu potwierdzającego."
+msgstr "Kod potwierdzający został wysłany "
 
 #: actions/joingroup.php:65
 msgid "You must be logged in to join a group."
-msgstr ""
+msgstr "Musisz być zalogowany, aby dołączyć do grupy."
 
 #: actions/joingroup.php:95
-#, fuzzy
 msgid "You are already a member of that group"
-msgstr "Nie musisz ponownie się logować!"
+msgstr "Jesteś już członkiem tej grupy"
 
 #: actions/joingroup.php:128
-#, fuzzy, php-format
+#, php-format
 msgid "Could not join user %s to group %s"
-msgstr "Nie można przekierować do serwera: %s"
+msgstr "Nie można dołączyć użytkownika %s do grupy %s"
 
 #: actions/joingroup.php:135
 #, php-format
 msgid "%s joined group %s"
-msgstr ""
+msgstr "Użytkownik %s dołączył do grupy %s"
 
 #: actions/leavegroup.php:60
 msgid "Inboxes must be enabled for groups to work."
-msgstr ""
+msgstr "Skrzynki odbiorcze dla grup muszą być włączone, aby działały."
 
 #: actions/leavegroup.php:65
 msgid "You must be logged in to leave a group."
-msgstr ""
+msgstr "Musisz być zalogowany, aby opuścić grupę."
 
 #: actions/leavegroup.php:88
-#, fuzzy
 msgid "No such group."
-msgstr "Brak takiego wpisu."
+msgstr "Nie ma takiej grupy."
 
 #: actions/leavegroup.php:95
-#, fuzzy
 msgid "You are not a member of that group."
-msgstr "Ten profil nie był wysłany przez Ciebie"
+msgstr "Nie jesteś członkiem tej grupy."
 
 #: actions/leavegroup.php:100
 msgid "You may not leave a group while you are its administrator."
-msgstr ""
+msgstr "Nie możesz opuścić grupy, kiedy jesteś jej administratorem."
 
-#: actions/leavegroup.php:130
+#: actions/leavegroup.php:130 actions/leavegroup.php:124
 msgid "Could not find membership record."
-msgstr ""
+msgstr "Nie można znaleźć wpisu członkostwa."
 
-#: actions/leavegroup.php:138
-#, fuzzy, php-format
+#: actions/leavegroup.php:138 actions/leavegroup.php:132
+#, php-format
 msgid "Could not remove user %s to group %s"
-msgstr "Nie można utworzyć formularza OpenID: %s"
+msgstr "Nie można usunąć użytkownika %s z grupy %s"
 
-#: actions/leavegroup.php:145
+#: actions/leavegroup.php:145 actions/leavegroup.php:139
 #, php-format
 msgid "%s left group %s"
-msgstr ""
+msgstr "Użytkownik %s opuścił grupę %s"
 
-#: actions/login.php:225 lib/facebookaction.php:304
+#: actions/login.php:225 lib/facebookaction.php:304 actions/login.php:208
 msgid "Login to site"
-msgstr ""
+msgstr "Zaloguj się na stronie"
 
 #: actions/microsummary.php:69
 msgid "No current status"
-msgstr ""
+msgstr "Brak obecnego statusu"
 
 #: actions/newgroup.php:53
 msgid "New group"
-msgstr ""
+msgstr "Nowa grupa"
 
 #: actions/newgroup.php:115
 msgid "Use this form to create a new group."
-msgstr ""
+msgstr "Użyj tego formularza, aby utworzyć nową grupę."
 
 #: actions/newgroup.php:177
-#, fuzzy
 msgid "Could not create group."
-msgstr "Nie można zapisać informacji o awatarze"
+msgstr "Nie można utworzyć grupy."
 
 #: actions/newgroup.php:191
-#, fuzzy
 msgid "Could not set group membership."
-msgstr "Nie można obserwować."
+msgstr "Nie można ustawić członkostwa w grupie."
 
 #: actions/newmessage.php:119 actions/newnotice.php:132
-#, fuzzy
 msgid "That's too long. "
-msgstr "Ten plik jest za duży."
+msgstr "Wiadomość jest za długa. "
 
 #: actions/newmessage.php:134
 msgid "Don't send a message to yourself; "
-msgstr ""
+msgstr "Nie wysyłaj wiadomości do siebie; "
 
-#: actions/newnotice.php:166
-#, fuzzy
+#: actions/newnotice.php:166 actions/newnotice.php:174
 msgid "Notice posted"
-msgstr "Wpisy"
+msgstr "Wysłano wpis"
 
-#: actions/newnotice.php:200 classes/Channel.php:163
+#: actions/newnotice.php:200 classes/Channel.php:163 actions/newnotice.php:208
+#: lib/channel.php:170
 msgid "Ajax Error"
-msgstr ""
+msgstr "Błąd AJAX"
 
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set his email yet."
 msgstr ""
+"Ten użytkownik nie pozwala na szturchnięcia lub nie potwierdził lub nie "
+"ustawił jeszcze swojego adresu e-mail."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
-msgstr ""
+msgstr "Wysłano szturchnięcie"
 
 #: actions/nudge.php:97
 msgid "Nudge sent!"
-msgstr ""
+msgstr "Wysłano szturchnięcie!"
 
-#: actions/openidlogin.php:97
-#, fuzzy
+#: actions/openidlogin.php:97 actions/openidlogin.php:106
 msgid "OpenID login"
-msgstr "Użytkownik OpenID"
+msgstr "Login OpenID"
 
 #: actions/openidsettings.php:128
-#, fuzzy
 msgid "Removing your only OpenID "
-msgstr "Usuń konto OpenID"
+msgstr "Usuwanie jedynego identyfikatora OpenID "
 
 #: actions/othersettings.php:60
-#, fuzzy
 msgid "Other Settings"
-msgstr "Ustawienia"
+msgstr "Inne ustawienia"
 
 #: actions/othersettings.php:71
 msgid "Manage various other options."
-msgstr ""
+msgstr "Zarządzaj różnymi innymi opcjami."
 
 #: actions/othersettings.php:93
 msgid "URL Auto-shortening"
-msgstr ""
+msgstr "Automatyczne skracanie adresów URL"
 
 #: actions/othersettings.php:112
-#, fuzzy
 msgid "Service"
-msgstr "Szukaj"
+msgstr "Usługa"
 
 #: actions/othersettings.php:113
 msgid "Automatic shortening service to use."
-msgstr ""
+msgstr "Używana automatyczna usługa skracania."
 
 #: actions/othersettings.php:144
-#, fuzzy
 msgid "URL shortening service is too long (max 50 chars)."
-msgstr "Lokalizacja jest za długa (max. 255 znaków)."
+msgstr "Adres URL usługi skracania jest za długi (maksymalnie 50 znaków)."
 
 #: actions/passwordsettings.php:69
-#, fuzzy
 msgid "Change your password."
-msgstr "Zmień hasło"
+msgstr "Zmień hasło."
 
 #: actions/passwordsettings.php:89
-#, fuzzy
 msgid "Password change"
-msgstr "Hasło zostało zapisane."
+msgstr "Zmiana hasła"
 
-#: actions/peopletag.php:35
-#, fuzzy, php-format
+#: actions/peopletag.php:35 actions/peopletag.php:70
+#, php-format
 msgid "Not a valid people tag: %s"
-msgstr "Niewłaściwy adres e-mailowy."
+msgstr "Nieprawidłowy znacznik osób: %s"
 
-#: actions/peopletag.php:47
+#: actions/peopletag.php:47 actions/peopletag.php:144
 #, php-format
 msgid "Users self-tagged with %s - page %d"
-msgstr ""
+msgstr "Użytkownicy używający znacznika %s - strona %d"
 
 #: actions/peopletag.php:91
 #, php-format
 msgid "These are users who have tagged themselves \"%s\" "
-msgstr ""
+msgstr "To są użytkownicy którzy nadali sobie znacznik \"%s\" "
 
 #: actions/profilesettings.php:91
-#, fuzzy
 msgid "Profile information"
-msgstr "Nieznany profil"
+msgstr "Informacje o profilu"
 
 #: actions/profilesettings.php:124
 msgid ""
 "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated"
 msgstr ""
+"Znaczniki dla siebie (litery, liczby, -, . i _), oddzielone przecinkami lub "
+"spacjami"
 
 #: actions/profilesettings.php:144
 msgid "Automatically subscribe to whoever "
-msgstr ""
+msgstr "Automatycznie zasubskrybuj do każdego "
 
 #: actions/profilesettings.php:229 actions/tagother.php:176
-#, fuzzy, php-format
+#: actions/tagother.php:178
+#, php-format
 msgid "Invalid tag: \"%s\""
-msgstr "Błędna strona domowa '%s'"
+msgstr "Nieprawidłowy znacznik: \"%s\""
 
 #: actions/profilesettings.php:311
-#, fuzzy
 msgid "Couldn't save tags."
-msgstr "Nie można zapisać profilu."
+msgstr "Nie można zapisać znaczników."
 
-#: actions/public.php:107
-#, fuzzy, php-format
+#: actions/public.php:107 actions/public.php:110
+#, php-format
 msgid "Public timeline, page %d"
-msgstr "Publiczna oś czasu"
+msgstr "Publiczna oś czasu, strona %d"
 
-#: actions/public.php:173
+#: actions/public.php:173 actions/public.php:184
 msgid "Could not retrieve public stream."
-msgstr ""
+msgstr "Nie można pobrać publicznego strumienia."
 
 #: actions/public.php:220
 #, php-format
@@ -4011,139 +4221,132 @@ msgid ""
 "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
 "blogging) service "
 msgstr ""
+"To jest %%site.name%%, usługa [mikroblogowania](http://en.wikipedia.org/wiki/"
+"Micro-blogging) "
 
 #: actions/publictagcloud.php:57
-#, fuzzy
 msgid "Public tag cloud"
-msgstr "Publiczny Kanał Strumieni"
+msgstr "Publiczna chmura znaczników"
 
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
-msgstr ""
+msgstr "To są najpopularniejsze ostatnie znaczniki na %s "
 
 #: actions/publictagcloud.php:119
 msgid "Tag cloud"
-msgstr ""
+msgstr "Chmura znaczników"
 
 #: actions/register.php:139 actions/register.php:349
 msgid "Sorry, only invited people can register."
-msgstr ""
+msgstr "Przepraszamy, tylko zaproszone osoby mogą się rejestrować."
 
 #: actions/register.php:149
-#, fuzzy
 msgid "You can't register if you don't "
-msgstr ""
-"Nie możesz się zarejestrować, jeśli nie zgadzasz się z warunkami licencji."
+msgstr "Nie możesz się zarejestrować, jeśli nie "
 
 #: actions/register.php:286
 msgid "With this form you can create "
-msgstr ""
+msgstr "Za pomocą tego formularza można utworzyć "
 
 #: actions/register.php:368
-#, fuzzy
 msgid "1-64 lowercase letters or numbers, "
-msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych"
+msgstr "1-64 małe litery lub liczby, "
 
 #: actions/register.php:382 actions/register.php:386
-#, fuzzy
 msgid "Used only for updates, announcements, "
-msgstr "Używane tylko do aktualizacji, ogłoszeń i przywracania hasła"
+msgstr "Używane tylko do aktualizacji, ogłoszeń"
 
 #: actions/register.php:398
-#, fuzzy
 msgid "URL of your homepage, blog, "
-msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie"
+msgstr "Adres URL strony domowej, bloga, "
 
 #: actions/register.php:404
-#, fuzzy
 msgid "Describe yourself and your "
-msgstr "Opisz się w 140 znakach"
+msgstr "Opisz się i swoje "
 
 #: actions/register.php:410
-#, fuzzy
 msgid "Where you are, like \"City, "
-msgstr "Gdzie jesteś? (np. \"miasto, region, kraj\")"
+msgstr "Gdzie jesteś, np. \"miasto, "
 
 #: actions/register.php:432
-#, fuzzy
 msgid " except this private data: password, "
-msgstr ""
-"z wyłączeniem tych prywatnych danych: e-maila, identyfikatora IM, numeru "
-"telefonu."
+msgstr " poza tymi prywatnymi danymi: hasło, "
 
 #: actions/register.php:471
 #, php-format
 msgid "Congratulations, %s! And welcome to %%%%site.name%%%%. "
-msgstr ""
+msgstr "Gratulacje, %s! Witaj na %%%%site.name%%%%. "
 
 #: actions/register.php:495
 msgid "(You should receive a message by email "
-msgstr ""
+msgstr "(Powinieneś otrzymać wiadomość przez e-mail "
 
 #: actions/remotesubscribe.php:166 actions/remotesubscribe.php:171
 msgid "That's a local profile! Login to subscribe."
-msgstr ""
+msgstr "To jest profil lokalny! Zaloguj się, aby zasubskrybować."
 
-#: actions/replies.php:118
-#, fuzzy, php-format
+#: actions/replies.php:118 actions/replies.php:120
+#, php-format
 msgid "Replies to %s, page %d"
-msgstr "Odpowiedzi na %s"
+msgstr "Odpowiedzi na %s, strona %d"
 
 #: actions/showfavorites.php:79
 #, php-format
 msgid "%s favorite notices, page %d"
-msgstr ""
+msgstr "Ulubione wpisy użytkownika %s, strona %d"
 
 #: actions/showgroup.php:77 lib/groupnav.php:85
 #, php-format
 msgid "%s group"
-msgstr ""
+msgstr "Grupa %s"
 
 #: actions/showgroup.php:79
 #, php-format
 msgid "%s group, page %d"
-msgstr ""
+msgstr "Grupa %s, strona %d"
 
-#: actions/showgroup.php:206
-#, fuzzy
+#: actions/showgroup.php:206 actions/showgroup.php:208
 msgid "Group profile"
-msgstr "Brak takiego wpisu."
+msgstr "Profil grupy"
 
 #: actions/showgroup.php:251 actions/showstream.php:278
 #: actions/tagother.php:119 lib/grouplist.php:134 lib/profilelist.php:133
+#: actions/showgroup.php:253 actions/showstream.php:271
+#: actions/tagother.php:118 lib/profilelist.php:131
 msgid "URL"
-msgstr ""
+msgstr "Adres URL"
 
 #: actions/showgroup.php:262 actions/showstream.php:289
 #: actions/tagother.php:129 lib/grouplist.php:145 lib/profilelist.php:144
-#, fuzzy
+#: actions/showgroup.php:264 actions/showstream.php:282
+#: actions/tagother.php:128 lib/profilelist.php:142
 msgid "Note"
-msgstr "Wpisy"
+msgstr "Wpis"
 
-#: actions/showgroup.php:270
+#: actions/showgroup.php:270 actions/showgroup.php:272
 msgid "Group actions"
-msgstr ""
+msgstr "Działania grupy"
 
-#: actions/showgroup.php:323
-#, fuzzy, php-format
+#: actions/showgroup.php:323 actions/showgroup.php:304
+#, php-format
 msgid "Notice feed for %s group"
-msgstr "Kanał wpisów dla %s"
+msgstr "Kanał wpisów dla grupy %s"
 
-#: actions/showgroup.php:357 lib/groupnav.php:90
-#, fuzzy
+#: actions/showgroup.php:357 lib/groupnav.php:90 actions/showgroup.php:339
+#: actions/showgroup.php:384
 msgid "Members"
-msgstr "W serwisie od"
+msgstr "Członkowie"
 
 #: actions/showgroup.php:363 actions/showstream.php:413
 #: actions/showstream.php:442 actions/showstream.php:524 lib/section.php:95
-#: lib/tagcloudsection.php:71
+#: lib/tagcloudsection.php:71 actions/showgroup.php:344
 msgid "(None)"
-msgstr ""
+msgstr "(Brak)"
 
-#: actions/showgroup.php:370
+#: actions/showgroup.php:370 actions/showgroup.php:350
 msgid "All members"
-msgstr ""
+msgstr "Wszyscy członkowie"
 
 #: actions/showgroup.php:378
 #, php-format
@@ -4151,50 +4354,51 @@ msgid ""
 "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en."
 "wikipedia.org/wiki/Micro-blogging) service "
 msgstr ""
+"**%s** jest grupą użytkowników na %%%%site.name%%%%, usłudze "
+"[mikroblogowania](http://en.wikipedia.org/wiki/Micro-blogging) "
 
 #: actions/showmessage.php:98
 msgid "Only the sender and recipient "
-msgstr ""
+msgstr "Tylko nadawca i odbiorca "
 
 #: actions/showstream.php:73
 #, php-format
 msgid "%s, page %d"
-msgstr ""
+msgstr "%s, strona %d"
 
 #: actions/showstream.php:143
-#, fuzzy
 msgid "'s profile"
-msgstr "Profil"
+msgstr " - profil"
 
 #: actions/showstream.php:236 actions/tagother.php:77
-#, fuzzy
+#: actions/showstream.php:220
 msgid "User profile"
-msgstr "Użytkownik nie ma profilu."
+msgstr "Profil użytkownika"
 
 #: actions/showstream.php:240 actions/tagother.php:81
+#: actions/showstream.php:224
 msgid "Photo"
-msgstr ""
+msgstr "Zdjęcie"
 
-#: actions/showstream.php:317
+#: actions/showstream.php:317 actions/showstream.php:309
 msgid "User actions"
-msgstr ""
+msgstr "Działania użytkownika"
 
 #: actions/showstream.php:342
 msgid "Send a direct message to this user"
-msgstr ""
+msgstr "Wyślij bezpośrednią wiadomość do tego użytkownika"
 
 #: actions/showstream.php:343
 msgid "Message"
-msgstr ""
+msgstr "Wiadomość"
 
 #: actions/showstream.php:451
-#, fuzzy
 msgid "All subscribers"
-msgstr "Subskrybenci"
+msgstr "Wszyscy subskrybenci"
 
 #: actions/showstream.php:533
 msgid "All groups"
-msgstr ""
+msgstr "Wszystkie grupy"
 
 #: actions/showstream.php:542
 #, php-format
@@ -4202,480 +4406,449 @@ msgid ""
 "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
 "wikipedia.org/wiki/Micro-blogging) service "
 msgstr ""
+"**%s** posiada konto na %%%%site.name%%%%, usłudze [mikroblogowania](http://"
+"en.wikipedia.org/wiki/Micro-blogging) "
 
 #: actions/smssettings.php:128
-#, fuzzy
 msgid "Phone number, no punctuation or spaces, "
-msgstr "Max. 64 znaki alfanumeryczne, bez spacji i znaków przestankowych"
+msgstr "Numer telefonu, bez znaków przestankowych i spacji, "
 
 #: actions/smssettings.php:162
-#, fuzzy
 msgid "Send me notices through SMS; "
-msgstr "Wysyłaj mi wpisy przez Jabbera/GTalka"
+msgstr "Wyślij mi wpisy przez SMS; "
 
 #: actions/smssettings.php:335
-#, fuzzy
 msgid "A confirmation code was sent to the phone number you added. "
-msgstr "Ten kod potwierdzający nie jest przeznaczony dla Ciebie!"
+msgstr "Kod potwierdzający został wysłany na dodany numer telefonu. "
 
 #: actions/smssettings.php:453
 msgid "Mobile carrier"
-msgstr ""
+msgstr "Operator komórkowy"
 
 #: actions/subedit.php:70
-#, fuzzy
 msgid "You are not subscribed to that profile."
-msgstr "Ten profil nie był wysłany przez Ciebie"
+msgstr "Nie jesteś zasubskrybowany do tego profilu."
 
 #: actions/subedit.php:83
-#, fuzzy
 msgid "Could not save subscription."
-msgstr "Nie można obserwować."
+msgstr "Nie można zapisać subskrypcji."
 
 #: actions/subscribe.php:55
-#, fuzzy
 msgid "Not a local user."
-msgstr "Brak takiego użytkownika."
+msgstr "Nie jest lokalnym użytkownikiem."
 
 #: actions/subscribe.php:69
-#, fuzzy
 msgid "Subscribed"
-msgstr "Subskrybuj"
+msgstr "Zasubskrybowano"
 
 #: actions/subscribers.php:50
-#, fuzzy, php-format
+#, php-format
 msgid "%s subscribers"
-msgstr "Subskrybenci"
+msgstr "Subskrybenci %s"
 
 #: actions/subscribers.php:52
 #, php-format
 msgid "%s subscribers, page %d"
-msgstr ""
+msgstr "Subskrybenci %s, strona %d"
 
 #: actions/subscribers.php:63
-#, fuzzy
 msgid "These are the people who listen to "
-msgstr "Ludzie obserwujący wpisy użytkownika %s."
+msgstr "Osoby obserwujące "
 
 #: actions/subscribers.php:67
-#, fuzzy, php-format
+#, php-format
 msgid "These are the people who "
-msgstr "Ludzie obserwujący wpisy użytkownika %s."
+msgstr "Osoby, które "
 
 #: actions/subscriptions.php:52
-#, fuzzy, php-format
+#, php-format
 msgid "%s subscriptions"
-msgstr "Wszyscy obserwowani"
+msgstr "Subskrypcje %s"
 
 #: actions/subscriptions.php:54
-#, fuzzy, php-format
+#, php-format
 msgid "%s subscriptions, page %d"
-msgstr "Wszyscy obserwowani"
+msgstr "Subskrypcje %s, strona %d"
 
 #: actions/subscriptions.php:65
-#, fuzzy
 msgid "These are the people whose notices "
-msgstr "Ludzie, których wpisy obserwuje użytkownik %s."
+msgstr "Osoby, których wpisy "
 
 #: actions/subscriptions.php:69
-#, fuzzy, php-format
+#, php-format
 msgid "These are the people whose "
-msgstr "Ludzie obserwujący wpisy użytkownika %s."
+msgstr "Osoby, których "
 
-#: actions/subscriptions.php:122
-#, fuzzy
+#: actions/subscriptions.php:122 actions/subscriptions.php:124
 msgid "Jabber"
-msgstr "Brak identyfikatora Jabbera."
+msgstr "Jabber"
 
-#: actions/tag.php:43
-#, fuzzy, php-format
+#: actions/tag.php:43 actions/tag.php:51
+#, php-format
 msgid "Notices tagged with %s, page %d"
-msgstr "%s – mikroblog"
+msgstr "Wpisy ze znacznikiem %s, strona %d"
 
-#: actions/tag.php:66
+#: actions/tag.php:66 actions/tag.php:73
 #, php-format
 msgid "Messages tagged \"%s\", most recent first"
-msgstr ""
+msgstr "Wiadomości ze znacznikiem \"%s\", najpierw najnowsze"
 
 #: actions/tagother.php:33
-#, fuzzy
 msgid "Not logged in"
-msgstr "Niezalogowany."
+msgstr "Nie zalogowano"
 
 #: actions/tagother.php:39
-#, fuzzy
 msgid "No id argument."
-msgstr "Brak takiego dokumentu."
+msgstr "Brak parametru identyfikatora."
 
 #: actions/tagother.php:65
 #, php-format
 msgid "Tag %s"
-msgstr ""
+msgstr "Znacznik %s"
 
 #: actions/tagother.php:141
 msgid "Tag user"
-msgstr ""
+msgstr "Znacznik użytkownika"
 
-#: actions/tagother.php:149
+#: actions/tagother.php:149 actions/tagother.php:151
 msgid ""
 "Tags for this user (letters, numbers, -, ., and _), comma- or space- "
 "separated"
 msgstr ""
+"Znaczniki dla tego użytkownika (litery, liczby, -, . i _), oddzielone "
+"przecinkami lub spacjami"
 
 #: actions/tagother.php:164
 msgid "There was a problem with your session token."
-msgstr ""
+msgstr "Wystąpił problem z tokenem sesji."
 
-#: actions/tagother.php:191
+#: actions/tagother.php:191 actions/tagother.php:193
 msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
 msgstr ""
+"Można nadawać znaczniki tylko osobom, których subskrybujesz lub którzy "
+"subskrybują Ciebie."
 
-#: actions/tagother.php:198
-#, fuzzy
+#: actions/tagother.php:198 actions/tagother.php:200
 msgid "Could not save tags."
-msgstr "Nie można zapisać informacji o awatarze"
+msgstr "Nie można zapisać znaczników."
 
-#: actions/tagother.php:233
+#: actions/tagother.php:233 actions/tagother.php:235
 msgid "Use this form to add tags to your subscribers or subscriptions."
 msgstr ""
+"Użyj tego formularza, aby dodać znaczniki subskrybentom lub subskrypcjom."
 
 #: actions/tagrss.php:35
-#, fuzzy
 msgid "No such tag."
-msgstr "Brak takiego wpisu."
+msgstr "Nie ma takiego znacznika."
 
-#: actions/tagrss.php:66
-#, fuzzy, php-format
+#: actions/tagrss.php:66 actions/tagrss.php:64
+#, php-format
 msgid "Microblog tagged with %s"
-msgstr "%s – mikroblog"
+msgstr "Mikroblogi ze znacznikiem %s"
 
 #: actions/twitapiblocks.php:47
 msgid "Block user failed."
-msgstr ""
+msgstr "Zablokowanie użytkownika nie powiodło się."
 
 #: actions/twitapiblocks.php:69
 msgid "Unblock user failed."
-msgstr ""
+msgstr "Odblokowanie użytkownika nie powiodło się."
 
-#: actions/twitapiusers.php:48
-#, fuzzy
+#: actions/twitapiusers.php:48 actions/twitapiusers.php:52
 msgid "Not found."
-msgstr "Nie znaleziono żądania!"
+msgstr "Nie znaleziono."
 
 #: actions/twittersettings.php:71
 msgid "Add your Twitter account to automatically send "
-msgstr ""
+msgstr "Dodaj konto Twittera, aby automatycznie wysyłać "
 
-#: actions/twittersettings.php:119
+#: actions/twittersettings.php:119 actions/twittersettings.php:122
 msgid "Twitter user name"
-msgstr ""
+msgstr "Nazwa użytkownika Twittera"
 
-#: actions/twittersettings.php:126
-#, fuzzy
+#: actions/twittersettings.php:126 actions/twittersettings.php:129
 msgid "Twitter password"
-msgstr "Nowe hasło"
+msgstr "Hasło Twittera"
 
-#: actions/twittersettings.php:228
+#: actions/twittersettings.php:228 actions/twittersettings.php:232
 msgid "Twitter Friends"
-msgstr ""
+msgstr "Przyjaciele z Twittera"
 
 #: actions/twittersettings.php:327
 msgid "Username must have only numbers, "
-msgstr ""
+msgstr "Nazwa użytkownika może zawierać tylko liczby, "
 
 #: actions/twittersettings.php:341
-#, fuzzy, php-format
+#, php-format
 msgid "Unable to retrieve account information "
-msgstr "Nie można skasować potwierdzenia adresu e-mail."
+msgstr "Nie można pobrać informacji o koncie "
 
 #: actions/unblock.php:108
-#, fuzzy
 msgid "Error removing the block."
-msgstr "Błąd w zapisie użytkownika."
+msgstr "Błąd podczas usuwania blokady."
 
 #: actions/unsubscribe.php:50
-#, fuzzy
 msgid "No profile id in request."
-msgstr "Serwer nie zwrócił żadnego URL-a."
+msgstr "Brak identyfikatora profilu w żądaniu."
 
 #: actions/unsubscribe.php:57
-#, fuzzy
 msgid "No profile with that id."
-msgstr "Zdalny profil bez odpowiadającego profilu lokalnego"
+msgstr "Brak profilu z tym identyfikatorem."
 
 #: actions/unsubscribe.php:71
-#, fuzzy
 msgid "Unsubscribed"
-msgstr "Zrezygnuj z subskrypcji"
+msgstr "Zrezygnowano z subskrypcji"
 
 #: actions/usergroups.php:63
 #, php-format
 msgid "%s groups"
-msgstr ""
+msgstr "Grupy %s"
 
 #: actions/usergroups.php:65
 #, php-format
 msgid "%s groups, page %d"
-msgstr ""
+msgstr "Grupy %s, strona %d"
 
-#: classes/Notice.php:104
-#, fuzzy
+#: classes/Notice.php:104 classes/Notice.php:128
 msgid "Problem saving notice. Unknown user."
-msgstr "Problem z zachowywaniem wpisu."
+msgstr "Problem podczas zapisywania wpisu. Nieznany użytkownik."
 
-#: classes/Notice.php:109
+#: classes/Notice.php:109 classes/Notice.php:133
 msgid ""
 "Too many notices too fast; take a breather and post again in a few minutes."
 msgstr ""
+"Za dużo wpisów w za krótkim czasie, weź głęboki oddech i wyślij ponownie za "
+"kilka minut."
 
-#: classes/Notice.php:116
+#: classes/Notice.php:116 classes/Notice.php:145
 msgid "You are banned from posting notices on this site."
-msgstr ""
+msgstr "Zabroniono Ci wysyłania wpisów na tej stronie."
 
 #: lib/accountsettingsaction.php:108
-#, fuzzy
 msgid "Upload an avatar"
-msgstr "Uaktualnianie awatara nie powiodło się."
+msgstr "Wyślij awatar"
 
 #: lib/accountsettingsaction.php:119
 msgid "Other"
-msgstr ""
+msgstr "Inne"
 
 #: lib/accountsettingsaction.php:120
 msgid "Other options"
-msgstr ""
+msgstr "Inne opcje"
 
-#: lib/action.php:130
+#: lib/action.php:130 lib/action.php:132
 #, php-format
 msgid "%s - %s"
-msgstr ""
+msgstr "%s - %s"
 
-#: lib/action.php:145
+#: lib/action.php:145 lib/action.php:147
 msgid "Untitled page"
-msgstr ""
+msgstr "Strona bez nazwy"
 
-#: lib/action.php:316
+#: lib/action.php:316 lib/action.php:387
 msgid "Primary site navigation"
-msgstr ""
+msgstr "Główna nawigacja strony"
 
-#: lib/action.php:322
+#: lib/action.php:322 lib/action.php:393
 msgid "Personal profile and friends timeline"
-msgstr ""
+msgstr "Profil osobisty i oś czasu przyjaciół"
 
-#: lib/action.php:325
+#: lib/action.php:325 lib/action.php:396
 msgid "Search for people or text"
-msgstr ""
+msgstr "Znajdź osoby lub tekst"
 
-#: lib/action.php:328
-#, fuzzy
+#: lib/action.php:328 lib/action.php:399
 msgid "Account"
-msgstr "O serwisie"
+msgstr "Konto"
 
-#: lib/action.php:328
+#: lib/action.php:328 lib/action.php:399
 msgid "Change your email, avatar, password, profile"
-msgstr ""
+msgstr "Zmień adres e-mail, awatar, hasło, profil"
 
-#: lib/action.php:330
+#: lib/action.php:330 lib/action.php:403
 msgid "Connect to IM, SMS, Twitter"
-msgstr ""
+msgstr "Połącz z komunikatorem, SMS, Twitterem"
 
-#: lib/action.php:332
+#: lib/action.php:332 lib/action.php:409
 msgid "Logout from the site"
-msgstr ""
+msgstr "Wyloguj się ze strony"
 
-#: lib/action.php:335
+#: lib/action.php:335 lib/action.php:412
 msgid "Login to the site"
-msgstr ""
+msgstr "Zaloguj się na stronę"
 
-#: lib/action.php:338
-#, fuzzy
+#: lib/action.php:338 lib/action.php:415
 msgid "Create an account"
-msgstr "Załóż nowe konto"
+msgstr "Utwórz konto"
 
-#: lib/action.php:341
-#, fuzzy
+#: lib/action.php:341 lib/action.php:418
 msgid "Login with OpenID"
-msgstr "Brak takiego identyfikatora OpenID."
+msgstr "Zaloguj się za pomocą OpenID"
 
-#: lib/action.php:344
-#, fuzzy
+#: lib/action.php:344 lib/action.php:421
 msgid "Help me!"
-msgstr "Pomoc"
+msgstr "Pomóż mi!"
 
-#: lib/action.php:362
-#, fuzzy
+#: lib/action.php:362 lib/action.php:441
 msgid "Site notice"
-msgstr "Nowy wpis"
+msgstr "Wpis strony"
 
-#: lib/action.php:417
+#: lib/action.php:417 lib/action.php:504
 msgid "Local views"
-msgstr ""
+msgstr "Lokalne widoki"
 
-#: lib/action.php:472
-#, fuzzy
+#: lib/action.php:472 lib/action.php:559
 msgid "Page notice"
-msgstr "Nowy wpis"
+msgstr "Wpis strony"
 
-#: lib/action.php:562
-#, fuzzy
+#: lib/action.php:562 lib/action.php:654
 msgid "Secondary site navigation"
-msgstr "Subskrypcje"
+msgstr "Druga nawigacja strony"
 
-#: lib/action.php:602 lib/action.php:623
+#: lib/action.php:602 lib/action.php:623 lib/action.php:699 lib/action.php:720
 msgid "Laconica software license"
-msgstr ""
+msgstr "Licencja oprogramowania Laconica"
 
-#: lib/action.php:630
+#: lib/action.php:630 lib/action.php:727
 msgid "All "
-msgstr ""
+msgstr "Wszystko "
 
-#: lib/action.php:635
+#: lib/action.php:635 lib/action.php:732
 msgid "license."
-msgstr ""
+msgstr "licencja."
 
 #: lib/blockform.php:123 lib/blockform.php:153
-#, fuzzy
 msgid "Block this user"
-msgstr "Brak takiego użytkownika."
+msgstr "Zablokuj tego użytkownika"
 
 #: lib/blockform.php:153
 msgid "Block"
-msgstr ""
+msgstr "Zablokuj"
 
 #: lib/disfavorform.php:114 lib/disfavorform.php:140
 msgid "Disfavor this notice"
-msgstr ""
+msgstr "Usuń ten wpis z ulubionych"
 
 #: lib/facebookaction.php:268
 #, php-format
 msgid "To use the %s Facebook Application you need to login "
-msgstr ""
+msgstr "Aby używać aplikacji Facebook %s, musisz się zalogować "
 
-#: lib/facebookaction.php:271
-#, fuzzy
+#: lib/facebookaction.php:271 lib/facebookaction.php:273
 msgid " a new account."
-msgstr "Załóż nowe konto"
+msgstr " nowe konto."
 
 #: lib/facebookaction.php:557 lib/mailbox.php:214 lib/noticelist.php:354
-#, fuzzy
+#: lib/facebookaction.php:675 lib/mailbox.php:216 lib/noticelist.php:357
 msgid "Published"
-msgstr "Publiczny"
+msgstr "Opublikowano"
 
 #: lib/favorform.php:114 lib/favorform.php:140
-#, fuzzy
 msgid "Favor this notice"
-msgstr "Brak takiego wpisu."
+msgstr "Dodaj ten wpis do ulubionych"
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "Wyeksportuj dane"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
-msgstr ""
+msgstr "Filtruj znaczniki"
 
 #: lib/galleryaction.php:131
 msgid "All"
-msgstr ""
+msgstr "Wszystko"
 
 #: lib/galleryaction.php:137
 msgid "Tag"
-msgstr ""
+msgstr "Znacznik"
 
 #: lib/galleryaction.php:138
 msgid "Choose a tag to narrow list"
-msgstr ""
+msgstr "Wybierz znacznik do ograniczonej listy"
 
 #: lib/galleryaction.php:139
 msgid "Go"
-msgstr ""
+msgstr "Przejdź"
 
 #: lib/groupeditform.php:148
-#, fuzzy
 msgid "URL of the homepage or blog of the group or topic"
-msgstr "URL Twojej strony domowej, bloga, lub profilu na innej stronie"
+msgstr "Adres URL strony domowej lub bloga grupy, albo temat"
 
 #: lib/groupeditform.php:151
-#, fuzzy
 msgid "Description"
-msgstr "Subskrypcje"
+msgstr "Opis"
 
 #: lib/groupeditform.php:153
-#, fuzzy
 msgid "Describe the group or topic in 140 chars"
-msgstr "Opisz się w 140 znakach"
+msgstr "Opisz grupę lub temat w 140 znakach"
 
 #: lib/groupeditform.php:158
-#, fuzzy
 msgid ""
 "Location for the group, if any, like \"City, State (or Region), Country\""
-msgstr "Gdzie jesteś? (np. \"miasto, region, kraj\")"
+msgstr ""
+"Położenie grupy, jeśli istnieje, np. \"miasto, województwo (lub region), kraj"
+"\""
 
 #: lib/groupnav.php:84 lib/searchgroupnav.php:84
 msgid "Group"
-msgstr ""
+msgstr "Grupa"
 
 #: lib/groupnav.php:100
 msgid "Admin"
-msgstr ""
+msgstr "Administrator"
 
 #: lib/groupnav.php:101
 #, php-format
 msgid "Edit %s group properties"
-msgstr ""
+msgstr "Edytuj właściwości grupy %s"
 
 #: lib/groupnav.php:106
-#, fuzzy
 msgid "Logo"
-msgstr "Wyloguj"
+msgstr "Logo"
 
 #: lib/groupnav.php:107
 #, php-format
 msgid "Add or edit %s logo"
-msgstr ""
+msgstr "Dodaj lub edytuj logo grupy %s"
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
-msgstr ""
+msgstr "Grupy z największą liczbą członków"
 
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
-msgstr ""
+msgstr "Grupy z największą ilością wpisów"
 
 #: lib/grouptagcloudsection.php:56
 #, php-format
 msgid "Tags in %s group's notices"
-msgstr ""
+msgstr "Znaczniki we wpisach grupy %s"
 
 #: lib/htmloutputter.php:104
-#, fuzzy
 msgid "This page is not available in a "
-msgstr "Ta strona nie jest dostępna dla medium, którego typ akceptujesz"
+msgstr "Ta strona nie jest dostępna "
 
 #: lib/joinform.php:114
-#, fuzzy
 msgid "Join"
-msgstr "Login"
+msgstr "Dołącz"
 
 #: lib/leaveform.php:114
-#, fuzzy
 msgid "Leave"
-msgstr "Zapisz"
+msgstr "Opuść"
 
 #: lib/logingroupnav.php:76
-#, fuzzy
 msgid "Login with a username and password"
-msgstr "Błędna nazwa użytkownika lub hasło."
+msgstr "Zaloguj się za pomocą nazwy użytkownika i hasła"
 
 #: lib/logingroupnav.php:79
-#, fuzzy
 msgid "Sign up for a new account"
 msgstr "Załóż nowe konto"
 
 #: lib/logingroupnav.php:82
 msgid "Login or register with OpenID"
-msgstr ""
+msgstr "Zaloguj się lub zarejestruj za pomocą OpenID"
 
 #: lib/mail.php:175
 #, php-format
@@ -4683,21 +4856,23 @@ msgid ""
 "Hey, %s.\n"
 "\n"
 msgstr ""
+"Cześć, %s.\n"
+"\n"
 
 #: lib/mail.php:236
-#, fuzzy, php-format
+#, php-format
 msgid "%1$s is now listening to "
-msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s."
+msgstr "%1$s obserwuje teraz "
 
 #: lib/mail.php:254
-#, fuzzy, php-format
+#, php-format
 msgid "Location: %s\n"
-msgstr "Lokalizacja"
+msgstr "Położenie: %s\n"
 
 #: lib/mail.php:256
-#, fuzzy, php-format
+#, php-format
 msgid "Homepage: %s\n"
-msgstr "Strona domowa"
+msgstr "Strona domowa: %s\n"
 
 #: lib/mail.php:258
 #, php-format
@@ -4705,185 +4880,783 @@ msgid ""
 "Bio: %s\n"
 "\n"
 msgstr ""
+"O mnie: %s\n"
+"\n"
 
-#: lib/mail.php:461
+#: lib/mail.php:461 lib/mail.php:462
 #, php-format
 msgid "You've been nudged by %s"
-msgstr ""
+msgstr "Zostałeś szturchnięty przez %s"
 
 #: lib/mail.php:465
 #, php-format
 msgid "%1$s (%2$s) is wondering what you are up to "
-msgstr ""
+msgstr "%1$s (%2$s) zastanawia się, co zamierzasz "
 
 #: lib/mail.php:555
-#, fuzzy, php-format
+#, php-format
 msgid "%1$s just added your notice from %2$s"
-msgstr "%1$s obserwuje teraz Twoje wpisy na %2$s."
+msgstr "%1$s właśnie dodał Twój wpis z %2$s"
 
-#: lib/mailbox.php:229 lib/noticelist.php:380
+#: lib/mailbox.php:229 lib/noticelist.php:380 lib/mailbox.php:231
+#: lib/noticelist.php:383
 msgid "From"
-msgstr ""
+msgstr "Od"
 
-#: lib/messageform.php:110
+#: lib/messageform.php:110 lib/messageform.php:109
 msgid "Send a direct notice"
-msgstr ""
+msgstr "Wyślij bezpośredni wpis"
 
 #: lib/noticeform.php:125
-#, fuzzy
 msgid "Send a notice"
-msgstr "Nowy wpis"
+msgstr "Wyślij wpis"
 
 #: lib/noticeform.php:152
-#, fuzzy
 msgid "Available characters"
-msgstr "6 lub więcej znaków"
+msgstr "Dostępne znaki"
 
-#: lib/noticelist.php:426
-#, fuzzy
+#: lib/noticelist.php:426 lib/noticelist.php:429
 msgid "in reply to"
-msgstr "w odpowiedzi na"
+msgstr "w odpowiedzi na"
 
-#: lib/noticelist.php:447 lib/noticelist.php:450
+#: lib/noticelist.php:447 lib/noticelist.php:450 lib/noticelist.php:451
+#: lib/noticelist.php:454
 msgid "Reply to this notice"
-msgstr ""
+msgstr "Odpowiedz na ten wpis"
 
-#: lib/noticelist.php:451
-#, fuzzy
+#: lib/noticelist.php:451 lib/noticelist.php:455
 msgid "Reply"
-msgstr "odpowiedź"
+msgstr "Odpowiedz"
 
-#: lib/noticelist.php:471 lib/noticelist.php:474
+#: lib/noticelist.php:471 lib/noticelist.php:474 lib/noticelist.php:476
+#: lib/noticelist.php:479
 msgid "Delete this notice"
-msgstr ""
+msgstr "Usuń ten wpis"
 
-#: lib/noticelist.php:474
+#: lib/noticelist.php:474 actions/avatarsettings.php:148
+#: lib/noticelist.php:479
 msgid "Delete"
-msgstr ""
+msgstr "Usuń"
 
 #: lib/nudgeform.php:116
 msgid "Nudge this user"
-msgstr ""
+msgstr "Szturchnij tego użytkownika"
 
 #: lib/nudgeform.php:128
 msgid "Nudge"
-msgstr ""
+msgstr "Szturchnij"
 
 #: lib/nudgeform.php:128
 msgid "Send a nudge to this user"
-msgstr ""
+msgstr "Wyślij szturchnięcie do tego użytkownika"
 
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
-msgstr ""
+msgstr "Znaczniki we wpisach użytkownika %s"
 
-#: lib/profilelist.php:182
+#: lib/profilelist.php:182 lib/profilelist.php:180
 msgid "(none)"
-msgstr ""
+msgstr "(brak)"
 
-#: lib/publicgroupnav.php:76
+#: lib/publicgroupnav.php:76 lib/publicgroupnav.php:78
 msgid "Public"
 msgstr "Publiczny"
 
-#: lib/publicgroupnav.php:80
+#: lib/publicgroupnav.php:80 lib/publicgroupnav.php:82
 msgid "User groups"
-msgstr ""
+msgstr "Grupy użytkowników"
 
 #: lib/publicgroupnav.php:82 lib/publicgroupnav.php:83
+#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
 msgid "Recent tags"
-msgstr ""
+msgstr "Ostatnie znaczniki"
 
-#: lib/publicgroupnav.php:86
+#: lib/publicgroupnav.php:86 lib/publicgroupnav.php:88
 msgid "Featured"
-msgstr ""
+msgstr "Znane"
 
-#: lib/publicgroupnav.php:90
-#, fuzzy
+#: lib/publicgroupnav.php:90 lib/publicgroupnav.php:92
 msgid "Popular"
-msgstr "Szukaj ludzi"
+msgstr "Popularne"
 
 #: lib/searchgroupnav.php:82
-#, fuzzy
 msgid "Notice"
-msgstr "Wpisy"
+msgstr "Wpis"
 
 #: lib/searchgroupnav.php:85
 msgid "Find groups on this site"
-msgstr ""
+msgstr "Znajdź grupy na tej stronie"
 
 #: lib/section.php:89
 msgid "Untitled section"
-msgstr ""
+msgstr "Sekcja bez nazwy"
 
 #: lib/subgroupnav.php:81
-#, fuzzy, php-format
+#, php-format
 msgid "People %s subscribes to"
-msgstr "Zdalna subskrypcja"
+msgstr "Osoby %s zasubskrybowane do"
 
 #: lib/subgroupnav.php:89
-#, fuzzy, php-format
+#, php-format
 msgid "People subscribed to %s"
-msgstr "Zdalna subskrypcja"
+msgstr "Osoby zasubskrybowane do %s"
 
 #: lib/subgroupnav.php:97
 #, php-format
 msgid "Groups %s is a member of"
-msgstr ""
+msgstr "Grupy %s są członkiem"
 
 #: lib/subgroupnav.php:104
 #, php-format
 msgid "Invite friends and colleagues to join you on %s"
-msgstr ""
+msgstr "Zaproś przyjaciół i kolegów do dołączenia do Ciebie na %s"
 
 #: lib/subs.php:53
-#, fuzzy
 msgid "User has blocked you."
-msgstr "Użytkownik nie ma profilu."
+msgstr "Użytkownik zablokował Cię."
 
 #: lib/subscribeform.php:115 lib/subscribeform.php:139
-#, fuzzy
 msgid "Subscribe to this user"
-msgstr "Subskrypcja uwierzytelniona"
+msgstr "Zasubskrybuj tego użytkownika"
 
 #: lib/tagcloudsection.php:56
 msgid "None"
-msgstr ""
+msgstr "Brak"
 
 #: lib/topposterssection.php:74
 msgid "Top posters"
-msgstr ""
+msgstr "Najczęściej wysyłający wpisy"
 
 #: lib/unblockform.php:120 lib/unblockform.php:150
-#, fuzzy
 msgid "Unblock this user"
-msgstr "Brak takiego użytkownika."
+msgstr "Odblokuj tego użytkownika"
 
 #: lib/unblockform.php:150
 msgid "Unblock"
-msgstr ""
+msgstr "Odblokuj"
 
 #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
 msgid "Unsubscribe from this user"
+msgstr "Zrezygnuj z subskrypcji tego użytkownika"
+
+#: actions/all.php:77
+#, php-format
+msgid "Feed for friends of %s (RSS 1.0)"
+msgstr "Kanał dla znajomych użytkownika %s (RSS 1.0)"
+
+#: actions/all.php:82
+#, php-format
+msgid "Feed for friends of %s (RSS 2.0)"
+msgstr "Kanał dla znajomych użytkownika %s (RSS 2.0)"
+
+#: actions/all.php:87
+#, php-format
+msgid "Feed for friends of %s (Atom)"
+msgstr "Kanał dla znajomych użytkownika %s (Atom)"
+
+#: actions/all.php:112
+msgid "You and friends"
+msgstr "Ty i przyjaciele"
+
+#: actions/avatarsettings.php:78
+#, php-format
+msgid "You can upload your personal avatar. The maximum file size is %s."
+msgstr "Można wysłać swój osobisty awatar. Maksymalny rozmiar pliku to %s."
+
+#: actions/avatarsettings.php:373
+msgid "Avatar deleted."
+msgstr "Usunięto awatar."
+
+#: actions/block.php:129
+msgid ""
+"Are you sure you want to block this user? Afterwards, they will be "
+"unsubscribed from you, unable to subscribe to you in the future, and you "
+"will not be notified of any @-replies from them."
+msgstr ""
+"Jesteś pewny, że chcesz zablokować tego użytkownika. Po tym jego subskrypcja "
+"do Ciebie zostanie usunięta, nie będzie mógł Cię zasubskrybować w "
+"przyszłości i nie będziesz powiadamiany o żadnych odpowiedziach @ od niego."
+
+#: actions/deletenotice.php:73
+msgid ""
+"You are about to permanently delete a notice. Once this is done, it cannot "
+"be undone."
+msgstr ""
+"Za chwilę wpis zostanie trwale usunięty. Kiedy to się stanie, to już się nie "
+"odstanie."
+
+#: actions/deletenotice.php:127
+msgid "There was a problem with your session token.  Try again, please."
+msgstr "Wystąpił problem z tokenem sesji. Spróbuj ponownie."
+
+#: actions/emailsettings.php:168
+msgid "Send me email when someone sends me an \"@-reply\"."
+msgstr "Wyślij mi wiadomość e-mail, kiedy ktoś wyśle mi odpowiedź \"@\"."
+
+#: actions/facebookhome.php:193
+#, php-format
+msgid ""
+"If you would like the %s app to automatically update your Facebook status "
+"with your latest notice, you need to give it permission."
+msgstr ""
+"Jeśli chcesz, aby aplikacja %s automatycznie aktualizowała status na "
+"Facebook najnowszym wpisem, musisz dać jej pozwolenie."
+
+#: actions/facebookhome.php:217
+#, php-format
+msgid "Okay, do it!"
+msgstr "OK, zrób to!"
+
+#: actions/facebooksettings.php:124
+#, php-format
+msgid ""
+"If you would like %s to automatically update your Facebook status with your "
+"latest notice, you need to give it permission."
+msgstr ""
+"Jeśli chcesz, aby %s automatycznie aktualizowało status na Facebook "
+"najnowszym wpisem, musisz dać mu pozwolenie."
+
+#: actions/grouplogo.php:155
+#, php-format
+msgid ""
+"You can upload a logo image for your group. The maximum file size is %s."
+msgstr "Można wysłać obraz logo grupy. Maksymalny rozmiar pliku to %s."
+
+#: actions/grouplogo.php:367
+msgid "Pick a square area of the image to be the logo."
+msgstr "Wybierz kwadratowy obszar obrazu, który będzie logo."
+
+#: actions/grouprss.php:136
+#, php-format
+msgid "Microblog by %s group"
+msgstr "Mikroblog grupy %s"
+
+#: actions/groupsearch.php:57
+#, php-format
+msgid ""
+"Search for groups on %%site.name%% by their name, location, or description. "
+"Separate the terms by spaces; they must be 3 characters or more."
+msgstr ""
+"Znajdź grupy na %%site.name%% według ich nazwy, położenia lub opisu. Oddziel "
+"terminy spacjami; muszą mieć trzy znaki lub więcej."
+
+#: actions/groups.php:90
+#, php-format
+msgid ""
+"%%%%site.name%%%% groups let you find and talk with people of similar "
+"interests. After you join a group you can send messages to all other members "
+"using the syntax \"!groupname\". Don't see a group you like? Try [searching "
+"for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup"
+"%%%%)"
+msgstr ""
+"Grupy %%%%site.name%%%% umożliwiają znalezienie i rozmawianie z osobami o "
+"podobnych zainteresowaniach. Po dołączeniu do grupy można wysyłać wiadomości "
+"do wszystkich członków używając składni \"!nazwagrupy\". Nie widzisz grupy, "
+"która Cię interesuje? Spróbuj ją [znaleźć](%%%%action.groupsearch%%%%) lub "
+"[założyć własną!](%%%%action.newgroup%%%%)"
+
+#: actions/newmessage.php:102
+msgid "Only logged-in users can send direct messages."
+msgstr "Tylko zalogowani użytkownicy mogą wysyłać bezpośrednie wiadomości."
+
+#: actions/noticesearch.php:91
+#, php-format
+msgid "Search results for \"%s\" on %s"
+msgstr "Wyniki wyszukiwania dla \"%s\" na %s"
+
+#: actions/openidlogin.php:66
+#, php-format
+msgid ""
+"For security reasons, please re-login with your [OpenID](%%doc.openid%%) "
+"before changing your settings."
+msgstr ""
+"Z powodów bezpieczeństwa przed zmienianiem ustawień zaloguj się ponownie za "
+"pomocą identyfikatora [OpenID](%%doc.openid%%)."
+
+#: actions/public.php:125
+msgid "Public Stream Feed (RSS 1.0)"
+msgstr "Kanał publicznego strumienia (RSS 1.0)"
+
+#: actions/public.php:130
+msgid "Public Stream Feed (RSS 2.0)"
+msgstr "Kanał publicznego strumienia (RSS 2.0)"
+
+#: actions/public.php:135
+msgid "Public Stream Feed (Atom)"
+msgstr "Kanał publicznego strumienia (Atom)"
+
+#: actions/public.php:210
+#, php-format
+msgid ""
+"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
+"blogging) service based on the Free Software [Laconica](http://laconi.ca/) "
+"tool. [Join now](%%action.register%%) to share notices about yourself with "
+"friends, family, and colleagues! ([Read more](%%doc.help%%))"
+msgstr ""
+"To jest %%site.name%%, usługa [mikroblogowania](http://en.wikipedia.org/wiki/"
+"Micro-blogging) oparta na wolnym narzędziu [Laconica](http://laconi.ca/). "
+"[Dołącz teraz](%%action.register%%), aby dzielić się wpisami o sobie z "
+"przyjaciółmi, rodziną i kolegami! ([Przeczytaj więcej](%%doc.help%%))"
+
+#: actions/register.php:286
+#, php-format
+msgid ""
+"With this form you can create  a new account. You can then post notices and "
+"link up to friends and colleagues. (Have an [OpenID](http://openid.net/)? "
+"Try our [OpenID registration](%%action.openidlogin%%)!)"
+msgstr ""
+"Za pomocą tego formularza można utworzyć nowe konto. Można wtedy wysyłać "
+"wpisy i połączyć się z przyjaciółmi i kolegami. (Posiadasz identyfikator "
+"[OpenID](http://openid.net/)? Wypróbuj [rejestracji OpenID](%%action."
+"openidlogin%%)!)"
+
+#: actions/register.php:432
+msgid "Creative Commons Attribution 3.0"
+msgstr "Creative Commons Uznanie Autorstwa 3.0"
+
+#: actions/register.php:433
+msgid ""
+" except this private data: password, email address, IM address, and phone "
+"number."
+msgstr ""
+" poza tymi prywatnymi danymi: hasło, adres e-mail, adres komunikatora i "
+"numer telefonu."
+
+#: actions/showgroup.php:378
+msgid "Created"
+msgstr "Utworzono"
+
+#: actions/showgroup.php:393
+#, php-format
+msgid ""
+"**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en."
+"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
+"[Laconica](http://laconi.ca/) tool. Its members share short messages about "
+"their life and interests. [Join now](%%%%action.register%%%%) to become part "
+"of this group and many more! ([Read more](%%%%doc.help%%%%))"
+msgstr ""
+"**%s** jest grupą użytkowników na %%%%site.name%%%%, usłudze "
+"[mikroblogowania](http://en.wikipedia.org/wiki/Micro-blogging) opartej na "
+"wolnym narzędziu [Laconica](http://laconi.ca/). Jej członkowie dzielą się "
+"krótkimi wiadomościami o swoim życiu i zainteresowaniach. [Dołącz teraz](%%%%"
+"action.register%%%%), aby stać się częścią tej grupy i wiele więcej! "
+"([Przeczytaj więcej](%%%%doc.help%%%%))"
+
+#: actions/showstream.php:147
+msgid "Your profile"
+msgstr "Twój profil"
+
+#: actions/showstream.php:149
+#, php-format
+msgid "%s's profile"
+msgstr "Profil użytkownika %s"
+
+#: actions/showstream.php:163
+#, php-format
+msgid "Notice feed for %s (RSS 1.0)"
+msgstr "Kanał wpisów dla %s (RSS 1.0)"
+
+#: actions/showstream.php:170
+#, php-format
+msgid "Notice feed for %s (RSS 2.0)"
+msgstr "Kanał wpisów dla %s (RSS 2.0)"
+
+#: actions/showstream.php:177
+#, php-format
+msgid "Notice feed for %s (Atom)"
+msgstr "Kanał wpisów dla %s (Atom)"
+
+#: actions/showstream.php:182
+#, php-format
+msgid "FOAF for %s"
+msgstr "FOAF dla %s"
+
+#: actions/showstream.php:237
+msgid "Edit Avatar"
+msgstr "Edytuj awatar"
+
+#: actions/showstream.php:316
+msgid "Edit profile settings"
+msgstr "Edytuj ustawienia profilu"
+
+#: actions/showstream.php:317
+msgid "Edit"
+msgstr "Edytuj"
+
+#: actions/showstream.php:542
+#, php-format
+msgid ""
+"**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en."
+"wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
+"[Laconica](http://laconi.ca/) tool. [Join now](%%%%action.register%%%%) to "
+"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
+msgstr ""
+"**%s** posiada konto na %%%%site.name%%%%, usłudze [mikroblogowania](http://"
+"en.wikipedia.org/wiki/Micro-blogging) opartej na wolnym narzędziu [Laconica]"
+"(http://laconi.ca/). [Dołącz teraz](%%%%action.register%%%%), aby obserwować "
+"wpisy użytkownika **%s** i wiele więcej! ([Przeczytaj więcej](%%%%doc.help%%%"
+"%))"
+
+#: actions/smssettings.php:335
+msgid ""
+"A confirmation code was sent to the phone number you added. Check your phone "
+"for the code and instructions on how to use it."
+msgstr ""
+"Kod potwierdzający został wysłany na dodany numer telefonu. Sprawdź telefon, "
+"czy otrzymałeś kod i instrukcje jak go użyć."
+
+#: actions/twitapifavorites.php:171 lib/mail.php:556
+#, php-format
+msgid ""
+"%1$s just added your notice from %2$s as one of their favorites.\n"
+"\n"
+"In case you forgot, you can see the text of your notice here:\n"
+"\n"
+"%3$s\n"
+"\n"
+"You can see the list of %1$s's favorites here:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Faithfully yours,\n"
+"%5$s\n"
+msgstr ""
+"%1$s właśnie dodał Twój wpis z %2$s jako jeden ze swoich ulubionych.\n"
+"\n"
+"Jeśli go zapomniałeś, tutaj możesz zobaczyć tekst wpisu:\n"
+"\n"
+"%3$s\n"
+"\n"
+"Tutaj możesz zobaczyć listę ulubionych wpisów użytkownika %1$s:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Z poważaniem,\n"
+"%5$s\n"
+
+#: actions/twitapistatuses.php:124
+msgid "No such user!"
+msgstr "Nie ma takiego użytkownika!"
+
+#: actions/twittersettings.php:72
+msgid ""
+"Add your Twitter account to automatically send  your notices to Twitter, and "
+"subscribe to Twitter friends already here."
+msgstr ""
+"Dodaj konto Twittera, aby automatycznie wysyłać wpisy do Twittera i "
+"zasubskrybować przyjaciół z Twittera, którzy już tu są."
+
+#: actions/twittersettings.php:345
+#, php-format
+msgid "Unable to retrieve account information For \"%s\" from Twitter."
+msgstr "Nie można pobrać informacji o koncie dla \"%s\" z Twittera."
+
+#: actions/userauthorization.php:86
+msgid ""
+"Please check these details to make sure that you want to subscribe to this "
+"user's notices. If you didn't just ask to subscribe to someone's notices, "
+"click \"Reject\"."
+msgstr ""
+"Sprawdź te szczegóły, aby upewnić się, czy na pewno chcesz zasubskrybować "
+"wpisy tego użytkownika. Jeżeli nie prosiłeś o subskrypcję czyichś wpisów, "
+"naciśnij \"Odrzuć\"."
+
+#: actions/usergroups.php:131
+msgid "Search for more groups"
+msgstr "Znajdź więcej grup"
+
+#: classes/Notice.php:138
+msgid ""
+"Too many duplicate messages too quickly; take a breather and post again in a "
+"few minutes."
+msgstr ""
+"Za dużo takich samych wiadomości w za krótkim czasie, weź głęboki oddech i "
+"wyślij ponownie za kilka minut."
+
+#: lib/action.php:406
+msgid "Connect to SMS, Twitter"
+msgstr "Połącz z SMS, Twitterem"
+
+#: lib/action.php:671
+msgid "Badge"
+msgstr "Odznaka"
+
+#: lib/command.php:113
+#, php-format
+msgid ""
+"Subscriptions: %1$s\n"
+"Subscribers: %2$s\n"
+"Notices: %3$s"
 msgstr ""
+"Subskrypcje: %1$s\n"
+"Subskrybenci: %2$s\n"
+"Wpisy: %3$s"
 
-#, fuzzy
-#~ msgid "Delete my account"
-#~ msgstr "Załóż nowe konto"
+#: lib/command.php:392
+msgid ""
+"Commands:\n"
+"on - turn on notifications\n"
+"off - turn off notifications\n"
+"help - show this help\n"
+"follow <nickname> - subscribe to user\n"
+"leave <nickname> - unsubscribe from user\n"
+"d <nickname> <text> - direct message to user\n"
+"get <nickname> - get last notice from user\n"
+"whois <nickname> - get profile info on user\n"
+"fav <nickname> - add user's last notice as a 'fave'\n"
+"stats - get your stats\n"
+"stop - same as 'off'\n"
+"quit - same as 'off'\n"
+"sub <nickname> - same as 'follow'\n"
+"unsub <nickname> - same as 'leave'\n"
+"last <nickname> - same as 'get'\n"
+"on <nickname> - not yet implemented.\n"
+"off <nickname> - not yet implemented.\n"
+"nudge <nickname> - not yet implemented.\n"
+"invite <phone number> - not yet implemented.\n"
+"track <word> - not yet implemented.\n"
+"untrack <word> - not yet implemented.\n"
+"track off - not yet implemented.\n"
+"untrack all - not yet implemented.\n"
+"tracks - not yet implemented.\n"
+"tracking - not yet implemented.\n"
+msgstr ""
+"Polecenia:\n"
+"on - włącza powiadomienia\n"
+"off - wyłącza powiadomienia\n"
+"help - wyświetla tę pomoc\n"
+"follow <pseudonim> - subskrybuje użytkownika\n"
+"leave <pseudonim> - rezygnuje z subskrypcji użytkownika\n"
+"d <pseudonim> <tekst> - bezpośrednia wiadomość do użytkownika\n"
+"get <pseudonim> - uzyskuje ostatni wpis użytkownika\n"
+"whois <pseudonim> - uzyskuje informacje o profilu użytkownika\n"
+"fav <pseudonim> - dodaje ostatni wpis użytkownika jako \"ulubiony\"\n"
+"stats - uzyskuje Twoje statystyki\n"
+"stop - to samo co \"off\"\n"
+"quit - to samo co \"off\"\n"
+"sub <pseudonim> - to samo co \"follow\"\n"
+"unsub <pseudonim> - to samo co \"leave\"\n"
+"last <pseudonim> - to samo co \"get\"\n"
+"on <pseudonim> - jeszcze nie zaimplementowano.\n"
+"off <pseudonim> - jeszcze nie zaimplementowano.\n"
+"nudge <pseudonim> - jeszcze nie zaimplementowano.\n"
+"invite <numer telefonu> - jeszcze nie zaimplementowano.\n"
+"track <słowo> - jeszcze nie zaimplementowano.\n"
+"untrack <słowo> - jeszcze nie zaimplementowano.\n"
+"track off - jeszcze nie zaimplementowano.\n"
+"untrack all - jeszcze nie zaimplementowano.\n"
+"tracks - jeszcze nie zaimplementowano.\n"
+"tracking - jeszcze nie zaimplementowano.\n"
+
+#: lib/dberroraction.php:60
+msgid "Database error"
+msgstr "Błąd bazy danych"
 
-#~ msgid "Couldn't confirm email."
-#~ msgstr "Nie można potwierdzić e-maila."
+#: lib/facebookaction.php:271
+#, php-format
+msgid ""
+"To use the %s Facebook Application you need to login with your username and "
+"password. Don't have a username yet? "
+msgstr ""
+"Aby użyć aplikacji Facebook %s, musisz się zalogować za pomocą nazwy "
+"użytkownika i hasła. Nie masz jeszcze nazwy użytkownika? "
 
-#~ msgid "Email address"
-#~ msgstr "Adres e-mailowy"
+#: lib/feed.php:85
+msgid "RSS 1.0"
+msgstr "RSS 1.0"
+
+#: lib/feed.php:87
+msgid "RSS 2.0"
+msgstr "RSS 2.0"
+
+#: lib/feed.php:89
+msgid "Atom"
+msgstr "Atom"
+
+#: lib/feed.php:91
+msgid "FOAF"
+msgstr "FOAF"
+
+#: lib/imagefile.php:75
+#, php-format
+msgid "That file is too big. The maximum file size is %d."
+msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %d."
+
+#: lib/mail.php:175
+#, php-format
+msgid ""
+"Hey, %s.\n"
+"\n"
+"Someone just entered this email address on %s.\n"
+"\n"
+"If it was you, and you want to confirm your entry, use the URL below:\n"
+"\n"
+"\t%s\n"
+"\n"
+"If not, just ignore this message.\n"
+"\n"
+"Thanks for your time, \n"
+"%s\n"
+msgstr ""
+"Cześć, %s.\n"
+"\n"
+"Ktoś właśnie podał ten adres e-mail na %s.\n"
+"\n"
+"Jeśli to byłeś Ty, i chcesz potwierdzić swoje wejście, użyj poniższego "
+"adresu URL:\n"
+"\n"
+"\t%s\n"
+"\n"
+"Jeśli to nie ty, po prostu zignoruj tę wiadomość.\n"
+"\n"
+"Dziękujemy za Twój czas, \n"
+"%s\n"
+
+#: lib/mail.php:241
+#, php-format
+msgid ""
+"%1$s is now listening to your notices on %2$s.\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"%4$s%5$s%6$s\n"
+"Faithfully yours,\n"
+"%7$s.\n"
+"\n"
+"----\n"
+"Change your email address or notification options at %8$s\n"
+msgstr ""
+"Użytkownik %1$s obserwuje teraz Twoje wpisy na %2$s.\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"%4$s%5$s%6$s\n"
+"Z poważaniem,\n"
+"%7$s.\n"
+"\n"
+"----\n"
+"Zmień adres e-mail lub opcje powiadamiania na %8$s\n"
+
+#: lib/mail.php:466
+#, php-format
+msgid ""
+"%1$s (%2$s) is wondering what you are up to these days and is inviting you "
+"to post some news.\n"
+"\n"
+"So let's hear from you :)\n"
+"\n"
+"%3$s\n"
+"\n"
+"Don't reply to this email; it won't get to them.\n"
+"\n"
+"With kind regards,\n"
+"%4$s\n"
+msgstr ""
+"Użytkownik %1$s (%2$s) zastanawia się, co się z Tobą dzieje w ostatnich "
+"dniach i zaprasza Cię do wysłania jakichś aktualności.\n"
+"\n"
+"Tak więc do usłyszenia. :)\n"
+"\n"
+"%3$s\n"
+"\n"
+"Nie odpowiadaj na tę wiadomość e-mail, nie dotrze ona do nich.\n"
+"\n"
+"Z poważaniem,\n"
+"%4$s\n"
+
+#: lib/mail.php:513
+#, php-format
+msgid ""
+"%1$s (%2$s) sent you a private message:\n"
+"\n"
+"------------------------------------------------------\n"
+"%3$s\n"
+"------------------------------------------------------\n"
+"\n"
+"You can reply to their message here:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Don't reply to this email; it won't get to them.\n"
+"\n"
+"With kind regards,\n"
+"%5$s\n"
+msgstr ""
+"Użytkownik %1$s (%2$s) wysłał Ci prywatną wiadomość:\n"
+"\n"
+"------------------------------------------------------\n"
+"%3$s\n"
+"------------------------------------------------------\n"
+"\n"
+"Tutaj możesz na nią odpowiedzieć:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Nie odpowiadaj na tę wiadomość e-mail, nie dotrze ona do nich.\n"
+"\n"
+"Z poważaniem,\n"
+"%5$s\n"
+
+#: lib/mail.php:598
+#, php-format
+msgid "%s sent a notice to your attention"
+msgstr "Użytkownik %s wysłał wpis wymagający Twojej uwagi"
+
+#: lib/mail.php:600
+#, php-format
+msgid ""
+"%1$s just sent a notice to your attention (an '@-reply') on %2$s.\n"
+"\n"
+"The notice is here:\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"It reads:\n"
+"\n"
+"\t%4$s\n"
+"\n"
+"You can reply back here:\n"
+"\n"
+"\t%5$s\n"
+"\n"
+"The list of all @-replies for you here:\n"
+"\n"
+"%6$s\n"
+"\n"
+"Faithfully yours,\n"
+"%2$s\n"
+"\n"
+"P.S. You can turn off these email notifications here: %7$s\n"
+msgstr ""
+"Użytkownik %1$s właśnie wysłał wpis wymagający Twojej uwagi (odpowiedź \"@"
+"\") na %2$s.\n"
+"\n"
+"Twój wpis znajduje się tutaj:\n"
+"\n"
+"\t%3$s\n"
+"\n"
+"Zawiera tekst:\n"
+"\n"
+"\t%4$s\n"
+"\n"
+"Tutaj możesz odpowiedzieć:\n"
+"\n"
+"\t%5$s\n"
+"\n"
+"Lista wszystkich odpowiedzi \"@\" do Ciebie znajduje się tutaj:\n"
+"\n"
+"%6$s\n"
+"\n"
+"Z poważaniem,\n"
+"%2$s\n"
+"\n"
+"PS Tutaj możesz wyłączyć te powiadomienia przez e-mail: %7$s\n"
 
-#~ msgid "Error inserting notice"
-#~ msgstr "Błąd przy wprowadzaniu wpisu"
+#: lib/searchaction.php:122
+msgid "Search site"
+msgstr "Znajdź stronę"
 
-#~ msgid ""
-#~ "If you've forgotten or lost your password, you can get a new one sent  "
-#~ "the email address you have stored  in your account."
-#~ msgstr ""
-#~ "Jeśli Twoje hasło gdzieś się zapodziało lub zostało zapomniane to możesz "
-#~ "wygenerować nowe. Zostanie ono wysłane na adres e-mailowy skojarzony z "
-#~ "Twoim kontem."
+#: lib/section.php:106
+msgid "More..."
+msgstr "Więcej..."
index 56a26176b1ee0104df0896d4794b157a12b4e77c..881ead99ec29d091d5a13729b9fa1d3eb8f87076 100644 (file)
@@ -99,7 +99,7 @@ class LinkbackPlugin extends Plugin
 
         if (array_key_exists('X-Pingback', $result->headers)) {
             $pb = $result->headers['X-Pingback'];
-        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?/?>/',
+        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?\/?>/',
                               $result->body,
                               $match)) {
             $pb = $match[1];
index 924fc45453ecc2ef08d5b570962c38d27ab6d839..8b6e974c0aa7af3a87cca507ccfbf10f4d6b1920 100755 (executable)
@@ -54,6 +54,13 @@ class JabberQueueHandler extends XmppQueueHandler
     }
 }
 
+// Abort immediately if xmpp is not enabled, otherwise the daemon chews up
+// lots of CPU trying to connect to unconfigured servers
+if (common_config('xmpp','enabled')==false) {
+    print "Aborting daemon - xmpp is disabled\n";
+    exit();
+}
+
 ini_set("max_execution_time", "0");
 ini_set("max_input_time", "0");
 set_time_limit(0);
@@ -63,4 +70,4 @@ $resource = ($argc > 1) ? $argv[1] : (common_config('xmpp','resource') . '-queue
 
 $handler = new JabberQueueHandler($resource);
 
-$handler->runOnce();
\ No newline at end of file
+$handler->runOnce();
index 5075c12df578aeeec4f45ce8db0bc430902dfe6f..b0fa22d438e6a66c0c3931e33965a739e4afe087 100755 (executable)
@@ -52,6 +52,13 @@ class PublicQueueHandler extends XmppQueueHandler
     }
 }
 
+// Abort immediately if xmpp is not enabled, otherwise the daemon chews up
+// lots of CPU trying to connect to unconfigured servers
+if (common_config('xmpp','enabled')==false) {
+    print "Aborting daemon - xmpp is disabled\n";
+    exit();
+}
+
 ini_set("max_execution_time", "0");
 ini_set("max_input_time", "0");
 set_time_limit(0);
diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php
new file mode 100644 (file)
index 0000000..0d2eaea
--- /dev/null
@@ -0,0 +1,83 @@
+#!/usr/bin/env php
+<?php
+/*
+ * Laconica - a distributed open-source microblogging tool
+ * Copyright (C) 2009, Control Yourself, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+# Abort if called from a web server
+if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
+    print "This script must be run from the command line\n";
+    exit(1);
+}
+
+ini_set("max_execution_time", "0");
+ini_set("max_input_time", "0");
+set_time_limit(0);
+mb_internal_encoding('UTF-8');
+
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
+define('LACONICA', true);
+
+require_once(INSTALLDIR . '/lib/common.php');
+
+$user = new User();
+if ($argc > 1) {
+    $user->whereAdd('id > ' . $argv[1]);
+}
+$cnt = $user->find();
+
+while ($user->fetch()) {
+
+    $inbox_entry = new Notice_inbox();
+    $inbox_entry->user_id = $user->id;
+    $inbox_entry->orderBy('created DESC');
+    $inbox_entry->limit(1000, 1);
+
+    $id = null;
+
+    if ($inbox_entry->find(true)) {
+        $id = $inbox_entry->notice_id;
+    }
+
+    $inbox_entry->free();
+    unset($inbox_entry);
+
+    if (is_null($id)) {
+        continue;
+    }
+
+    $start = microtime(true);
+
+    $old_inbox = new Notice_inbox();
+    $cnt = $old_inbox->query('DELETE from notice_inbox WHERE user_id = ' . $user->id . ' AND notice_id < ' . $id);
+    $old_inbox->free();
+    unset($old_inbox);
+
+    print "Deleted $cnt notices for $user->nickname ($user->id).\n";
+
+    $finish = microtime(true);
+
+    $delay = 3.0 * ($finish - $start);
+
+    print "Delaying $delay seconds...";
+    
+    // Wait to let slaves catch up
+
+    usleep($delay * 1000000);
+    
+    print "DONE.\n";
+}
index 2b8b085ce8ec568ba2f1fad4cd000e3816ab2b3c..7f39235fed8464f7e3847990c3976d75e7bd05b8 100755 (executable)
@@ -140,6 +140,13 @@ class XmppConfirmHandler extends XmppQueueHandler
     }
 }
 
+// Abort immediately if xmpp is not enabled, otherwise the daemon chews up
+// lots of CPU trying to connect to unconfigured servers
+if (common_config('xmpp','enabled')==false) {
+    print "Aborting daemon - xmpp is disabled\n";
+    exit();
+}
+
 ini_set("max_execution_time", "0");
 ini_set("max_input_time", "0");
 set_time_limit(0);
index 5711f715dfeffff4d8b123c80a78dca5b982541c..b79fa1b3ba0145101e167ddafea80fdd67ca3fc8 100755 (executable)
@@ -314,6 +314,13 @@ class XMPPDaemon extends Daemon
     }
 }
 
+// Abort immediately if xmpp is not enabled, otherwise the daemon chews up
+// lots of CPU trying to connect to unconfigured servers
+if (common_config('xmpp','enabled')==false) {
+    print "Aborting daemon - xmpp is disabled\n";
+    exit();
+}
+
 ini_set("max_execution_time", "0");
 ini_set("max_input_time", "0");
 set_time_limit(0);
index 3b4a2a4b302e39169cc63d0be72c5985003461aa..2fb1c007fc46abe5217859f458aa3dc5070226e3 100644 (file)
@@ -29,6 +29,7 @@ h1 {
 font-size:1.4em;
 margin-bottom:18px;
 }
+#showstream h1 { display:none; }
 h2 { font-size:1.3em; }
 h3 { font-size:1.2em; }
 h4 { font-size:1.1em; }
@@ -607,7 +608,9 @@ border-radius:4px;
 -moz-border-radius:4px;
 -webkit-border-radius:4px;
 }
-
+.entity_actions .accept {
+margin-bottom:18px;
+}
 
 .entity_tags ul {
 list-style-type:none;
@@ -918,6 +921,10 @@ padding:0;
 }
 
 
+#usergroups #new_group {
+float: left;
+margin-right: 2em;
+}
 #new_group, #group_search {
 margin-bottom:18px;
 }
@@ -1158,4 +1165,4 @@ display:none;
 }
 .guide {
 clear:both;
-}
\ No newline at end of file
+}
index 42e29374f1c571c2bd6deb6e421aea271b7955f5..69a600cc286303440516d5038f8c59c6df5dd0ee 100644 (file)
@@ -7,6 +7,8 @@
  * @link      http://laconi.ca/
  */
 
+@import url(../../base/css/display.css);
+
 html,
 body,
 a:active {
@@ -70,7 +72,6 @@ border-top-color:#D1D9E4;
 border-top-color:#97BFD1;
 }
 
-
 #content .notice p.entry-content a:visited {
 background-color:#fcfcfc;
 }
@@ -82,7 +83,6 @@ background-color:#fcfffc;
 background-color:#CEE1E9;
 }
 
-
 #notice_text-count {
 color:#333;
 }
@@ -112,7 +112,6 @@ background-color:rgba(255, 255, 255, 0.2);
 background-color:rgba(255, 255, 255, 0.7);
 }
 
-
 .error {
 background-color:#F7E8E8;
 }
@@ -120,7 +119,6 @@ background-color:#F7E8E8;
 background-color:#EFF3DC;
 }
 
-
 #anon_notice {
 background-color:#97BFD1;
 color:#fff;
@@ -131,7 +129,6 @@ border-color:#fff;
 background-color:#A9BF4F;
 }
 
-
 #export_data li a {
 background-repeat:no-repeat;
 background-position:0 45%;
@@ -164,7 +161,8 @@ background-color:#A9BF4F;
 color:#fff;
 }
 .form_user_unsubscribe input.submit,
-.form_group_leave input.submit {
+.form_group_leave input.submit,
+.form_user_authorization input.reject {
 background-color:#97BFD1;
 }
 
@@ -183,8 +181,6 @@ background-image:url(../images/icons/twotone/green/mail.gif);
 background-image:url(../images/icons/twotone/green/shield.gif);
 }
 
-
-
 /* NOTICES */
 .notices li.over {
 background-color:#fcfcfc;
@@ -227,14 +223,9 @@ background-color:#fcfcfc;
 }
 /*END: NOTICES */
 
-
 #new_group a {
 background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%;
 }
-#usergroups #new_group {
-float: left;
-margin-right: 2em;
-}
 
 .pagination .nav_prev a,
 .pagination .nav_next a {
index 8edb005a68ae7b74b79c9619eae7c36e5a7dfd25..d05578d4395c1794affa3030d44c07f3ffbe8e54 100644 (file)
@@ -7,6 +7,8 @@
  * @link      http://laconi.ca/
  */
 
+@import url(../../base/css/display.css);
+
 html,
 body,
 a:active {
@@ -70,7 +72,6 @@ border-top-color:#CEE1E9;
 border-top-color:#87B4C8;
 }
 
-
 #content .notice p.entry-content a:visited {
 background-color:#fcfcfc;
 }
@@ -82,7 +83,6 @@ background-color:#fcfffc;
 background-color:#CEE1E9;
 }
 
-
 #notice_text-count {
 color:#333;
 }
@@ -112,7 +112,6 @@ background-color:rgba(135, 180, 200, 0.3);
 background-color:rgba(255, 255, 255, 0.7);
 }
 
-
 .error {
 background-color:#F7E8E8;
 }
@@ -120,7 +119,6 @@ background-color:#F7E8E8;
 background-color:#EFF3DC;
 }
 
-
 #anon_notice {
 background-color:#87B4C8;
 color:#fff;
@@ -131,7 +129,6 @@ border-color:#fff;
 background-color:#9BB43E;
 }
 
-
 #export_data li a {
 background-repeat:no-repeat;
 background-position:0 45%;
@@ -164,7 +161,8 @@ background-color:#9BB43E;
 color:#fff;
 }
 .form_user_unsubscribe input.submit,
-.form_group_leave input.submit {
+.form_group_leave input.submit,
+.form_user_authorization input.reject {
 background-color:#87B4C8;
 }
 
@@ -183,8 +181,6 @@ background-image:url(../images/icons/twotone/green/mail.gif);
 background-image:url(../images/icons/twotone/green/shield.gif);
 }
 
-
-
 /* NOTICES */
 .notices li.over {
 background-color:#fcfcfc;
@@ -227,14 +223,9 @@ background-color:#fcfcfc;
 }
 /*END: NOTICES */
 
-
 #new_group a {
 background:transparent url(../images/icons/twotone/green/news.gif) no-repeat 0 45%;
 }
-#usergroups #new_group {
-float: left;
-margin-right: 2em;
-}
 
 .pagination .nav_prev a,
 .pagination .nav_next a {
index 6ac471c1e87372591345c160abc756606a46ba93..1838a8e86e5587e048744651483cd3d831ce2224 100644 (file)
@@ -2,6 +2,8 @@
 /* Design & CSS by Marie-Claude Doyon http://www.marieclaudedoyon.com */
 /* Simplified for mobile by Ken Sheppardson http://identi.ca/kshep    */
 
+@import url(../../base/css/display.css);
+
 html {}
 body {
   width: 100%;
@@ -28,7 +30,6 @@ h1 {
   font-size: 1.2em;
 }
 
-
 #wrap {
   margin: 0;
 }
@@ -196,7 +197,7 @@ p#branding a {
 }
 .instructions a:hover, .success a:hover, .error a:hover {
   color: #FCFFF5;
-}    
+}
 .success {
   clear: both;
   float: left;
@@ -210,7 +211,6 @@ p#branding a {
   background-color: #ce3728;
 }
 
-
 /* ----- Stream -----*/
 
 #notices {
@@ -273,7 +273,7 @@ p.time {
 p.time a {
   color: #91AA9D;
 }
-  
+
 /* ----- Profile -----*/
 #profile {
   clear: both;
@@ -356,7 +356,7 @@ dl.statistics {
   clear: left;
   float: left;
   width: 200px;
-}  
+}
 .statistics dd {
   float: left;
 }
@@ -402,8 +402,6 @@ ul.subscriptions li, ul.subscribers li {
 }
 /* ----- End Subscriptions & Subscribers -----*/
 
-
-
 #pagination {
   margin: 18px auto;
 }
@@ -488,7 +486,7 @@ input#submit:hover, input.submit:hover {
 input.checkbox {
   width: auto;
   border: 0;
-}  
+}
 textarea, input {
   font-family: Verdana, Arial, Helvetica, sans-serif;
   font-size: 1em;
@@ -629,7 +627,7 @@ input#openid_url {
 #profiles a:hover {
   text-decoration: underline;
 }
-  
+
 .profile_single {
   clear: both;
   display: block;