]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch '0.9.x'
authorEvan Prodromou <evan@status.net>
Thu, 23 Sep 2010 13:50:46 +0000 (09:50 -0400)
committerEvan Prodromou <evan@status.net>
Thu, 23 Sep 2010 13:50:46 +0000 (09:50 -0400)
336 files changed:
actions/apiaccountupdatedeliverydevice.php
actions/apiaccountupdateprofile.php
actions/apiaccountupdateprofilebackgroundimage.php
actions/apiaccountupdateprofilecolors.php
actions/apiaccountupdateprofileimage.php
actions/apiblockcreate.php
actions/apiblockdestroy.php
actions/apidirectmessage.php
actions/apidirectmessagenew.php
actions/apifavoritecreate.php
actions/apifavoritedestroy.php
actions/apifriendshipscreate.php
actions/apifriendshipsdestroy.php
actions/apigroupcreate.php
actions/apigroupjoin.php
actions/apigroupleave.php
actions/apigrouplist.php
actions/apigrouplistall.php
actions/apigroupmembership.php
actions/apigroupshow.php
actions/apimediaupload.php
actions/apistatusesretweet.php
actions/apistatusesshow.php
actions/apistatusesupdate.php
actions/apisubscriptions.php
actions/apitimelinefavorites.php
actions/apitimelinefriends.php
actions/apitimelinegroup.php
actions/apitimelinehome.php
actions/apitimelinementions.php
actions/apitimelinepublic.php
actions/apitimelinetag.php
actions/apitimelineuser.php
actions/editapplication.php
actions/emailsettings.php
actions/groupmembers.php
actions/imsettings.php
actions/newapplication.php
actions/oauthconnectionssettings.php
actions/shownotice.php
classes/Fave.php
classes/Group_member.php
classes/Notice.php
classes/Subscription.php
classes/User.php
db/notice_source.sql
lib/action.php
lib/activity.php
lib/activitycontext.php
lib/activityobject.php
lib/activityutils.php
lib/activityverb.php
lib/adminform.php
lib/adminpanelaction.php
lib/apiaction.php
lib/apiauth.php
lib/apibareauth.php
lib/apioauth.php
lib/apioauthstore.php
lib/apiprivateauth.php
lib/applicationeditform.php
lib/applicationlist.php
lib/atomusernoticefeed.php
lib/attachmentnoticesection.php
lib/attachmenttagcloudsection.php
lib/blockform.php
lib/command.php
lib/dbqueuemanager.php
lib/groupnav.php
lib/htmloutputter.php
lib/mediafile.php
lib/oauthstore.php
lib/plugin.php
lib/searchaction.php
lib/unblockform.php
lib/useractivitystream.php [new file with mode: 0644]
lib/util.php
locale/af/LC_MESSAGES/statusnet.po
locale/ar/LC_MESSAGES/statusnet.po
locale/arz/LC_MESSAGES/statusnet.po
locale/bg/LC_MESSAGES/statusnet.po
locale/br/LC_MESSAGES/statusnet.po
locale/ca/LC_MESSAGES/statusnet.po
locale/cs/LC_MESSAGES/statusnet.po
locale/da/LC_MESSAGES/statusnet.po
locale/de/LC_MESSAGES/statusnet.po
locale/el/LC_MESSAGES/statusnet.po
locale/en_GB/LC_MESSAGES/statusnet.po
locale/eo/LC_MESSAGES/statusnet.po
locale/es/LC_MESSAGES/statusnet.po
locale/fa/LC_MESSAGES/statusnet.po
locale/fi/LC_MESSAGES/statusnet.po
locale/fr/LC_MESSAGES/statusnet.po
locale/ga/LC_MESSAGES/statusnet.po
locale/gl/LC_MESSAGES/statusnet.po
locale/he/LC_MESSAGES/statusnet.po
locale/hsb/LC_MESSAGES/statusnet.po
locale/ia/LC_MESSAGES/statusnet.po
locale/is/LC_MESSAGES/statusnet.po
locale/it/LC_MESSAGES/statusnet.po
locale/ja/LC_MESSAGES/statusnet.po
locale/ka/LC_MESSAGES/statusnet.po
locale/ko/LC_MESSAGES/statusnet.po
locale/mk/LC_MESSAGES/statusnet.po
locale/nb/LC_MESSAGES/statusnet.po
locale/nl/LC_MESSAGES/statusnet.po
locale/nn/LC_MESSAGES/statusnet.po
locale/pl/LC_MESSAGES/statusnet.po
locale/pt/LC_MESSAGES/statusnet.po
locale/pt_BR/LC_MESSAGES/statusnet.po
locale/ru/LC_MESSAGES/statusnet.po
locale/statusnet.pot
locale/sv/LC_MESSAGES/statusnet.po
locale/te/LC_MESSAGES/statusnet.po
locale/tr/LC_MESSAGES/statusnet.po
locale/uk/LC_MESSAGES/statusnet.po
locale/vi/LC_MESSAGES/statusnet.po
locale/zh_CN/LC_MESSAGES/statusnet.po
locale/zh_TW/LC_MESSAGES/statusnet.po
plugins/APC/APCPlugin.php [new file with mode: 0644]
plugins/APC/locale/APC.pot [new file with mode: 0644]
plugins/APCPlugin.php [deleted file]
plugins/Adsense/AdsensePlugin.php
plugins/Adsense/adsenseadminpanel.php
plugins/Adsense/locale/Adsense.pot [new file with mode: 0644]
plugins/AutoSandbox/AutoSandboxPlugin.php
plugins/AutoSandbox/locale/AutoSandbox.pot
plugins/Autocomplete/AutocompletePlugin.php
plugins/Autocomplete/autocomplete.php
plugins/Autocomplete/locale/Autocomplete.pot
plugins/BitlyUrl/BitlyUrlPlugin.php
plugins/BitlyUrl/locale/BitlyUrl.pot
plugins/Blacklist/BlacklistPlugin.php
plugins/Blacklist/Homepage_blacklist.php
plugins/Blacklist/Nickname_blacklist.php
plugins/Blacklist/blacklistadminpanel.php
plugins/Blacklist/locale/Blacklist.pot
plugins/BlankAd/BlankAdPlugin.php
plugins/BlogspamNet/BlogspamNetPlugin.php [new file with mode: 0644]
plugins/BlogspamNetPlugin.php [deleted file]
plugins/CacheLog/CacheLogPlugin.php [new file with mode: 0644]
plugins/CacheLog/locale/CacheLog.pot [new file with mode: 0644]
plugins/CacheLogPlugin.php [deleted file]
plugins/CasAuthentication/CasAuthenticationPlugin.php
plugins/CasAuthentication/caslogin.php
plugins/CasAuthentication/locale/CasAuthentication.pot
plugins/ClientSideShorten/ClientSideShortenPlugin.php
plugins/ClientSideShorten/locale/ClientSideShorten.pot
plugins/ClientSideShorten/shorten.php
plugins/Comet/CometPlugin.php
plugins/Comet/README
plugins/DirectionDetector/DirectionDetectorPlugin.php
plugins/DirectionDetector/jquery.DirectionDetector.js [new file with mode: 0644]
plugins/DirectionDetector/locale/DirectionDetector.pot
plugins/DiskCache/DiskCachePlugin.php [new file with mode: 0644]
plugins/DiskCachePlugin.php [deleted file]
plugins/Disqus/DisqusPlugin.php [new file with mode: 0644]
plugins/Disqus/locale/Disqus.pot [new file with mode: 0644]
plugins/DisqusPlugin.php [deleted file]
plugins/Echo/EchoPlugin.php [new file with mode: 0644]
plugins/Echo/locale/Echo.pot [new file with mode: 0644]
plugins/EchoPlugin.php [deleted file]
plugins/EmailAuthentication/EmailAuthenticationPlugin.php
plugins/EmailAuthentication/locale/EmailAuthentication.pot
plugins/Enjit/enjitqueuehandler.php
plugins/Facebook/FBC_XDReceiver.php
plugins/Facebook/FBConnectAuth.php
plugins/Facebook/FBConnectLogin.php
plugins/Facebook/FBConnectSettings.php
plugins/Facebook/FacebookPlugin.php
plugins/Facebook/facebookaction.php
plugins/Facebook/facebookadminpanel.php
plugins/Facebook/facebookhome.php
plugins/Facebook/facebookinvite.php
plugins/Facebook/facebooklogin.php
plugins/Facebook/facebooknoticeform.php
plugins/Facebook/facebookremove.php
plugins/Facebook/facebooksettings.php
plugins/Facebook/facebookutil.php
plugins/Facebook/locale/Facebook.pot
plugins/FirePHP/FirePHPPlugin.php
plugins/FirePHP/locale/FirePHP.pot
plugins/GeoURL/GeoURLPlugin.php [new file with mode: 0644]
plugins/GeoURL/locale/GeoURL.pot [new file with mode: 0644]
plugins/GeoURLPlugin.php [deleted file]
plugins/Geonames/GeonamesPlugin.php [new file with mode: 0644]
plugins/Geonames/locale/Geonames.pot [new file with mode: 0644]
plugins/GeonamesPlugin.php [deleted file]
plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php [new file with mode: 0644]
plugins/GoogleAnalytics/locale/GoogleAnalytics.pot [new file with mode: 0644]
plugins/GoogleAnalyticsPlugin.php [deleted file]
plugins/Gravatar/GravatarPlugin.php
plugins/Gravatar/README
plugins/Gravatar/locale/Gravatar.pot
plugins/Imap/ImapPlugin.php
plugins/Imap/imapmanager.php
plugins/Imap/locale/Imap.pot
plugins/InfiniteScroll/locale/InfiniteScroll.pot
plugins/LdapAuthentication/locale/LdapAuthentication.pot
plugins/LdapAuthorization/locale/LdapAuthorization.pot
plugins/LdapCommon/LdapCommon.php
plugins/LdapCommon/MemcacheSchemaCache.php
plugins/LilUrl/LilUrlPlugin.php
plugins/LilUrl/locale/LilUrl.pot
plugins/Linkback/LinkbackPlugin.php [new file with mode: 0644]
plugins/Linkback/locale/Linkback.pot [new file with mode: 0644]
plugins/LinkbackPlugin.php [deleted file]
plugins/Mapstraction/MapstractionPlugin.php
plugins/Mapstraction/allmap.php
plugins/Mapstraction/locale/Mapstraction.pot
plugins/Mapstraction/map.php
plugins/Mapstraction/usermap.php
plugins/Memcache/MemcachePlugin.php [new file with mode: 0644]
plugins/Memcache/locale/Memcache.pot [new file with mode: 0644]
plugins/MemcachePlugin.php [deleted file]
plugins/Memcached/MemcachedPlugin.php [new file with mode: 0644]
plugins/Memcached/locale/Memcached.pot [new file with mode: 0644]
plugins/MemcachedPlugin.php [deleted file]
plugins/Meteor/MeteorPlugin.php
plugins/Minify/MinifyPlugin.php
plugins/Minify/locale/Minify.pot
plugins/Minify/minify.php
plugins/MobileProfile/MobileProfilePlugin.php
plugins/MobileProfile/locale/MobileProfile.pot
plugins/NoticeTitle/NoticeTitlePlugin.php
plugins/NoticeTitle/locale/NoticeTitle.pot [new file with mode: 0644]
plugins/OStatus/OStatusPlugin.php
plugins/OStatus/actions/groupsalmon.php
plugins/OStatus/actions/hostmeta.php
plugins/OStatus/actions/ostatusgroup.php
plugins/OStatus/actions/ostatusinit.php
plugins/OStatus/actions/ostatussub.php
plugins/OStatus/actions/ownerxrd.php
plugins/OStatus/actions/pushcallback.php
plugins/OStatus/actions/pushhub.php
plugins/OStatus/actions/usersalmon.php
plugins/OStatus/actions/userxrd.php
plugins/OStatus/classes/FeedSub.php
plugins/OStatus/classes/HubSub.php
plugins/OStatus/classes/Magicsig.php
plugins/OStatus/classes/Ostatus_profile.php
plugins/OStatus/classes/Ostatus_source.php
plugins/OStatus/lib/discovery.php
plugins/OStatus/lib/discoveryhints.php
plugins/OStatus/lib/linkheader.php
plugins/OStatus/lib/magicenvelope.php
plugins/OStatus/lib/ostatusqueuehandler.php
plugins/OStatus/lib/pushinqueuehandler.php
plugins/OStatus/lib/salmon.php
plugins/OStatus/lib/salmonaction.php
plugins/OStatus/lib/xrd.php
plugins/OStatus/lib/xrdaction.php
plugins/OStatus/locale/OStatus.pot
plugins/OStatus/tests/remote-tests.php
plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php
plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot
plugins/OpenID/locale/OpenID.pot
plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php [new file with mode: 0644]
plugins/PiwikAnalytics/locale/PiwikAnalytics.pot [new file with mode: 0644]
plugins/PiwikAnalyticsPlugin.php [deleted file]
plugins/PostDebug/locale/PostDebug.pot
plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php
plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot
plugins/PtitUrl/locale/PtitUrl.pot
plugins/RSSCloud/LoggingAggregator.php
plugins/RSSCloud/RSSCloudNotifier.php
plugins/RSSCloud/RSSCloudPlugin.php
plugins/RSSCloud/RSSCloudQueueHandler.php
plugins/RSSCloud/RSSCloudRequestNotify.php
plugins/RSSCloud/RSSCloudSubscription.php
plugins/RSSCloud/locale/RSSCloud.pot
plugins/Recaptcha/RecaptchaPlugin.php
plugins/Recaptcha/locale/Recaptcha.pot
plugins/RegisterThrottle/RegisterThrottlePlugin.php
plugins/RegisterThrottle/Registration_ip.php
plugins/RegisterThrottle/locale/RegisterThrottle.pot
plugins/RequireValidatedEmail/RequireValidatedEmailPlugin.php
plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot
plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot
plugins/Sample/SamplePlugin.php
plugins/Sample/User_greeting_count.php
plugins/Sample/hello.php
plugins/Sample/locale/Sample.pot
plugins/SimpleUrl/locale/SimpleUrl.pot
plugins/Spotify/SpotifyPlugin.php [new file with mode: 0644]
plugins/SpotifyPlugin.php [deleted file]
plugins/SubMirror/SubMirrorPlugin.php
plugins/SubMirror/actions/addmirror.php
plugins/SubMirror/actions/basemirror.php
plugins/SubMirror/actions/editmirror.php
plugins/SubMirror/actions/mirrorsettings.php
plugins/SubMirror/classes/SubMirror.php
plugins/SubMirror/lib/addmirrorform.php
plugins/SubMirror/lib/editmirrorform.php
plugins/SubMirror/lib/mirrorqueuehandler.php
plugins/SubMirror/locale/SubMirror.pot [new file with mode: 0644]
plugins/SubscriptionThrottle/SubscriptionThrottlePlugin.php [new file with mode: 0644]
plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot [new file with mode: 0644]
plugins/SubscriptionThrottlePlugin.php [deleted file]
plugins/TabFocus/TabFocusPlugin.php
plugins/TabFocus/locale/TabFocus.pot
plugins/Template/TemplatePlugin.php [new file with mode: 0644]
plugins/TemplatePlugin.php [deleted file]
plugins/TightUrl/locale/TightUrl.pot
plugins/TinyMCE/TinyMCEPlugin.php
plugins/TinyMCE/locale/TinyMCE.pot [new file with mode: 0644]
plugins/TwitterBridge/TwitterBridgePlugin.php
plugins/TwitterBridge/Twitter_synch_status.php
plugins/TwitterBridge/daemons/synctwitterfriends.php
plugins/TwitterBridge/daemons/twitterstatusfetcher.php
plugins/TwitterBridge/locale/TwitterBridge.pot
plugins/TwitterBridge/twitter.php
plugins/TwitterBridge/twitteradminpanel.php
plugins/TwitterBridge/twitterauthorization.php
plugins/TwitterBridge/twitterlogin.php
plugins/TwitterBridge/twitteroauthclient.php
plugins/TwitterBridge/twittersettings.php
plugins/UserLimit/UserLimitPlugin.php [new file with mode: 0644]
plugins/UserLimit/locale/UserLimit.pot [new file with mode: 0644]
plugins/UserLimitPlugin.php [deleted file]
plugins/WikiHashtags/WikiHashtagsPlugin.php [new file with mode: 0644]
plugins/WikiHashtags/locale/WikiHashtags.pot [new file with mode: 0644]
plugins/WikiHashtagsPlugin.php [deleted file]
plugins/WikiHowProfile/WikiHowProfilePlugin.php
plugins/WikiHowProfile/locale/WikiHowProfile.pot [new file with mode: 0644]
plugins/XCache/XCachePlugin.php [new file with mode: 0644]
plugins/XCache/locale/XCache.pot [new file with mode: 0644]
plugins/XCachePlugin.php [deleted file]
scripts/backupuser.php [new file with mode: 0644]
scripts/commandline.inc
scripts/importtwitteratom.php
scripts/restoreuser.php [new file with mode: 0644]
scripts/update_po_templates.php
scripts/update_translations.php
theme/cloudy/css/display.css
theme/cloudy/css/ie.css

index 295378aa679ffd238a3f7bb28fa11f68bb462063..2d903cb46087fe51bee5f0afac8d59849e4ac256 100644 (file)
@@ -83,6 +83,7 @@ class ApiAccountUpdateDeliveryDeviceAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error message. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index 9b371ea95764e1f829e7c9bce1eba8cffcb3859a..92d0f6b77141279a6c1b4bbad439b3e54a5858fe 100644 (file)
@@ -86,6 +86,7 @@ class ApiAccountUpdateProfileAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index 3537b9f9793354087c6cf11e9a8bb616dc7ece7d..923fb1d114f0ba1d4b22dcd8fdbb926393825e7c 100644 (file)
@@ -83,6 +83,7 @@ class ApiAccountUpdateProfileBackgroundImageAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index c666f9d7592e6deea13a1d49b07ce70316e7c793..9e07d80de375b1660d22fb334aedc78c9b625e6f 100644 (file)
@@ -107,6 +107,7 @@ class ApiAccountUpdateProfileColorsAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index 153ef7818ee03a9f09cc74bb4b790b8392e516bb..7f868a6eb3253ff1cc5baea8d8ece35e2988a666 100644 (file)
@@ -81,6 +81,7 @@ class ApiAccountUpdateProfileImageAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index b355cd1c7e7e3ed0b6b9dc44abe6d65f6400820a..53844cd2f299e3ec233a4e47da6884301015083d 100644 (file)
@@ -86,6 +86,7 @@ class ApiBlockCreateAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 7ea201677e677fe2c2e0373153bc9a752db3ef7c..871ce66c731fbe796475298daaf0c9ee144d70a9 100644 (file)
@@ -85,6 +85,7 @@ class ApiBlockDestroyAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 7a0f46274cbde24478e222da8bdcbbce2bd50f1a..e7ea38dfa1caad26cd40ed9337044d5243c9589f 100644 (file)
@@ -357,6 +357,7 @@ class ApiDirectMessageAction extends ApiAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       strtotime($this->messages[0]->created),
                       strtotime($this->messages[$last]->created)
index 65d065648ff0337483a3fd5add842546b2133230..44e205ebb04a801c1831a8e57238da358cc1d070 100644 (file)
@@ -106,6 +106,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 0447a92ba2613f04f60acc997dcfcc19b21e10ec..15da010138f1cc7387b71a39def4f49782beee39 100644 (file)
@@ -88,6 +88,7 @@ class ApiFavoriteCreateAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 9f2efdd0033b0afbefdcfb71db3d8bd268d84614..c2e1ebafc7a5d5703455a558a326ec747d23e08f 100644 (file)
@@ -89,6 +89,7 @@ class ApiFavoriteDestroyAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index a7ec5b28a44452996e666d60c36ce72075fc400b..64c857c70c2c4a97dfe3a5e8f666a33d2291480f 100644 (file)
@@ -88,6 +88,7 @@ class ApiFriendshipsCreateAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 551d016823ba143a1057cbac84ca6cbda0f1962e..21da23ef7cbc9500b85991e62fd03e3dada8f844 100644 (file)
@@ -88,6 +88,7 @@ class ApiFriendshipsDestroyAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index d216c15cd4f4be0e6a17c0f9a5083f925756e840..fa443573d66927f7cf4795d5ea0f8da8eab580af 100644 (file)
@@ -102,6 +102,7 @@ class ApiGroupCreateAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
              $this->clientError(
+                 // TRANS: Client error. POST is a HTTP command. It should not be translated.
                  _('This method requires a POST.'),
                  400,
                  $this->format
index 5265ec629ed85a2e205cb5ad5d35571640491071..a0c069974ba12bdbbf77d6640f9ddc08184a842b 100644 (file)
@@ -89,6 +89,7 @@ class ApiGroupJoinAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 8c100d58a83e9bd50db8f68329c35aac139ed436..c838f6c878b5a4cf16d13293b5ffa9058a28cbc5 100644 (file)
@@ -89,6 +89,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 148c802f43b297ecb952e0ea6b759d466f1e45c4..319a1e424d3c15285df9921ddcdb74a7f1d71fc4 100644 (file)
@@ -213,6 +213,7 @@ class ApiGroupListAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       strtotime($this->groups[0]->created),
index a8317608d7feed0d8cec4125bbc13f6650f00093..cc7cd901dcfe052c1307e20c061a3a6205758b92 100644 (file)
@@ -204,6 +204,7 @@ class ApiGroupListAllAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       strtotime($this->groups[0]->created),
                       strtotime($this->groups[$last]->created))
index ffd5c7c7d572ca0226ee9723026362475f839d80..b7f3064b5ad8490fbb3ceaa5e9dd304cef0311ce 100644 (file)
@@ -183,6 +183,7 @@ class ApiGroupMembershipAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->group->id,
                       strtotime($this->profiles[0]->created),
index 2998e505e2174325c244e63d730fe02420076bef..9b90e6b3832df6717c2ef7165f778defa9a55f9a 100644 (file)
@@ -149,6 +149,7 @@ class ApiGroupShowAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->group->id,
                       strtotime($this->group->modified))
index 7aa88c186bcc58c3592393e6d90bda8f7596feaf..54d7fda68fac0c471fadd8f36b724531a477eea4 100644 (file)
@@ -64,6 +64,7 @@ class ApiMediaUploadAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400, $this->format
             );
index 9aa33748544ec5c978453701aacba6265dd20a85..aae98f63786c6d5d5f64dd84845a796d9db1836a 100644 (file)
@@ -62,6 +62,7 @@ class ApiStatusesRetweetAction extends ApiAuthAction
         parent::prepare($args);
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
+            // TRANS: Client error. POST is a HTTP command. It should not be translated.
             $this->clientError(_('This method requires a POST.'),
                                400, $this->format);
             return false;
index 476820a43db2216b17421e50c1a21a123c63c538..84f8079db553a906367d6d2e0dff542cf9e16315 100644 (file)
@@ -194,6 +194,7 @@ class ApiStatusesShowAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->notice->id,
                       strtotime($this->notice->created))
index fa3f611c0a8a59a797691de9087a5211da6be2ee..4715f7002755695d6afecbbab08ef08c85cfe59b 100644 (file)
@@ -195,6 +195,7 @@ class ApiStatusesUpdateAction extends ApiAuthAction
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
index 63d65f2893ca51e37002153b9defd2eac4008d53..749d16f0678c7fa246322193d1dc70fbc7d3a7d5 100644 (file)
@@ -181,6 +181,7 @@ class ApiSubscriptionsAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       isset($this->ids_only) ? 'IDs' : 'Profiles',
index 7228960c0b48bfef8262366987ad7a3954a75407..f5ce5d2fd4d84e8f8111f407cdcfbcfe18d99f4c 100644 (file)
@@ -259,6 +259,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       strtotime($this->notices[0]->created),
index 40ce35979b9005c63f1f1157ff30724cc62f88da..c96391c129e39d23794699a83e30159160db3a3e 100644 (file)
@@ -346,6 +346,7 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
             return '"' . implode(
                                  ':',
                                  array($this->arg('action'),
+                                       common_user_cache_hash($this->auth_user),
                                        common_language(),
                                        $this->user->id,
                                        strtotime($this->notices[0]->created),
index 7a40fd808430b456aaaf5e1f68e586963228a694..5138a4b5e1986210a795907d66364130403d95c3 100644 (file)
@@ -229,6 +229,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->group->id,
                       strtotime($this->notices[0]->created),
index 27eb7416915908535e136ef2c6d45b5922c2de47..1ceb3d902b2f8c4bc09b9273fa9b898f264e8b0b 100644 (file)
@@ -254,6 +254,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       strtotime($this->notices[0]->created),
index ed1ad20e3247a3c8198ff9959d6f5ce4654fcedd..354dc58b6869f1fec229796b3133c1d67d17e4e2 100644 (file)
@@ -244,6 +244,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       strtotime($this->notices[0]->created),
index f901642882ee6a1fd7c4933b2e47cb81dfe4ee19..0119b504a7bb34899f9783455107e955e6df974e 100644 (file)
@@ -311,6 +311,7 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       strtotime($this->notices[0]->created),
                       strtotime($this->notices[$last]->created))
index c7ec172aeb1ded71f53e5c86a9237dd8d6b092a8..712703694fbf48652fdfec2592957b2652a5f829 100644 (file)
@@ -232,6 +232,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->tag,
                       strtotime($this->notices[0]->created),
index 17a2836639650434feb7c20f50e9decfe8c3d4b1..0c97aad21c107ff318137441b8bea475d7e232a9 100644 (file)
@@ -234,6 +234,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
             return '"' . implode(
                 ':',
                 array($this->arg('action'),
+                      common_user_cache_hash($this->auth_user),
                       common_language(),
                       $this->user->id,
                       strtotime($this->notices[0]->created),
index 64cf0a5745d134fcceeb7b214844b45dc86111ec..477bcd6f0b25b79649b2994310e5237de065ca02 100644 (file)
@@ -188,7 +188,7 @@ class EditApplicationAction extends OwnerDesignAction
         } elseif (Oauth_application::descriptionTooLong($description)) {
             $this->showForm(sprintf(
                 _('Description is too long (max %d chars).'),
-                                    Oauth_application::maxDescription()));
+                                    Oauth_application::maxDesc()));
             return;
         } elseif (mb_strlen($source_url) > 255) {
             $this->showForm(_('Source URL is too long.'));
@@ -253,7 +253,10 @@ class EditApplicationAction extends OwnerDesignAction
 
         $result = $this->app->update($orig);
 
-        if (!$result) {
+        // Note: 0 means no rows changed, which can happen if the only
+        // thing we changed was the icon, since it's not altered until
+        // the next step.
+        if ($result === false) {
             common_log_db_error($this->app, 'UPDATE', __FILE__);
             $this->serverError(_('Could not update application.'));
         }
index 6138a88f9055ae5af1a58c42cec29ef2595561ac..9c250fc8a93a97a77d0fc7e3e3b22da18d1e8f60 100644 (file)
@@ -131,7 +131,11 @@ class EmailsettingsAction extends AccountSettingsAction
                 // TRANS: Field label for e-mail address input in e-mail settings form.
                 $this->input('email', _('Email address'),
                              ($this->arg('email')) ? $this->arg('email') : null,
-                             // TRANS: Instructions for e-mail address input form.
+                             // TRANS: Instructions for e-mail address input form. Do not translate
+                             // TRANS: "example.org". It is one of the domain names reserved for
+                             // TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+                             // TRANS: Any other domain may be owned by a legitimate person or
+                             // TRANS: organization.
                              _('Email address, like "UserName@example.org"'));
                 $this->elementEnd('li');
                 $this->elementEnd('ul');
index 54f1d8dcda748e8fb112c6042e9d4a14ac1f0ca7..038d1db68a4af6f7fc46378be06385d704635c44 100644 (file)
@@ -97,9 +97,13 @@ class GroupmembersAction extends GroupDesignAction
     function title()
     {
         if ($this->page == 1) {
+            // TRANS: Title of the page showing group members.
+            // TRANS: %s is the name of the group.
             return sprintf(_('%s group members'),
                            $this->group->nickname);
         } else {
+            // TRANS: Title of the page showing group members.
+            // TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
             return sprintf(_('%1$s group members, page %2$d'),
                            $this->group->nickname,
                            $this->page);
@@ -389,7 +393,14 @@ class GroupBlockForm extends Form
 
     function formActions()
     {
-        $this->out->submit('submit', _('Block'), 'submit', null, _('Block this user'));
+        $this->out->submit(
+            'submit',
+            // TRANS: Button text for the form that will block a user from a group.
+            _m('BUTTON','Block'),
+            'submit',
+            null,
+            // TRANS: Submit button title.
+            _m('TOOLTIP',_('Block this user'));
     }
 }
 
@@ -516,6 +527,13 @@ class MakeAdminForm extends Form
 
     function formActions()
     {
-        $this->out->submit('submit', _('Make Admin'), 'submit', null, _('Make this user an admin'));
+        $this->out->submit(
+          'submit',
+          // TRANS: Button text for the form that will make a user administrator.
+          _m('BUTTON','Make Admin'),
+          'submit',
+          null,
+          // TRANS: Submit button title.
+          _m('TOOLTIP','Make this user an admin'));
     }
 }
index 6691c8dad76e95f53cbcf621810a3490ea813f95..29cbeb82e37a7de1c358af95c7e1c51bace36413 100644 (file)
@@ -137,6 +137,9 @@ class ImsettingsAction extends ConnectSettingsAction
                              ($this->arg('jabber')) ? $this->arg('jabber') : null,
                              // TRANS: IM address input field instructions in IM settings form.
                              // TRANS: %s is the IM address set for the site.
+                             // TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+                             // TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+                             // TRANS: person or organization.
                              sprintf(_('Jabber or GTalk address, '.
                                        'like "UserName@example.org". '.
                                        'First, make sure to add %s to your '.
index 0f819b3499881795e3ce597fd1559846875f7f15..8b150c315139d8c3fdb446685b05d3313c28684f 100644 (file)
@@ -170,7 +170,7 @@ class NewApplicationAction extends OwnerDesignAction
         } elseif (Oauth_application::descriptionTooLong($description)) {
             $this->showForm(sprintf(
                 _('Description is too long (max %d chars).'),
-                Oauth_application::maxDescription()));
+                Oauth_application::maxDesc()));
             return;
         } elseif (empty($source_url)) {
             $this->showForm(_('Source URL is required.'));
index 8a206d7101372f3dd69dd9c6af9e92ec203b2051..1fa70662fc88690c294abc3ad59fe319c769241b 100644 (file)
@@ -80,7 +80,7 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction
 
     function getInstructions()
     {
-        return _('You have allowed the following applications to access you account.');
+        return _('You have allowed the following applications to access your account.');
     }
 
     /**
index 9c5d83441b8688e6ed08b52cf22c9dfdf71f6ba5..86df5f9f30658bdf560ee5be73104e7882639b42 100644 (file)
@@ -151,6 +151,7 @@ class ShownoticeAction extends OwnerDesignAction
           strtotime($this->avatar->modified) : 0;
 
         return 'W/"' . implode(':', array($this->arg('action'),
+                                          common_user_cache_hash(),
                                           common_language(),
                                           $this->notice->id,
                                           strtotime($this->notice->created),
index ed4f56aeef0405b957534495aea326875bca4d9f..f21f1b5297613019a3efc2cc59072d1e2387ee1d 100644 (file)
@@ -129,4 +129,29 @@ class Fave extends Memcached_DataObject
 
         return $ids;
     }
+
+    function asActivity()
+    {
+        $notice  = Notice::staticGet('id', $this->notice_id);
+        $profile = Profile::staticGet('id', $this->user_id);
+
+        $act = new Activity();
+
+        $act->verb = ActivityVerb::FAVORITE;
+        $act->id   = TagURI::mint('favor:%d:%d:%s',
+                                  $profile->id,
+                                  $notice->id,
+                                  common_date_iso8601($this->modified));
+
+        $act->time    = strtotime($this->modified);
+        $act->title   = _("Favor");
+        $act->content = sprintf(_("%s marked notice %s as a favorite."),
+                               $profile->getBestName(),
+                               $notice->uri);
+
+        $act->actor     = ActivityObject::fromProfile($profile);
+        $act->objects[] = ActivityObject::fromNotice($notice);
+
+        return $act;
+    }
 }
index 2239461beb5e08b3b4253e0f76b3c472159d8b73..939a9cde76e8cf3049fc484a0e97db48473bcd7b 100644 (file)
@@ -65,4 +65,54 @@ class Group_member extends Memcached_DataObject
 
         return true;
     }
+
+    function getMember()
+    {
+        $member = Profile::staticGet('id', $this->profile_id);
+
+        if (empty($member)) {
+            throw new Exception("Profile ID {$this->profile_id} invalid.");
+        }
+
+        return $member;
+    }
+
+    function getGroup()
+    {
+        $group  = User_group::staticGet('id', $this->group_id);
+
+        if (empty($group)) {
+            throw new Exception("Group ID {$this->group_id} invalid.");
+        }
+
+        return $group;
+    }
+
+    function asActivity()
+    {
+        $member = $this->getMember();
+        $group  = $this->getGroup();
+
+        $act = new Activity();
+
+        $act->id = TagURI::mint('join:%d:%d:%s',
+                                $member->id,
+                                $group->id,
+                                common_date_iso8601($this->created));
+
+        $act->actor     = ActivityObject::fromProfile($member);
+        $act->verb      = ActivityVerb::JOIN;
+        $act->objects[] = ActivityObject::fromGroup($group);
+
+        $act->time  = strtotime($this->created);
+        $act->title = _("Join");
+
+        // TRANS: Success message for subscribe to group attempt through OStatus.
+        // TRANS: %1$s is the member name, %2$s is the subscribed group's name.
+        $act->content = sprintf(_('%1$s has joined group %2$s.'),
+                                $member->getBestName(),
+                                $group->getBestName());
+
+        return $act;
+    }
 }
index f1b012465b39cbd2c0766ffe8b211802d4d964b0..4f23e35007f4cac4f099832fa6df805185082d2f 100644 (file)
@@ -753,8 +753,15 @@ class Notice extends Memcached_DataObject
     }
 
     /**
-     * @param $groups array of Group *objects*
-     * @param $recipients array of profile *ids*
+     * Pull up a full list of local recipients who will be getting
+     * this notice in their inbox. Results will be cached, so don't
+     * change the input data wily-nilly!
+     *
+     * @param array $groups optional list of Group objects;
+     *              if left empty, will be loaded from group_inbox records
+     * @param array $recipient optional list of reply profile ids
+     *              if left empty, will be loaded from reply records
+     * @return array associating recipient user IDs with an inbox source constant
      */
     function whoGets($groups=null, $recipients=null)
     {
@@ -787,27 +794,27 @@ class Notice extends Memcached_DataObject
             $ni[$id] = NOTICE_INBOX_SOURCE_SUB;
         }
 
-        $profile = $this->getProfile();
-
         foreach ($groups as $group) {
             $users = $group->getUserMembers();
             foreach ($users as $id) {
                 if (!array_key_exists($id, $ni)) {
-                    $user = User::staticGet('id', $id);
-                    if (!$user->hasBlocked($profile)) {
-                        $ni[$id] = NOTICE_INBOX_SOURCE_GROUP;
-                    }
+                    $ni[$id] = NOTICE_INBOX_SOURCE_GROUP;
                 }
             }
         }
 
         foreach ($recipients as $recipient) {
-
             if (!array_key_exists($recipient, $ni)) {
-                $recipientUser = User::staticGet('id', $recipient);
-                if (!empty($recipientUser)) {
-                    $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
-                }
+                $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
+            }
+        }
+
+        // Exclude any deleted, non-local, or blocking recipients.
+        $profile = $this->getProfile();
+        foreach ($ni as $id => $source) {
+            $user = User::staticGet('id', $id);
+            if (empty($user) || $user->hasBlocked($profile)) {
+                unset($ni[$id]);
             }
         }
 
@@ -1212,6 +1219,64 @@ class Notice extends Memcached_DataObject
         return $groups;
     }
 
+    function asActivity()
+    {
+        $profile = $this->getProfile();
+
+        $act = new Activity();
+
+        $act->actor     = ActivityObject::fromProfile($profile);
+        $act->verb      = ActivityVerb::POST;
+        $act->objects[] = ActivityObject::fromNotice($this);
+
+        $act->time    = strtotime($this->created);
+        $act->link    = $this->bestUrl();
+
+        $act->content = common_xml_safe_str($this->rendered);
+        $act->id      = $this->uri;
+        $act->title   = common_xml_safe_str($this->content);
+
+        $ctx = new ActivityContext();
+
+        if (!empty($this->reply_to)) {
+            $reply = Notice::staticGet('id', $this->reply_to);
+            if (!empty($reply)) {
+                $ctx->replyToID  = $reply->uri;
+                $ctx->replyToUrl = $reply->bestUrl();
+            }
+        }
+
+        $ctx->location = $this->getLocation();
+
+        $conv = null;
+
+        if (!empty($this->conversation)) {
+            $conv = Conversation::staticGet('id', $this->conversation);
+            if (!empty($conv)) {
+                $ctx->conversation = $conv->uri;
+            }
+        }
+
+        $reply_ids = $this->getReplies();
+
+        foreach ($reply_ids as $id) {
+            $profile = Profile::staticGet('id', $id);
+            if (!empty($profile)) {
+                $ctx->attention[] = $profile->getUri();
+            }
+        }
+
+        $groups = $this->getGroups();
+
+        foreach ($groups as $group) {
+            $ctx->attention[] = $group->uri;
+        }
+
+        $act->context = $ctx;
+
+        return $act;
+    }
+
     // This has gotten way too long. Needs to be sliced up into functional bits
     // or ideally exported to a utility class.
 
index 0225ed4df97b9282bc8b5efd6d2175f8e216e8f2..1287499fadc1d8be090978076eaccb565cdf84dc 100644 (file)
@@ -235,4 +235,30 @@ class Subscription extends Memcached_DataObject
                                            'subscribed' => $other->id));
         return (empty($sub)) ? false : true;
     }
+
+    function asActivity()
+    {
+        $subscriber = Profile::staticGet('id', $this->subscriber);
+        $subscribed = Profile::staticGet('id', $this->subscribed);
+
+        $act = new Activity();
+
+        $act->verb = ActivityVerb::FOLLOW;
+
+        $act->id   = TagURI::mint('follow:%d:%d:%s',
+                                  $subscriber->id,
+                                  $subscribed->id,
+                                  common_date_iso8601($this->created));
+
+        $act->time    = strtotime($this->created);
+        $act->title   = _("Follow");
+        $act->content = sprintf(_("%s is now following %s."),
+                               $subscriber->getBestName(),
+                               $subscribed->getBestName());
+
+        $act->actor     = ActivityObject::fromProfile($subscriber);
+        $act->objects[] = ActivityObject::fromProfile($subscribed);
+
+        return $act;
+    }
 }
index 8033229c4b74553ce0279f65fa896851f96b86d3..b85192b29cce97b9475bd8517da597809b707f72 100644 (file)
@@ -255,6 +255,19 @@ class User extends Memcached_DataObject
 
         $user->inboxed = 1;
 
+        // Set default-on options here, otherwise they'll be disabled
+        // initially for sites using caching, since the initial encache
+        // doesn't know about the defaults in the database.
+        $user->emailnotifysub = 1;
+        $user->emailnotifyfav = 1;
+        $user->emailnotifynudge = 1;
+        $user->emailnotifymsg = 1;
+        $user->emailnotifyattn = 1;
+        $user->emailmicroid = 1;
+        $user->emailpost = 1;
+        $user->jabbermicroid = 1;
+        $user->viewdesigns = 1;
+
         $user->created = common_sql_now();
 
         if (Event::handle('StartUserRegister', array(&$user, &$profile))) {
@@ -269,7 +282,13 @@ class User extends Memcached_DataObject
             }
 
             $user->id = $id;
-            $user->uri = common_user_uri($user);
+
+            if (!empty($uri)) {
+                $user->uri = $uri;
+            } else {
+                $user->uri = common_user_uri($user);
+            }
+
             if (!empty($password)) { // may not have a password for OpenID users
                 $user->password = common_munge_password($password, $id);
             }
@@ -552,6 +571,9 @@ class User extends Memcached_DataObject
         if (Subscription::exists($other, $self)) {
             Subscription::cancel($other, $self);
         }
+        if (Subscription::exists($self, $other)) {
+            Subscription::cancel($self, $other);
+        }
 
         $block->query('COMMIT');
 
index 6bfd5c5f15d216e38856483e3fc2c8ecfba47b03..04d9d7ba658cb4e92798539e30135d25f96ea38d 100644 (file)
@@ -52,6 +52,10 @@ VALUES
     ('socialoomphBfD4pMqz31', 'SocialOomph', 'http://www.socialoomph.com/', now()),
     ('spaz','Spaz','http://funkatron.com/spaz', now()),
     ('StatusNet Desktop', 'StatusNet Desktop', 'http://status.net/desktop', now()),
+    ('StatusNet Mobile', 'StatusNet Mobile', 'http://status.net/mobile', now()),
+    ('StatusNet iPhone', 'iPhone', 'http://status.net/iphone', now()),
+    ('StatusNet Android', 'Android', 'http://status.net/android', now()),
+    ('StatusNet Blackberry', 'Blackberry', 'http://status.net/blackberry', now()),
     ('tarpipe','tarpipe','http://tarpipe.com/', now()),
     ('tjunar','Tjunar','http://nederflash.nl/boek/titels/tjunar-air', now()),
     ('tr.im','tr.im','http://tr.im/', now()),
index dc21c75e5a917704b2863398e39cd221c0ab1c3a..5482ac3773fde68a03f04ad6169519c40944e145 100644 (file)
@@ -840,6 +840,9 @@ class Action extends HTMLOutputter // lawsuit
         $this->elementStart('dd', null);
         if (common_config('site', 'broughtby')) {
             // TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
+            // TRANS: Text between [] is a link description, text between () is the link itself.
+            // TRANS: Make sure there is no whitespace between "]" and "(".
+            // TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
             $instr = _('**%%site.name%%** is a microblogging service brought to you by [%%site.broughtby%%](%%site.broughtbyurl%%).');
         } else {
             // TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
@@ -847,6 +850,9 @@ class Action extends HTMLOutputter // lawsuit
         }
         $instr .= ' ';
         // TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
+        // TRANS: Make sure there is no whitespace between "]" and "(".
+        // TRANS: Text between [] is a link description, text between () is the link itself.
+        // TRANS: %s is the version of StatusNet that is being used.
         $instr .= sprintf(_('It runs the [StatusNet](http://status.net/) microblogging software, version %s, available under the [GNU Affero General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html).'), STATUSNET_VERSION);
         $output = common_markup_to_html($instr);
         $this->raw($output);
@@ -893,7 +899,8 @@ class Action extends HTMLOutputter // lawsuit
                                             'width' => '80',
                                             'height' => '15'));
                 $this->text(' ');
-                // TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+                // TRANS: license message in footer.
+                // TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
                 $notice = _('All %1$s content and data are available under the %2$s license.');
                 $link = "<a class=\"license\" rel=\"external license\" href=\"" .
                         htmlspecialchars(common_config('license', 'url')) .
@@ -1011,17 +1018,22 @@ class Action extends HTMLOutputter // lawsuit
             }
         }
 
+        $checked = false;
         if ($etag) {
             $if_none_match = (array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER)) ?
               $_SERVER['HTTP_IF_NONE_MATCH'] : null;
-            if ($if_none_match && $this->_hasEtag($etag, $if_none_match)) {
-                header('HTTP/1.1 304 Not Modified');
-                // Better way to do this?
-                exit(0);
+            if ($if_none_match) {
+                // If this check fails, ignore the if-modified-since below.
+                $checked = true;
+                if ($this->_hasEtag($etag, $if_none_match)) {
+                    header('HTTP/1.1 304 Not Modified');
+                    // Better way to do this?
+                    exit(0);
+                }
             }
         }
 
-        if ($lm && array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) {
+        if (!$checked && $lm && array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) {
             $if_modified_since = $_SERVER['HTTP_IF_MODIFIED_SINCE'];
             $ims = strtotime($if_modified_since);
             if ($lm <= $ims) {
@@ -1304,6 +1316,7 @@ class Action extends HTMLOutputter // lawsuit
         // CSRF protection
         $token = $this->trimmed('token');
         if (empty($token) || $token != common_session_token()) {
+            // TRANS: Client error text when there is a problem with the session token.
             $this->clientError(_('There was a problem with your session token.'));
         }
     }
index 8e2da99bb3afe46cb559a97178bc9e970178b86d..f19f10e34dabfd647478d198ea2077c1ba3aaefe 100644 (file)
@@ -319,7 +319,7 @@ class Activity
         return null;
     }
 
-    function asString($namespace=false)
+    function asString($namespace=false, $author=true)
     {
         $xs = new XMLStringer(true);
 
@@ -338,7 +338,7 @@ class Activity
 
         $xs->element('id', null, $this->id);
         $xs->element('title', null, $this->title);
-        $xs->element('published', null, common_date_iso8601($this->time));
+        $xs->element('published', null, self::iso8601Date($this->time));
         $xs->element('content', array('type' => 'html'), $this->content);
 
         if (!empty($this->summary)) {
@@ -353,13 +353,15 @@ class Activity
 
         // XXX: add context
 
-        $xs->elementStart('author');
-        $xs->element('uri', array(), $this->actor->id);
-        if ($this->actor->title) {
-            $xs->element('name', array(), $this->actor->title);
+        if ($author) {
+            $xs->elementStart('author');
+            $xs->element('uri', array(), $this->actor->id);
+            if ($this->actor->title) {
+                $xs->element('name', array(), $this->actor->title);
+            }
+            $xs->elementEnd('author');
+            $xs->raw($this->actor->asString('activity:actor'));
         }
-        $xs->elementEnd('author');
-        $xs->raw($this->actor->asString('activity:actor'));
 
         $xs->element('activity:verb', null, $this->verb);
 
@@ -386,5 +388,12 @@ class Activity
     {
         return ActivityUtils::child($element, $tag, $namespace);
     }
-}
 
+    static function iso8601Date($tm)
+    {
+        $dateStr = date('d F Y H:i:s', $tm);
+        $d = new DateTime($dateStr, new DateTimeZone('UTC'));
+        $d->setTimezone(new DateTimeZone(common_timezone()));
+        return $d->format('c');
+    }
+}
index 09a457924963a22d3bb3bafeaf34c67a2ce00d2a..ff3bc9411d53baeaa48b9b8d007769382bafef44 100644 (file)
@@ -54,8 +54,12 @@ class ActivityContext
     const MENTIONED    = 'mentioned';
     const CONVERSATION = 'ostatus:conversation';
 
-    function __construct($element)
+    function __construct($element = null)
     {
+        if (empty($element)) {
+            return;
+        }
+
         $replyToEl = ActivityUtils::child($element, self::INREPLYTO, self::THR);
 
         if (!empty($replyToEl)) {
@@ -73,7 +77,6 @@ class ActivityContext
 
         $attention = array();
         for ($i = 0; $i < $links->length; $i++) {
-
             $link = $links->item($i);
 
             $linkRel = $link->getAttribute(ActivityUtils::REL);
index 444577775f52b9c2f5a57a9d110aae4a0aa28fe3..95615d581c8266537e02f1145176b08a048d9b2e 100644 (file)
@@ -168,7 +168,6 @@ class ActivityObject
                 ActivityObject::MEDIA_DESCRIPTION,
                 Activity::MEDIA
             );
-
         }
     }
 
@@ -418,7 +417,6 @@ class ActivityObject
         );
 
         foreach ($sizes as $size) {
-
             $alink  = null;
             $avatar = $profile->getAvatar($size);
 
index dd38d4e14222b8da15030918d8d2ef187d5bdb8d..b975a6382b60e206ab65c4e6f4aa19cd15525779 100644 (file)
@@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class ActivityUtils
 {
     const ATOM = 'http://www.w3.org/2005/Atom';
@@ -66,7 +65,6 @@ class ActivityUtils
      *
      * @return string related link, if any
      */
-
     static function getPermalink($element)
     {
         return self::getLink($element, 'alternate', 'text/html');
@@ -79,7 +77,6 @@ class ActivityUtils
      *
      * @return string related link, if any
      */
-
     static function getLink(DOMNode $element, $rel, $type=null)
     {
         $els = $element->childNodes;
@@ -135,7 +132,6 @@ class ActivityUtils
      *
      * @return DOMElement found element or null
      */
-
     static function child(DOMNode $element, $tag, $namespace=self::ATOM)
     {
         $els = $element->childNodes;
@@ -160,7 +156,6 @@ class ActivityUtils
      *
      * @return string content of the child
      */
-
     static function childContent(DOMNode $element, $tag, $namespace=self::ATOM)
     {
         $el = self::child($element, $tag, $namespace);
@@ -194,7 +189,6 @@ class ActivityUtils
      * @todo handle embedded XML mime types
      * @todo handle base64-encoded non-XML and non-text mime types
      */
-
     static function getContent($element)
     {
         return self::childHtmlContent($element, self::CONTENT, self::ATOM);
@@ -205,6 +199,7 @@ class ActivityUtils
         $src  = $el->getAttribute(self::SRC);
 
         if (!empty($src)) {
+            // TRANS: Client exception thrown when there is no source attribute.
             throw new ClientException(_("Can't handle remote content yet."));
         }
 
@@ -241,10 +236,12 @@ class ActivityUtils
             return trim($text);
         } else if (in_array($type, array('text/xml', 'application/xml')) ||
                    preg_match('#(+|/)xml$#', $type)) {
+            // TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
             throw new ClientException(_("Can't handle embedded XML content yet."));
         } else if (strncasecmp($type, 'text/', 5)) {
             return $el->textContent;
         } else {
+            // TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
             throw new ClientException(_("Can't handle embedded Base64 content yet."));
         }
     }
index 76f2b84e9ca68d2e4c6b1149b8dfa0f24edf5a0f..264351308b55b60c25139abb50a81b7e286d243e 100644 (file)
@@ -42,7 +42,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class ActivityVerb
 {
     const POST     = 'http://activitystrea.ms/schema/1.0/post';
index 3934f63515830ca3c044778e635507b904492df2..9b0e45f8a6d53a3b5b651042c84306d21939deb6 100644 (file)
@@ -45,7 +45,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  *
  * @see      Form
  */
-
 class AdminForm extends Form
 {
     /**
@@ -59,7 +58,6 @@ class AdminForm extends Form
      *
      * @return void
      */
-
     function input($setting, $title, $instructions, $section='site')
     {
         $this->out->input($setting, $title, $this->value($setting, $section), $instructions);
@@ -73,7 +71,6 @@ class AdminForm extends Form
      *
      * @return string param value if posted, or current config value
      */
-
     function value($setting, $main='site')
     {
         $value = $this->out->trimmed($setting);
index 043219a1fe40c0948907c4ed92208530d376f2e3..fae9f4fa57a83a9b4a4f6542862013209c82be58 100644 (file)
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
  *
  * @todo Find some commonalities with SettingsAction and combine
  */
-
 class AdminPanelAction extends Action
 {
     var $success = true;
@@ -61,7 +60,6 @@ class AdminPanelAction extends Action
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -124,7 +122,6 @@ class AdminPanelAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         if ($_SERVER['REQUEST_METHOD'] == 'POST') {
@@ -155,7 +152,6 @@ class AdminPanelAction extends Action
      * @return void
      * @see AdminPanelNav
      */
-
     function showLocalNav()
     {
         $nav = new AdminPanelNav($this);
@@ -169,7 +165,6 @@ class AdminPanelAction extends Action
      *
      * @return void.
      */
-
     function showContent()
     {
         $this->showForm();
@@ -199,7 +194,6 @@ class AdminPanelAction extends Action
      *
      * @return void
      */
-
     function showPageNotice()
     {
         if ($this->msg) {
@@ -222,7 +216,6 @@ class AdminPanelAction extends Action
      *
      * @return void
      */
-
     function showForm()
     {
         // TRANS: Client error message.
@@ -239,7 +232,6 @@ class AdminPanelAction extends Action
      *
      * @return void
      */
-
     function getInstructions()
     {
         return '';
@@ -252,7 +244,6 @@ class AdminPanelAction extends Action
      *
      * @return void
      */
-
     function saveSettings()
     {
         // TRANS: Client error message
@@ -267,7 +258,6 @@ class AdminPanelAction extends Action
      *
      * @return mixed $result false if something didn't work
      */
-
     function deleteSetting($section, $setting)
     {
         $config = new Config();
@@ -314,7 +304,6 @@ class AdminPanelAction extends Action
  *
  * @see      Widget
  */
-
 class AdminPanelNav extends Widget
 {
     var $action = null;
@@ -324,7 +313,6 @@ class AdminPanelNav extends Widget
      *
      * @param Action $action current action, used for output
      */
-
     function __construct($action=null)
     {
         parent::__construct($action);
@@ -336,7 +324,6 @@ class AdminPanelNav extends Widget
      *
      * @return void
      */
-
     function show()
     {
         $action_name = $this->action->trimmed('action');
@@ -421,5 +408,4 @@ class AdminPanelNav extends Widget
         }
         $this->action->elementEnd('ul');
     }
-
 }
index 5e0cd551876f278dd44493e5c5a462bfff9141f4..0074b7dc535b834c40d24918b23eb8be92e8c775 100644 (file)
@@ -112,7 +112,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiAction extends Action
 {
     const READ_ONLY  = 1;
@@ -139,7 +138,6 @@ class ApiAction extends Action
      *
      * @return boolean false if user doesn't exist
      */
-
     function prepare($args)
     {
         StatusNet::setApi(true); // reduce exception reports to aid in debugging
@@ -172,7 +170,6 @@ class ApiAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         header('Access-Control-Allow-Origin: *');
@@ -862,7 +859,6 @@ class ApiAction extends Action
         }
 
         $this->endDocument('atom');
-
     }
 
     function showRssGroups($group, $title, $link, $subtitle)
@@ -1015,7 +1011,6 @@ class ApiAction extends Action
 
     function showAtomGroups($group, $title, $id, $link, $subtitle=null, $selfuri=null)
     {
-
         $this->initDocument('atom');
 
         $this->element('title', null, common_xml_safe_str($title));
@@ -1046,7 +1041,6 @@ class ApiAction extends Action
 
     function showJsonTimeline($notice)
     {
-
         $this->initDocument('json');
 
         $statuses = array();
@@ -1072,7 +1066,6 @@ class ApiAction extends Action
 
     function showJsonGroups($group)
     {
-
         $this->initDocument('json');
 
         $groups = array();
@@ -1118,7 +1111,6 @@ class ApiAction extends Action
 
     function showTwitterXmlUsers($user)
     {
-
         $this->initDocument('xml');
         $this->elementStart('users', array('type' => 'array',
                                            'xmlns:statusnet' => 'http://status.net/schema/api/1/'));
@@ -1141,7 +1133,6 @@ class ApiAction extends Action
 
     function showJsonUsers($user)
     {
-
         $this->initDocument('json');
 
         $users = array();
@@ -1226,7 +1217,6 @@ class ApiAction extends Action
             $this->endXML();
             break;
         case 'json':
-
             // Check for JSONP callback
             if (isset($this->callback)) {
                 print ')';
@@ -1483,7 +1473,6 @@ class ApiAction extends Action
      */
     function arg($key, $def=null)
     {
-
         // XXX: Do even more input validation/scrubbing?
 
         if (array_key_exists($key, $this->args)) {
@@ -1550,5 +1539,4 @@ class ApiAction extends Action
 
         return $uri;
     }
-
 }
index cf7a2692ca00b51feb12e547331b3cd29fa4d4fe..8b0a3da17bb61abb449673f0a429b078588ca0fe 100644 (file)
@@ -68,7 +68,6 @@ require_once INSTALLDIR . '/lib/apioauth.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiAuthAction extends ApiAction
 {
     var $auth_user_nickname = null;
@@ -83,7 +82,6 @@ class ApiAuthAction extends ApiAction
      * @return boolean success flag
      *
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -126,7 +124,6 @@ class ApiAuthAction extends ApiAction
      *
      * @return mixed the OAuthRequest or false
      */
-
     function getOAuthRequest()
     {
         ApiOauthAction::cleanRequest();
@@ -154,7 +151,6 @@ class ApiAuthAction extends ApiAction
      *
      * @return nothing
      */
-
     function checkOAuthRequest($request)
     {
         $datastore   = new ApiStatusNetOAuthDataStore();
@@ -164,7 +160,6 @@ class ApiAuthAction extends ApiAction
         $server->add_signature_method($hmac_method);
 
         try {
-
             $server->verify_request($request);
 
             $consumer     = $request->get_parameter('oauth_consumer_key');
@@ -176,7 +171,8 @@ class ApiAuthAction extends ApiAction
                 common_log(LOG_WARNING,
                            'Couldn\'t find the OAuth app for consumer key: ' .
                            $consumer);
-                throw new OAuthException('No application for that consumer key.');
+                // TRANS: OAuth exception thrown when no application is found for a given consumer key.
+                throw new OAuthException(_('No application for that consumer key.'));
             }
 
             // set the source attr
@@ -186,19 +182,15 @@ class ApiAuthAction extends ApiAction
             $appUser = Oauth_application_user::staticGet('token', $access_token);
 
             if (!empty($appUser)) {
-
                 // If access_type == 0 we have either a request token
                 // or a bad / revoked access token
 
                 if ($appUser->access_type != 0) {
-
                     // Set the access level for the api call
-
                     $this->access = ($appUser->access_type & Oauth_application::$writeAccess)
                       ? self::READ_WRITE : self::READ_ONLY;
 
                     // Set the auth user
-
                     if (Event::handle('StartSetApiUser', array(&$user))) {
                         $this->auth_user = User::staticGet('id', $appUser->profile_id);
                         Event::handle('EndSetApiUser', array($user));
@@ -216,13 +208,13 @@ class ApiAuthAction extends ApiAction
                                                  'read-write' : 'read-only'
                                                  ));
                 } else {
-                    throw new OAuthException('Bad access token.');
+                    // TRANS: OAuth exception given when an incorrect access token was given for a user.
+                    throw new OAuthException(_('Bad access token.'));
                 }
             } else {
-
                 // Also should not happen
-
-                throw new OAuthException('No user for that token.');
+                // TRANS: OAuth exception given when no user was found for a given token (no token was found).
+                throw new OAuthException(_('No user for that token.'));
             }
 
         } catch (OAuthException $e) {
@@ -237,7 +229,6 @@ class ApiAuthAction extends ApiAction
      *
      * @return boolean true
      */
-
     function requiresAuth()
     {
         return true;
@@ -249,7 +240,6 @@ class ApiAuthAction extends ApiAction
      *
      * @return boolean true or false
      */
-
     function checkBasicAuthUser($required = true)
     {
         $this->basicAuthProcessHeader();
@@ -264,8 +254,8 @@ class ApiAuthAction extends ApiAction
             header('WWW-Authenticate: Basic realm="' . $realm . '"');
 
             // show error if the user clicks 'cancel'
-
-            $this->clientError("Could not authenticate you.", 401, $this->format);
+            // TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+            $this->clientError(_("Could not authenticate you."), 401, $this->format);
             exit;
 
         } else {
@@ -283,13 +273,11 @@ class ApiAuthAction extends ApiAction
             }
 
             // By default, basic auth users have rw access
-
             $this->access = self::READ_WRITE;
 
             if (empty($this->auth_user) && ($required || isset($_SERVER['PHP_AUTH_USER']))) {
 
                 // basic authentication failed
-
                 list($proxy, $ip) = common_client_ip();
 
                 $msg = sprintf( 'Failed API auth attempt, nickname = %1$s, ' .
@@ -298,7 +286,8 @@ class ApiAuthAction extends ApiAction
                                $proxy,
                                $ip);
                 common_log(LOG_WARNING, $msg);
-                $this->clientError("Could not authenticate you.", 401, $this->format);
+                // TRANS: Client error thrown when authentication fails.
+                $this->clientError(_("Could not authenticate you."), 401, $this->format);
                 exit;
             }
         }
@@ -310,7 +299,6 @@ class ApiAuthAction extends ApiAction
      *
      * @return void
      */
-
     function basicAuthProcessHeader()
     {
         $authHeaders = array('AUTHORIZATION',
@@ -332,7 +320,6 @@ class ApiAuthAction extends ApiAction
 
             // Decode the HTTP_AUTHORIZATION header on php-cgi server self
             // on fcgid server the header name is AUTHORIZATION
-
             $auth_hash = base64_decode(substr($authorization_header, 6));
             list($this->auth_user_nickname,
                  $this->auth_user_password) = explode(':', $auth_hash);
index da7af12614ac88801b8ab47a3316a3eb44927e8b..00e0f205bafa2da387731cfd857ccd27acf89bdb 100644 (file)
@@ -30,7 +30,7 @@
  * @author    Evan Prodromou <evan@status.net>
  * @author    mEDI <medi@milaro.net>
  * @author    Sarven Capadisli <csarven@status.net>
- * @author    Zach Copley <zach@status.net> 
+ * @author    Zach Copley <zach@status.net>
  * @copyright 2009 StatusNet, Inc.
  * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
@@ -60,7 +60,6 @@ require_once INSTALLDIR.'/lib/apiauth.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiBareAuthAction extends ApiAuthAction
 {
 
@@ -72,7 +71,6 @@ class ApiBareAuthAction extends ApiAuthAction
      * @return boolean success flag
      *
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -84,18 +82,15 @@ class ApiBareAuthAction extends ApiAuthAction
      *
      * @return boolean true or false
      */
-
     function requiresAuth()
     {
         // If the site is "private", all API methods except statusnet/config
         // need authentication
-
         if (common_config('site', 'private')) {
             return true;
         }
 
         // check whether a user has been specified somehow
-
         $id           = $this->arg('id');
         $user_id      = $this->arg('user_id');
         $screen_name  = $this->arg('screen_name');
@@ -106,5 +101,4 @@ class ApiBareAuthAction extends ApiAuthAction
 
         return false;
     }
-
 }
index 4cb8a677541d223b096522f63979e91b959f5fa2..1c87e42324a9f2cdbfb3ed5c41d5921a6b3bb074 100644 (file)
@@ -44,7 +44,6 @@ require_once INSTALLDIR . '/lib/apioauthstore.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiOauthAction extends Action
 {
     /**
@@ -52,7 +51,6 @@ class ApiOauthAction extends Action
      *
      * @return boolean false
      */
-
     function isReadOnly($args)
     {
         return false;
@@ -73,7 +71,6 @@ class ApiOauthAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
@@ -83,7 +80,6 @@ class ApiOauthAction extends Action
     static function cleanRequest()
     {
         // kill evil effects of magical slashing
-
         if (get_magic_quotes_gpc() == 1) {
             $_POST = array_map('stripslashes', $_POST);
             $_GET = array_map('stripslashes', $_GET);
@@ -93,7 +89,6 @@ class ApiOauthAction extends Action
 
         // XXX: should we strip anything else?  Or alternatively
         // only allow a known list of params?
-
         unset($_GET['p']);
         unset($_POST['p']);
     }
@@ -118,5 +113,4 @@ class ApiOauthAction extends Action
             return ($url . '&' . $k . '=' . $v);
         }
     }
-
 }
index 1bb11cbca5cdcbb5230f18efe4eab8f15448b1dc..01116ad3e96c3d208652324a4656f2ea0cefb20e 100644 (file)
@@ -23,7 +23,6 @@ require_once INSTALLDIR . '/lib/oauthstore.php';
 
 class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore
 {
-
     function lookup_consumer($consumer_key)
     {
         $con = Consumer::staticGet('consumer_key', $consumer_key);
@@ -39,7 +38,6 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore
     function getAppByRequestToken($token_key)
     {
         // Look up the full req tokenx
-
         $req_token = $this->lookup_token(null,
                                          'request',
                                          $token_key);
@@ -50,7 +48,6 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore
         }
 
         // Look up the full Token
-
         $token = new Token();
         $token->tok = $req_token->key;
         $result = $token->find(true);
@@ -150,7 +147,6 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore
                 }
 
                 // Okay, good
-
                 return new OAuthToken($at->tok, $at->secret);
             }
 
@@ -172,19 +168,18 @@ class ApiStatusNetOAuthDataStore extends StatusNetOAuthDataStore
      *
      * @return void
      */
-
     public function revoke_token($token_key, $type = 0) {
         $rt = new Token();
         $rt->tok = $token_key;
         $rt->type = $type;
         $rt->state = 0;
         if (!$rt->find(true)) {
-            throw new Exception('Tried to revoke unknown token');
+            // TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+            throw new Exception(_('Tried to revoke unknown token.'));
         }
         if (!$rt->delete()) {
-            throw new Exception('Failed to delete revoked token');
+            // TRANS: Exception thrown when an attempt is made to remove a revoked token.
+            throw new Exception(_('Failed to delete revoked token.'));
         }
     }
-
 }
-
index 5e78c65a19f7aa96734e6c7daad57949979aba28..df401c382e9b54806e39f1341c698404d35e44b4 100644 (file)
@@ -29,7 +29,7 @@
  * @author    Evan Prodromou <evan@status.net>
  * @author    mEDI <medi@milaro.net>
  * @author    Sarven Capadisli <csarven@status.net>
- * @author    Zach Copley <zach@status.net> 
+ * @author    Zach Copley <zach@status.net>
  * @copyright 2009 StatusNet, Inc.
  * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
@@ -58,26 +58,21 @@ require_once INSTALLDIR.'/lib/apiauth.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiPrivateAuthAction extends ApiAuthAction
 {
-
    /**
      * Does this API resource require authentication?
      *
      * @return boolean true or false
      */
-
     function requiresAuth()
     {
         // If the site is "private", all API methods except statusnet/config
         // need authentication
-
         if (common_config('site', 'private')) {
             return true;
         }
 
         return false;
     }
-
 }
index 81c8fb01816c4b02a1a63a82cf755639cd24f100..224b6eaa1b62de73ebe71ddd4a7feabbd9a50553 100644 (file)
@@ -43,13 +43,11 @@ require_once INSTALLDIR . '/lib/form.php';
  * @link     http://status.net/
  *
  */
-
 class ApplicationEditForm extends Form
 {
     /**
      * group for user to join
      */
-
     var $application = null;
 
     /**
@@ -58,7 +56,6 @@ class ApplicationEditForm extends Form
      * @param Action     $out   output channel
      * @param User_group $group group to join
      */
-
     function __construct($out=null, $application=null)
     {
         parent::__construct($out);
@@ -71,7 +68,6 @@ class ApplicationEditForm extends Form
      *
      * @return string ID of the form
      */
-
     function id()
     {
         if ($this->application) {
@@ -89,7 +85,6 @@ class ApplicationEditForm extends Form
      *
      * @return string the method to use for submitting
      */
-
     function method()
     {
         $this->enctype = 'multipart/form-data';
@@ -101,7 +96,6 @@ class ApplicationEditForm extends Form
      *
      * @return string of the form class
      */
-
     function formClass()
     {
         return 'form_settings';
@@ -112,7 +106,6 @@ class ApplicationEditForm extends Form
      *
      * @return string URL of the action
      */
-
     function action()
     {
         $cur = common_current_user();
@@ -130,7 +123,6 @@ class ApplicationEditForm extends Form
      *
      * @return void
      */
-
     function formLegend()
     {
         // TRANS: Form legend.
@@ -142,7 +134,6 @@ class ApplicationEditForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
         if ($this->application) {
@@ -265,8 +256,9 @@ class ApplicationEditForm extends Form
 
         // Default to Browser
 
-        if ($this->application->type == Oauth_application::$browser
-            || empty($this->application->type)) {
+        if (empty($this->application)
+            || empty($this->application->type)
+            || $this->application->type == Oauth_application::$browser) {
             $attrs['checked'] = 'checked';
         }
 
@@ -283,7 +275,7 @@ class ApplicationEditForm extends Form
                        'class' => 'radio',
                        'value' => Oauth_application::$desktop);
 
-        if ($this->application->type == Oauth_application::$desktop) {
+        if (!empty($this->application) && $this->application->type == Oauth_application::$desktop) {
             $attrs['checked'] = 'checked';
         }
 
@@ -307,8 +299,9 @@ class ApplicationEditForm extends Form
 
         // default to read-only access
 
-        if ($this->application->access_type & Oauth_application::$readAccess
-            || empty($this->application->access_type)) {
+        if (empty($this->application)
+            || empty($this->application->access_type)
+            || $this->application->access_type & Oauth_application::$readAccess) {
             $attrs['checked'] = 'checked';
         }
 
@@ -325,7 +318,8 @@ class ApplicationEditForm extends Form
                        'class' => 'radio',
                        'value' => 'rw');
 
-        if ($this->application->access_type & Oauth_application::$readAccess
+        if (!empty($this->application)
+            && $this->application->access_type & Oauth_application::$readAccess
             && $this->application->access_type & Oauth_application::$writeAccess
             ) {
             $attrs['checked'] = 'checked';
@@ -350,16 +344,15 @@ class ApplicationEditForm extends Form
      *
      * @return void
      */
-
     function formActions()
     {
-        // TRANS: Button label
+        // TRANS: Button label in the "Edit application" form.
         $this->out->submit('cancel', _m('BUTTON','Cancel'), 'submit form_action-primary',
-                           // TRANS: Submit button title
+                           // TRANS: Submit button title.
                            'cancel', _('Cancel'));
-        // TRANS: Button label
+        // TRANS: Button label in the "Edit application" form.
         $this->out->submit('save', _m('BUTTON','Save'), 'submit form_action-secondary',
-                           // TRANS: Submit button title
+                           // TRANS: Submit button title.
                            'save', _('Save'));
     }
 }
index 904f8981d1c1d8f22ae0ebfb825505f3fb77be2f..1974d2103b0bdebe757c1b8355fa3bdb021036e3 100644 (file)
@@ -45,7 +45,6 @@ define('APPS_PER_PAGE', 20);
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApplicationList extends Widget
 {
     /** Current application, application query */
@@ -164,10 +163,8 @@ class ApplicationList extends Widget
     }
 
     /* Override this in subclasses. */
-
     function showOwnerControls()
     {
         return;
     }
-
 }
index 785db4915b9c405be2cee021b4b1378360947ae0..34a18701754a505cf0a3002c36502a112f556134 100644 (file)
@@ -44,7 +44,7 @@ if (!defined('STATUSNET'))
  */
 class AtomUserNoticeFeed extends AtomNoticeFeed
 {
-    private $user;
+    protected $user;
 
     /**
      * Constructor
@@ -90,7 +90,7 @@ class AtomUserNoticeFeed extends AtomNoticeFeed
                 array('nickname' => $user->nickname)
             )
         );
-        
+
         $self = common_local_url('ApiTimelineUser',
                                  array('id' => $user->id,
                                        'format' => 'atom'));
index 578c171ff591bdba3e8bde5533a263ae90ce684a..53a3b63c1cac9de7ea64b7417467caf56f99b417 100644 (file)
@@ -64,6 +64,7 @@ class AttachmentNoticeSection extends NoticeSection
 
     function title()
     {
+        // TRANS: Title.
         return _('Notices where this attachment appears');
     }
 
index e2f85ae0255c87938e212cdda973db3db5142243..15aa6dedc36e677b54366dc390cec5b11bda5f8c 100644 (file)
@@ -45,6 +45,7 @@ class AttachmentTagCloudSection extends TagCloudSection
 {
     function title()
     {
+        // TRANS: Title.
         return _('Tags for this attachment');
     }
 
index b6652b1f69c023f75d2b5da17d0f071b86b2349d..54552b3e572452af2778d0eea45f7ac32c7888a1 100644 (file)
@@ -66,6 +66,7 @@ class BlockForm extends ProfileActionForm
 
     function title()
     {
+        // TRANS: Title for the form to block a user.
         return _('Block');
     }
 
@@ -77,6 +78,7 @@ class BlockForm extends ProfileActionForm
 
     function description()
     {
+        // TRANS: Description of the form to block a user.
         return _('Block this user');
     }
 }
index 2b61a0c80878cfb5330a51eff89d7dc4978d6be2..b1f95fcb69232f19b4cfdc20e30ec68931d4b6b1 100644 (file)
@@ -831,7 +831,7 @@ class SubscriptionsCommand extends Command
             $out=_('You are not subscribed to anyone.');
         }else{
             // TRANS: Text shown after requesting other users a user is subscribed to.
-            // TRANS: This message support plural forms. This message is followed by a
+            // TRANS: This message supports plural forms. This message is followed by a
             // TRANS: hard coded space and a comma separated list of subscribed users.
             $out = ngettext('You are subscribed to this person:',
                 'You are subscribed to these people:',
@@ -858,7 +858,7 @@ class SubscribersCommand extends Command
             $out=_('No one is subscribed to you.');
         }else{
             // TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-            // TRANS: This message support plural forms. This message is followed by a
+            // TRANS: This message supports plural forms. This message is followed by a
             // TRANS: hard coded space and a comma separated list of subscribing users.
             $out = ngettext('This person is subscribed to you:',
                 'These people are subscribed to you:',
@@ -885,7 +885,7 @@ class GroupsCommand extends Command
             $out=_('You are not a member of any groups.');
         }else{
             // TRANS: Text shown after requesting groups a user is subscribed to.
-            // TRANS: This message support plural forms. This message is followed by a
+            // TRANS: This message supports plural forms. This message is followed by a
             // TRANS: hard coded space and a comma separated list of subscribed groups.
             $out = ngettext('You are a member of this group:',
                 'You are a member of these groups:',
@@ -900,8 +900,8 @@ class HelpCommand extends Command
 {
     function handle($channel)
     {
-       // TRANS: Help text for commands.
         $channel->output($this->user,
+                         // TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
                          _("Commands:\n".
                            "on - turn on notifications\n".
                            "off - turn off notifications\n".
index 3dda9fd1ac8dd14865ef4ccfee486663e73b07e4..51553b899906b9ae64e58ea9ceaa5f70bc9185f6 100644 (file)
@@ -100,7 +100,7 @@ class DBQueueManager extends QueueManager
             }
         } else {
             $this->_log(LOG_INFO, "[$queue] Got empty/deleted item, discarding");
-            $this->_fail($qi);
+            $this->_done($qi);
         }
         return true;
     }
index 131b38fa27b7261765045f73c5c6aa1974429e0b..ee988d0a98bcfbed50c8b5ad813377574fd8bdd7 100644 (file)
@@ -82,14 +82,20 @@ class GroupNav extends Widget
         if (Event::handle('StartGroupGroupNav', array($this))) {
             $this->out->menuItem(common_local_url('showgroup', array('nickname' =>
                                                                      $nickname)),
-                                 _('Group'),
-                                 sprintf(_('%s group'), $nickname),
+                                 // TRANS: Menu item in the group navigation page.
+                                 _m('MENU','Group'),
+                                 // TRANS: Tooltip for menu item in the group navigation page.
+                                 // TRANS: %s is the nickname of the group.
+                                 sprintf(_m('TOOLTIP','%s group'), $nickname),
                                  $action_name == 'showgroup',
                                  'nav_group_group');
             $this->out->menuItem(common_local_url('groupmembers', array('nickname' =>
                                                                         $nickname)),
-                                 _('Members'),
-                                 sprintf(_('%s group members'), $nickname),
+                                 // TRANS: Menu item in the group navigation page.
+                                 _m('MENU','Members'),
+                                 // TRANS: Tooltip for menu item in the group navigation page.
+                                 // TRANS: %s is the nickname of the group.
+                                 sprintf(_m('TOOLTIP','%s group members'), $nickname),
                                  $action_name == 'groupmembers',
                                  'nav_group_members');
 
@@ -98,26 +104,38 @@ class GroupNav extends Widget
             if ($cur && $cur->isAdmin($this->group)) {
                 $this->out->menuItem(common_local_url('blockedfromgroup', array('nickname' =>
                                                                                 $nickname)),
-                                     _('Blocked'),
-                                     sprintf(_('%s blocked users'), $nickname),
+                                     // TRANS: Menu item in the group navigation page. Only shown for group administrators.
+                                     _m('MENU','Blocked'),
+                                     // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+                                     // TRANS: %s is the nickname of the group.
+                                     sprintf(_m('TOOLTIP','%s blocked users'), $nickname),
                                      $action_name == 'blockedfromgroup',
                                      'nav_group_blocked');
                 $this->out->menuItem(common_local_url('editgroup', array('nickname' =>
                                                                          $nickname)),
-                                     _('Admin'),
-                                     sprintf(_('Edit %s group properties'), $nickname),
+                                     // TRANS: Menu item in the group navigation page. Only shown for group administrators.
+                                     _m('MENU','Admin'),
+                                     // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+                                     // TRANS: %s is the nickname of the group.
+                                     sprintf(_m('TOOLTIP','Edit %s group properties'), $nickname),
                                      $action_name == 'editgroup',
                                      'nav_group_admin');
                 $this->out->menuItem(common_local_url('grouplogo', array('nickname' =>
                                                                          $nickname)),
-                                     _('Logo'),
-                                     sprintf(_('Add or edit %s logo'), $nickname),
+                                     // TRANS: Menu item in the group navigation page. Only shown for group administrators.
+                                     _m('MENU','Logo'),
+                                     // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+                                     // TRANS: %s is the nickname of the group.
+                                     sprintf(_m('TOOLTIP','Add or edit %s logo'), $nickname),
                                      $action_name == 'grouplogo',
                                      'nav_group_logo');
                 $this->out->menuItem(common_local_url('groupdesignsettings', array('nickname' =>
                                                                       $nickname)),
-                                     _('Design'),
-                                     sprintf(_('Add or edit %s design'), $nickname),
+                                     // TRANS: Menu item in the group navigation page. Only shown for group administrators.
+                                     _m('MENU','Design'),
+                                     // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+                                     // TRANS: %s is the nickname of the group.
+                                     sprintf(_m('TOOLTIP','Add or edit %s design'), $nickname),
                                      $action_name == 'groupdesignsettings',
                                      'nav_group_design');
             }
index 5dc2b38dab44caedcf24fe981ff9db3877ec2e88..44b02960467aa0762dfa8b9663e0d4989b138946 100644 (file)
@@ -325,6 +325,7 @@ class HTMLOutputter extends XMLOutputter
      * @param string $label text of the button
      * @param string $cls   class of the button, default 'submit'
      * @param string $name  name, if different than ID
+     * @param string $title  title text for the submit button
      *
      * @return void
      *
index c96c78ab5d289feae5df65072c2ef99410887252..23338cc0e1165ac9ac63c7403fdd06acd47e9e20 100644 (file)
@@ -95,6 +95,7 @@ class MediaFile
 
         if (!$file_id) {
             common_log_db_error($file, "INSERT", __FILE__);
+            // TRANS: Client exception thrown when a database error was thrown during a file upload operation.
             throw new ClientException(_('There was a database error while saving your file. Please try again.'));
         }
 
@@ -120,6 +121,7 @@ class MediaFile
 
             if (!$result) {
                 common_log_db_error($file_redir, "INSERT", __FILE__);
+                // TRANS: Client exception thrown when a database error was thrown during a file upload operation.
                 throw new ClientException(_('There was a database error while saving your file. Please try again.'));
             }
         }
@@ -139,16 +141,19 @@ class MediaFile
         case UPLOAD_ERR_OK: // success, jump out
             break;
         case UPLOAD_ERR_INI_SIZE:
+            // TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
             throw new ClientException(_('The uploaded file exceeds the ' .
                 'upload_max_filesize directive in php.ini.'));
             return;
         case UPLOAD_ERR_FORM_SIZE:
             throw new ClientException(
+                // TRANS: Client exception.
                 _('The uploaded file exceeds the MAX_FILE_SIZE directive' .
                 ' that was specified in the HTML form.'));
             return;
         case UPLOAD_ERR_PARTIAL:
             @unlink($_FILES[$param]['tmp_name']);
+            // TRANS: Client exception.
             throw new ClientException(_('The uploaded file was only' .
                 ' partially uploaded.'));
             return;
@@ -156,17 +161,21 @@ class MediaFile
             // No file; probably just a non-AJAX submission.
             return;
         case UPLOAD_ERR_NO_TMP_DIR:
+            // TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
             throw new ClientException(_('Missing a temporary folder.'));
             return;
         case UPLOAD_ERR_CANT_WRITE:
+            // TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
             throw new ClientException(_('Failed to write file to disk.'));
             return;
         case UPLOAD_ERR_EXTENSION:
+            // TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
             throw new ClientException(_('File upload stopped by extension.'));
             return;
         default:
             common_log(LOG_ERR, __METHOD__ . ": Unknown upload error " .
                 $_FILES[$param]['error']);
+            // TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
             throw new ClientException(_('System error uploading file.'));
             return;
         }
@@ -176,6 +185,7 @@ class MediaFile
             // Should never actually get here
 
             @unlink($_FILES[$param]['tmp_name']);
+            // TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
             throw new ClientException(_('File exceeds user\'s quota.'));
             return;
         }
@@ -194,11 +204,15 @@ class MediaFile
             $result = move_uploaded_file($_FILES[$param]['tmp_name'], $filepath);
 
             if (!$result) {
+                // TRANS: Client exception thrown when a file upload operation fails because the file could
+                // TRANS: not be moved from the temporary folder to the permanent file location.
                 throw new ClientException(_('File could not be moved to destination directory.'));
                 return;
             }
 
         } else {
+            // TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+            // TRANS: type of the uploaded file could not be determined.
             throw new ClientException(_('Could not determine file\'s MIME type.'));
             return;
         }
@@ -214,6 +228,7 @@ class MediaFile
 
             // Should never actually get here
 
+            // TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
             throw new ClientException(_('File exceeds user\'s quota.'));
             return;
         }
@@ -231,10 +246,14 @@ class MediaFile
             $result = copy($stream['uri'], $filepath) && chmod($filepath, 0664);
 
             if (!$result) {
+                // TRANS: Client exception thrown when a file upload operation fails because the file could
+                // TRANS: not be moved from the temporary folder to the permanent file location.
                 throw new ClientException(_('File could not be moved to destination directory.' .
                     $stream['uri'] . ' ' . $filepath));
             }
         } else {
+            // TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+            // TRANS: type of the uploaded file could not be determined.
             throw new ClientException(_('Could not determine file\'s MIME type.'));
             return;
         }
@@ -315,12 +334,17 @@ class MediaFile
         }
         $media = MIME_Type::getMedia($filetype);
         if ('application' !== $media) {
-            $hint = sprintf(_(' Try using another %s format.'), $media);
+            // TRANS: Client exception thrown trying to upload a forbidden MIME type.
+            // TRANS: %1$s is the file type that was denied, %2$s is the application part of
+            // TRANS: the MIME type that was denied.
+            $hint = sprintf(_('"%1$s" is not a supported file type on this server. ' .
+            'Try using another %2$s format.'), $filetype, $media);
         } else {
-            $hint = '';
+            // TRANS: Client exception thrown trying to upload a forbidden MIME type.
+            // TRANS: %s is the file type that was denied.
+            $hint = sprintf(_('"%s" is not a supported file type on this server.'), $filetype);
         }
-        throw new ClientException(sprintf(
-            _('%s is not a supported file type on this server.'), $filetype) . $hint);
+        throw new ClientException($hint);
     }
 
     static function respectsQuota($user, $filesize)
index a6a6de7505c946bbdd0a24b7760dea3ff8abb940..f3ee629fd75eb6dde84430df0931766e39748920 100644 (file)
@@ -280,7 +280,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore
                 $profile->created = DB_DataObject_Cast::dateTime(); # current time
                 $id = $profile->insert();
                 if (!$id) {
-                    throw new Exception(_('Error inserting new profile'));
+                    throw new Exception(_('Error inserting new profile.'));
                 }
                 $remote->id = $id;
             }
@@ -288,7 +288,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore
             $avatar_url = $omb_profile->getAvatarURL();
             if ($avatar_url) {
                 if (!$this->add_avatar($profile, $avatar_url)) {
-                    throw new Exception(_('Error inserting avatar'));
+                    throw new Exception(_('Error inserting avatar.'));
                 }
             } else {
                 $avatar = $profile->getOriginalAvatar();
@@ -303,12 +303,12 @@ class StatusNetOAuthDataStore extends OAuthDataStore
 
             if ($exists) {
                 if (!$remote->update($orig_remote)) {
-                    throw new Exception(_('Error updating remote profile'));
+                    throw new Exception(_('Error updating remote profile.'));
                 }
             } else {
                 $remote->created = DB_DataObject_Cast::dateTime(); # current time
                 if (!$remote->insert()) {
-                    throw new Exception(_('Error inserting remote profile'));
+                    throw new Exception(_('Error inserting remote profile.'));
                 }
             }
         }
@@ -342,7 +342,8 @@ class StatusNetOAuthDataStore extends OAuthDataStore
      **/
     public function saveNotice(&$omb_notice) {
         if (Notice::staticGet('uri', $omb_notice->getIdentifierURI())) {
-            throw new Exception(_('Duplicate notice'));
+            // TRANS: Exception thrown when a notice is denied because it has been sent before.
+            throw new Exception(_('Duplicate notice.'));
         }
         $author_uri = $omb_notice->getAuthor()->getIdentifierURI();
         common_log(LOG_DEBUG, $author_uri, __FILE__);
index f63bdf30936b1e08f96e44424630d11cecefc79a..ee57f590435f8a2093d066247ade5b634e72f82f 100644 (file)
@@ -112,9 +112,9 @@ class Plugin
         $name = mb_substr($cls, 0, -6);
 
         $versions[] = array('name' => $name,
+                            // TRANS: Displayed as version information for a plugin if no version information was found.
                             'version' => _('Unknown'));
 
         return true;
     }
 }
-
index bb71a2ba15c40f1e05ef0981335f12ef09ef7516..14c3ed016d15aaeb0bcc4aff664676c20da080f9 100644 (file)
@@ -117,14 +117,17 @@ class SearchAction extends Action
                                            'class' => 'form_settings',
                                            'action' => common_local_url($this->trimmed('action'))));
         $this->elementStart('fieldset');
+        // TRANS: Fieldset legend for the search form.
         $this->element('legend', null, _('Search site'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
         if (!common_config('site', 'fancy')) {
             $this->hidden('action', $this->trimmed('action'));
         }
+        // TRANS: Used as a field label for the field where one or more keywords
+        // TRANS: for searching can be entered.
         $this->input('q', _('Keyword(s)'), $q);
-        $this->submit('search', _('Search'));
+        $this->submit('search', _m('BUTTON','Search'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
         $this->elementEnd('fieldset');
@@ -135,6 +138,8 @@ class SearchAction extends Action
     }
 
     function searchSuggestions($q) {
+        // @todo FIXME: This formatting does not make this string get picked up by gettext.
+            // TRANS: Standard search suggestions shown when a search does not give any results.
         $message = _(<<<E_O_T
 * Make sure all words are spelled correctly.
 * Try different keywords.
@@ -145,6 +150,8 @@ E_O_T
 );
         if (!common_config('site', 'private')) {
             $qe = urlencode($q);
+            // @todo FIXME: This formatting does not make this string get picked up by gettext.
+            // TRANS: Standard search suggestions shown when a search does not give any results.
             $message .= sprintf(_(<<<E_O_T
 
 You can also try your search on other engines:
@@ -159,6 +166,7 @@ E_O_T
 ), $qe, $qe, $qe, $qe, $qe);
         }
         $this->elementStart('dl', array('id' => 'help_search', 'class' => 'help'));
+        // TRANS: Definition list item with instructions on how to get (better) search results.
         $this->element('dt', null, _('Search help'));
         $this->elementStart('dd', 'instructions');
         $this->raw(common_markup_to_html($message));
@@ -166,4 +174,3 @@ E_O_T
         $this->elementEnd('div');
     }
 }
-
index 2a444f7cd0da9b1db8269cd16ab8714264aa244c..b89d7ff78d226c2903080f025b98ce80c633cfd8 100644 (file)
@@ -66,6 +66,7 @@ class UnblockForm extends ProfileActionForm
 
     function title()
     {
+        // TRANS: Title for the form to unblock a user.
         return _('Unblock');
     }
 
@@ -77,6 +78,7 @@ class UnblockForm extends ProfileActionForm
 
     function description()
     {
+        // TRANS: Description of the form to unblock a user.
         return _('Unblock this user');
     }
 }
diff --git a/lib/useractivitystream.php b/lib/useractivitystream.php
new file mode 100644 (file)
index 0000000..0fc315e
--- /dev/null
@@ -0,0 +1,151 @@
+<?php
+/*
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2010 StatusNet, 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/>.
+ */
+
+/**
+ * Class for activity streams
+ *
+ * Includes faves, notices, and subscriptions.
+ *
+ * We extend atomusernoticefeed since it does some nice setup for us.
+ *
+ */
+
+class UserActivityStream extends AtomUserNoticeFeed
+{
+    function __construct($user, $indent = true)
+    {
+        parent::__construct($user, null, $indent);
+
+        $subscriptions = $this->getSubscriptions();
+        $subscribers   = $this->getSubscribers();
+        $groups        = $this->getGroups();
+        $faves         = $this->getFaves();
+        $notices       = $this->getNotices();
+
+        $objs = array_merge($subscriptions, $subscribers, $groups, $faves, $notices);
+
+        // Sort by create date
+
+        usort($objs, 'UserActivityStream::compareObject');
+
+        foreach ($objs as $obj) {
+            $act = $obj->asActivity();
+            // Only show the author sub-element if it's different from default user
+            $str = $act->asString(false, ($act->actor->id != $this->user->uri));
+            $this->addEntryRaw($str);
+        }
+    }
+
+    function compareObject($a, $b)
+    {
+        $ac = strtotime((empty($a->created)) ? $a->modified : $a->created);
+        $bc = strtotime((empty($b->created)) ? $b->modified : $b->created);
+
+        return (($ac == $bc) ? 0 : (($ac < $bc) ? 1 : -1));
+    }
+
+    function getSubscriptions()
+    {
+        $subs = array();
+
+        $sub = new Subscription();
+
+        $sub->subscriber = $this->user->id;
+
+        if ($sub->find()) {
+            while ($sub->fetch()) {
+                if ($sub->subscribed != $this->user->id) {
+                    $subs[] = clone($sub);
+                }
+            }
+        }
+
+        return $subs;
+    }
+
+    function getSubscribers()
+    {
+        $subs = array();
+
+        $sub = new Subscription();
+
+        $sub->subscribed = $this->user->id;
+
+        if ($sub->find()) {
+            while ($sub->fetch()) {
+                if ($sub->subscriber != $this->user->id) {
+                    $subs[] = clone($sub);
+                }
+            }
+        }
+
+        return $subs;
+    }
+
+    function getFaves()
+    {
+        $faves = array();
+
+        $fave = new Fave();
+
+        $fave->user_id = $this->user->id;
+
+        if ($fave->find()) {
+            while ($fave->fetch()) {
+                $faves[] = clone($fave);
+            }
+        }
+
+        return $faves;
+    }
+
+    function getNotices()
+    {
+        $notices = array();
+
+        $notice = new Notice();
+
+        $notice->profile_id = $this->user->id;
+
+        if ($notice->find()) {
+            while ($notice->fetch()) {
+                $notices[] = clone($notice);
+            }
+        }
+
+        return $notices;
+    }
+
+    function getGroups()
+    {
+        $groups = array();
+
+        $gm = new Group_member();
+
+        $gm->profile_id = $this->user->id;
+
+        if ($gm->find()) {
+            while ($gm->fetch()) {
+                $groups[] = clone($gm);
+            }
+        }
+
+        return $groups;
+    }
+}
index f63e152e33aab65278d0366e931acd3cc43cb639..dc853f657b1e53f76b00d162cb22a7dd49fc7ab2 100644 (file)
 
 /* XXX: break up into separate modules (HTTP, user, files) */
 
-// Show a server error
-
+/**
+ * Show a server error.
+ */
 function common_server_error($msg, $code=500)
 {
     $err = new ServerErrorAction($msg, $code);
     $err->showPage();
 }
 
-// Show a user error
+/**
+ * Show a user error.
+ */
 function common_user_error($msg, $code=400)
 {
     $err = new ClientErrorAction($msg, $code);
@@ -37,7 +40,7 @@ function common_user_error($msg, $code=400)
 /**
  * This should only be used at setup; processes switching languages
  * to send text to other users should use common_switch_locale().
- * 
+ *
  * @param string $language Locale language code (optional; empty uses
  *                         current user's preference or site default)
  * @return mixed success
@@ -61,10 +64,10 @@ function common_init_locale($language=null)
 /**
  * Initialize locale and charset settings and gettext with our message catalog,
  * using the current user's language preference or the site default.
- * 
+ *
  * This should generally only be run at framework initialization; code switching
  * languages at runtime should call common_switch_language().
- * 
+ *
  * @access private
  */
 function common_init_language()
@@ -157,7 +160,6 @@ function common_timezone()
 
 function common_language()
 {
-
     // If there is a user logged in and they've set a language preference
     // then return that one...
     if (_have_config() && common_logged_in()) {
@@ -189,8 +191,10 @@ function common_language()
     // Finally, if none of the above worked, use the site's default...
     return common_config('site', 'language');
 }
-// salted, hashed passwords are stored in the DB
 
+/**
+ * Salted, hashed passwords are stored in the DB.
+ */
 function common_munge_password($password, $id)
 {
     if (is_object($id) || is_object($password)) {
@@ -201,8 +205,9 @@ function common_munge_password($password, $id)
     return md5($password . $id);
 }
 
-// check if a username exists and has matching password
-
+/**
+ * Check if a username exists and has matching password.
+ */
 function common_check_user($nickname, $password)
 {
     // empty nickname always unacceptable
@@ -229,7 +234,9 @@ function common_check_user($nickname, $password)
     return $authenticatedUser;
 }
 
-// is the current user logged in?
+/**
+ * Is the current user logged in?
+ */
 function common_logged_in()
 {
     return (!is_null(common_current_user()));
@@ -275,12 +282,10 @@ function common_ensure_session()
 // 3) null to clear
 
 // Initialize to false; set to null if none found
-
 $_cur = false;
 
 function common_set_user($user)
 {
-
     global $_cur;
 
     if (is_null($user) && common_have_session()) {
@@ -366,7 +371,6 @@ function common_rememberme($user=null)
 
 function common_remembered_user()
 {
-
     $user = null;
 
     $packed = isset($_COOKIE[REMEMBERME]) ? $_COOKIE[REMEMBERME] : null;
@@ -428,14 +432,17 @@ function common_remembered_user()
     return $user;
 }
 
-// must be called with a valid user!
-
+/**
+ * must be called with a valid user!
+ */
 function common_forgetme()
 {
     common_set_cookie(REMEMBERME, '', 0);
 }
 
-// who is the current user?
+/**
+ * Who is the current user?
+ */
 function common_current_user()
 {
     global $_cur;
@@ -471,10 +478,11 @@ function common_current_user()
     return $_cur;
 }
 
-// Logins that are 'remembered' aren't 'real' -- they're subject to
-// cookie-stealing. So, we don't let them do certain things. New reg,
-// OpenID, and password logins _are_ real.
-
+/**
+ * Logins that are 'remembered' aren't 'real' -- they're subject to
+ * cookie-stealing. So, we don't let them do certain things. New reg,
+ * OpenID, and password logins _are_ real.
+ */
 function common_real_login($real=true)
 {
     common_ensure_session();
@@ -486,6 +494,29 @@ function common_is_real_login()
     return common_logged_in() && $_SESSION['real_login'];
 }
 
+/**
+ * Get a hash portion for HTTP caching Etags and such including
+ * info on the current user's session. If login/logout state changes,
+ * or we've changed accounts, or we've renamed the current user,
+ * we'll get a new hash value.
+ *
+ * This should not be considered secure information.
+ *
+ * @param User $user (optional; uses common_current_user() if left out)
+ * @return string
+ */
+function common_user_cache_hash($user=false)
+{
+    if ($user === false) {
+        $user = common_current_user();
+    }
+    if ($user) {
+        return crc32($user->id . ':' . $user->nickname);
+    } else {
+        return '0';
+    }
+}
+
 // get canonical version of nickname for comparison
 function common_canonical_nickname($nickname)
 {
@@ -577,9 +608,7 @@ function common_find_mentions($text, $notice)
     }
 
     if (Event::handle('StartFindMentions', array($sender, $text, &$mentions))) {
-
         // Get the context of the original notice, if any
-
         $originalAuthor   = null;
         $originalNotice   = null;
         $originalMentions = array();
@@ -615,7 +644,6 @@ function common_find_mentions($text, $notice)
         $matches = array_merge($tmatches[1], $atmatches[1]);
 
         foreach ($matches as $match) {
-
             $nickname = common_canonical_nickname($match[0]);
 
             // Try to get a profile for this nickname.
@@ -623,19 +651,15 @@ function common_find_mentions($text, $notice)
             // sender context.
 
             if (!empty($originalAuthor) && $originalAuthor->nickname == $nickname) {
-
                 $mentioned = $originalAuthor;
-
             } else if (!empty($originalMentions) &&
                        array_key_exists($nickname, $originalMentions)) {
-
                 $mentioned = $originalMentions[$nickname];
             } else {
                 $mentioned = common_relative_profile($sender, $nickname);
             }
 
             if (!empty($mentioned)) {
-
                 $user = User::staticGet('id', $mentioned->id);
 
                 if ($user) {
@@ -1104,30 +1128,30 @@ function common_date_string($dt)
         // TRANS: Used in notices to indicate when the notice was made compared to now.
         return _('about a minute ago');
     } else if ($diff < 3300) {
-        // XXX: should support plural.
+        $minutes = round($diff/60);
         // TRANS: Used in notices to indicate when the notice was made compared to now.
-        return sprintf(_('about %d minutes ago'), round($diff/60));
+        return sprintf( ngettext('about one minute ago', 'about %d minutes ago', $minutes), $minutes);
     } else if ($diff < 5400) {
         // TRANS: Used in notices to indicate when the notice was made compared to now.
         return _('about an hour ago');
     } else if ($diff < 22 * 3600) {
-        // XXX: should support plural.
+        $hours = round($diff/3600);
         // TRANS: Used in notices to indicate when the notice was made compared to now.
-        return sprintf(_('about %d hours ago'), round($diff/3600));
+        return sprintf( ngettext('about one hour ago', 'about %d hours ago', $hours), $hours);
     } else if ($diff < 37 * 3600) {
         // TRANS: Used in notices to indicate when the notice was made compared to now.
         return _('about a day ago');
     } else if ($diff < 24 * 24 * 3600) {
-        // XXX: should support plural.
+        $days = round($diff/(24*3600));
         // TRANS: Used in notices to indicate when the notice was made compared to now.
-        return sprintf(_('about %d days ago'), round($diff/(24*3600)));
+        return sprintf( ngettext('about one day ago', 'about %d days ago', $days), $days);
     } else if ($diff < 46 * 24 * 3600) {
         // TRANS: Used in notices to indicate when the notice was made compared to now.
         return _('about a month ago');
     } else if ($diff < 330 * 24 * 3600) {
-        // XXX: should support plural.
+        $months = round($diff/(30*24*3600));
         // TRANS: Used in notices to indicate when the notice was made compared to now.
-        return sprintf(_('about %d months ago'), round($diff/(30*24*3600)));
+        return sprintf( ngettext('about one month ago', 'about %d months ago',$months), $months);
     } else if ($diff < 480 * 24 * 3600) {
         // TRANS: Used in notices to indicate when the notice was made compared to now.
         return _('about a year ago');
@@ -1230,8 +1254,9 @@ function common_broadcast_notice($notice, $remote=false)
     // DO NOTHING!
 }
 
-// Stick the notice on the queue
-
+/**
+ * Stick the notice on the queue.
+ */
 function common_enqueue_notice($notice)
 {
     static $localTransports = array('omb',
@@ -1293,8 +1318,9 @@ function common_profile_url($nickname)
                             null, null, false);
 }
 
-// Should make up a reasonable root URL
-
+/**
+ * Should make up a reasonable root URL
+ */
 function common_root_url($ssl=false)
 {
     $url = common_path('', $ssl, false);
@@ -1305,9 +1331,10 @@ function common_root_url($ssl=false)
     return $url;
 }
 
-// returns $bytes bytes of random data as a hexadecimal string
-// "good" here is a goal and not a guarantee
-
+/**
+ * returns $bytes bytes of random data as a hexadecimal string
+ * "good" here is a goal and not a guarantee
+ */
 function common_good_rand($bytes)
 {
     // XXX: use random.org...?
@@ -1343,13 +1370,13 @@ function common_mtrand($bytes)
 /**
  * Record the given URL as the return destination for a future
  * form submission, to be read by common_get_returnto().
- * 
+ *
  * @param string $url
- * 
+ *
  * @fixme as a session-global setting, this can allow multiple forms
  * to conflict and overwrite each others' returnto destinations if
  * the user has multiple tabs or windows open.
- * 
+ *
  * Should refactor to index with a token or otherwise only pass the
  * data along its intended path.
  */
@@ -1362,13 +1389,13 @@ function common_set_returnto($url)
 /**
  * Fetch a return-destination URL previously recorded by
  * common_set_returnto().
- * 
+ *
  * @return mixed URL string or null
- * 
+ *
  * @fixme as a session-global setting, this can allow multiple forms
  * to conflict and overwrite each others' returnto destinations if
  * the user has multiple tabs or windows open.
- * 
+ *
  * Should refactor to index with a token or otherwise only pass the
  * data along its intended path.
  */
@@ -1453,7 +1480,12 @@ function common_log_db_error(&$object, $verb, $filename=null)
 {
     $objstr = common_log_objstring($object);
     $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
-    common_log(LOG_ERR, $last_error->message . '(' . $verb . ' on ' . $objstr . ')', $filename);
+    if (is_object($last_error)) {
+        $msg = $last_error->message;
+    } else {
+        $msg = 'Unknown error (' . var_export($last_error, true) . ')';
+    }
+    common_log(LOG_ERR, $msg . '(' . $verb . ' on ' . $objstr . ')', $filename);
 }
 
 function common_log_objstring(&$object)
@@ -1495,7 +1527,7 @@ function common_valid_tag($tag)
  * Determine if given domain or address literal is valid
  * eg for use in JIDs and URLs. Does not check if the domain
  * exists!
- * 
+ *
  * @param string $domain
  * @return boolean valid or not
  */
@@ -1826,7 +1858,6 @@ function common_compatible_license($from, $to)
  */
 function common_database_tablename($tablename)
 {
-
   if(common_config('db','quote_identifiers')) {
       $tablename = '"'. $tablename .'"';
   }
index e7b29b7247d0e79b1d886a8853e9e8519413378f..982de63ddda9aa9dcf81da686b8fd8aec3156123 100644 (file)
@@ -1,27 +1,29 @@
-# Translation of StatusNet to Afrikaans
+# Translation of StatusNet - Core to Afrikaans (Afrikaans)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Naudefj
+# Author: Naudefj
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:08+0000\n"
-"Language-Team: Afrikaans\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:13+0000\n"
+"Language-Team: Afrikaans <http://translatewiki.net/wiki/Portal:af>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: af\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Toegang"
 
@@ -74,10 +76,10 @@ msgstr "Stoor toegangsinstellings"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Stoor"
@@ -90,15 +92,15 @@ msgstr "Hierdie bladsy bestaan nie."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -192,16 +194,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Opdaterings van %1$s en vriende op %2$s."
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -216,47 +218,49 @@ msgstr "Opdaterings van %1$s en vriende op %2$s."
 msgid "API method not found."
 msgstr "Die API-funksie is nie gevind nie."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Hierdie metode benodig 'n POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Kon nie die gebruiker opdateer nie."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Hierdie gebruiker het nie 'n profiel nie."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Kon nie die profiel stoor nie."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -266,30 +270,30 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Dit was nie moontlik om u ontwerp-instellings te stoor nie."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Dit was nie moontlik om u ontwerp by te werk nie."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "U kan nie uself blokkeer nie!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Die blokkering van die gebruiker het gefaal."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Die deblokkering van die gebruiker het gefaal."
 
@@ -313,64 +317,64 @@ msgstr "Direkte boodskappe aan %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle direkte boodskappe gestuur aan %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Die boodskap bevat geen inhoud nie!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Dit is te lank. Die maksimum boodskaplengte is %d karakters."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Die ontvanger kon gevind word nie."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "U kan nie direkte boodskappe aan gebruikers wat nie op u viendelys is stuur "
 "nie."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Geen status met die ID gevind nie."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Hierdie status is reeds 'n gunsteling."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Dit was nie moontlik om 'n gunsteling te skep nie."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Hierdie status is nie 'n gunsteling nie."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr ""
 "Dit was nie moontlik om die boodskap van u gunstelinge te verwyder nie."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "U kan nie die gebruiker volg nie: die gebruiker bestaan nie."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "U kan nie die gebruiker volg nie: %1 is alreeds op u lys."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "U kan nie die gebruiker van u volglys verwyder nie: die gebruiker bestaan "
 "nie."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "U kan nie ophou om uself te volg nie."
 
@@ -378,7 +382,7 @@ msgstr "U kan nie ophou om uself te volg nie."
 msgid "Two valid IDs or screen_names must be supplied."
 msgstr ""
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -386,77 +390,77 @@ msgstr ""
 "Die gebruikersnaam mag slegs uit kleinletters en syfers bestaan en mag geen "
 "spasies bevat nie."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Die gebruikersnaam is reeds in gebruik. Kies 'n ander een."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Nie 'n geldige gebruikersnaam nie."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Tuisblad is nie 'n geldige URL nie."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Volledige naam is te lang (maksimum 255 karakters)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Die beskrywing is te lank (die maksimum is %d karakters)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Ligging is te lank is (maksimum 255 karakters)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Te veel aliasse! Die maksimum aantal is %d."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Die alias \"%s\" word al reeds gebruik. Probeer 'n ander een."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Die alias kan nie dieselfde as die gebruikersnaam wees nie."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Nie gevind nie."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "U is reeds 'n lid van die groep."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr ""
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "U is nie 'n lid van die groep nie."
 
@@ -494,9 +498,9 @@ msgstr "Ongeldige token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -535,8 +539,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -597,18 +601,18 @@ msgstr "Hierdie metode vereis 'n POST of DELETE."
 msgid "You may not delete another user's status."
 msgstr "U mag nie 'n ander gebruiker se status verwyder nie."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Die kennisgewing bestaan nie."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "U kan nie u eie kennisgewings herhaal nie."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "U het reeds die kennisgewing herhaal."
 
@@ -620,21 +624,21 @@ msgstr "Die status is verwyder."
 msgid "No status with that ID found."
 msgstr "Geen status met die ID gevind nie."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Die kennisgewing is te lank. Gebruik maksimum %d karakters."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Nie gevind nie."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -796,7 +800,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blokkeer hierdie gebruiker"
 
@@ -824,11 +830,13 @@ msgstr "Die groep bestaan nie."
 msgid "Unblock user from group"
 msgstr "Gee gebruiker weer toegang tot die groep"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Deblokkeer"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Deblokkeer hierdie gebruiker"
 
@@ -854,9 +862,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -864,7 +872,7 @@ msgstr "Kon nie gebruiker opdateer nie."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Kon nie e-posbevestiging verwyder nie."
@@ -900,9 +908,10 @@ msgstr "Die applikasie is nie gevind nie."
 msgid "You are not the owner of this application."
 msgstr "U is nie die eienaar van hierdie applikasie nie."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -933,7 +942,7 @@ msgstr "Skrap hierdie applikasie"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Nie aangeteken nie."
@@ -992,7 +1001,6 @@ msgstr "Verwyder die gebruiker"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Ontwerp"
 
@@ -1095,13 +1103,13 @@ msgstr "Gebruik verstekwaardes"
 msgid "Reset back to default"
 msgstr "Stel terug na standaard"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Stoor"
@@ -1257,7 +1265,7 @@ msgstr "Huidige bevestigde e-posadres."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1273,22 +1281,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Kanselleer"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-posadres, soos \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1296,129 +1308,129 @@ msgstr "Voeg by"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Inkomende e-pos"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nuut"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-posadresse"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr ""
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "E-posadresse"
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Geen e-posadres."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Nie 'n geldige e-posadres nie."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Dit is al reeds u e-posadres."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Kon nie e-posbevestiging verwyder nie."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Geen bevestigingskode."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Dit is nie u e-posadres nie."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Inkomende e-posadres is verwyder."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Geen inkomende e-posadres."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kon nie gebruikersdata opdateer nie."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Inkomende e-posadres is verwyder."
 
@@ -1547,7 +1559,7 @@ msgstr "Geen groep verskaf nie."
 msgid "Only an admin can block group members."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Blok gebruiker toegang tot die groep"
 
@@ -1596,26 +1608,34 @@ msgstr "Logo opgedateer."
 msgid "Failed updating logo."
 msgstr "Die opdatering van die logo het gefaal."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "lede van die groep %s"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrateur"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blokkeer"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Maak Admin"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Maak hierdie gebruiker 'n administrateur"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1721,7 +1741,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1729,63 +1752,63 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Voorkeure is gestoor."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Voorkeure is gestoor."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Geen Jabber-ID nie."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Dit was nie moontlik om die Jabber-ID te normaliseer nie"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Nie 'n geldige Jabber-ID nie"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Dit is al reeds u Jabber-ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Die Jabber-ID word reeds deur 'n ander gebruiker gebruik."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1793,28 +1816,28 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Dit is die verkeerde IM-adres."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Kon nie e-posbevestiging verwyder nie."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Geen bevestigingskode."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Dit is nie u Jabber-ID nie."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Inkomende e-posadres is verwyder."
 
@@ -2236,7 +2259,7 @@ msgid "Password saved."
 msgstr "Wagwoord gestoor."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Paaie"
 
@@ -2413,7 +2436,7 @@ msgstr "Volledige naam"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Tuisblad"
 
@@ -2491,7 +2514,7 @@ msgid "Invalid tag: \"%s\""
 msgstr "Ongeldige etiket: \"$s\""
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Voorkeure is gestoor."
 
@@ -2811,7 +2834,7 @@ msgstr "StatusNet"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessies"
 
@@ -2832,24 +2855,24 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ikoon"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Naam"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisasie"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beskrywing"
 
@@ -2914,7 +2937,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s groep"
@@ -2951,7 +2974,7 @@ msgstr "Groepsaksies"
 msgid "FOAF for %s group"
 msgstr "Vriend van 'n vriend vir die groep %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Lede"
 
@@ -3238,7 +3261,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3391,6 +3414,10 @@ msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
 msgstr ""
 
+#: actions/tagother.php:200
+msgid "Could not save tags."
+msgstr "Kon nie die etikette stoor nie."
+
 #: actions/tagrss.php:35
 msgid "No such tag."
 msgstr "Onbekende etiket."
@@ -3695,18 +3722,18 @@ msgid "Problem saving notice."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -3726,7 +3753,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3828,7 +3855,8 @@ msgid "Change site configuration"
 msgstr ""
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Beheer"
@@ -3943,7 +3971,10 @@ msgid "StatusNet software license"
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -3951,13 +3982,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3966,44 +4000,45 @@ msgid ""
 msgstr ""
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Na"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Voor"
 
@@ -4012,109 +4047,144 @@ msgstr "Voor"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Webtuiste"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Ontwerp"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Gebruiker"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Webblaaier"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Lees-alleen"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lees-skryf"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Kanselleer"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Verwyder"
@@ -4134,7 +4204,8 @@ msgstr "Outeur"
 msgid "Provider"
 msgstr "Verskaffer"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etikette vir hierdie aanhangsel"
 
@@ -4146,6 +4217,11 @@ msgstr "Wagwoord wysiging het misluk"
 msgid "Password changing is not allowed"
 msgstr "Wagwoord verandering word nie toegelaat nie"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokkeer"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Opdragresultate"
@@ -4159,6 +4235,12 @@ msgstr "Opdrag voltooi"
 msgid "Notice with that id does not exist."
 msgstr ""
 
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr ""
+
 #. TRANS: Message given requesting a profile for a non-existing user.
 #. TRANS: %s is the nickname of the user for which the profile could not be found.
 #: lib/command.php:130
@@ -4183,6 +4265,13 @@ msgstr ""
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr ""
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr ""
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -4200,6 +4289,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr ""
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4248,6 +4351,20 @@ msgstr ""
 msgid "Error sending direct message."
 msgstr ""
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr ""
+
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr ""
+
 #. TRANS: Text shown having sent a reply to a notice successfully.
 #. TRANS: %s is the nickname of the user of the notice the reply was sent to.
 #: lib/command.php:603
@@ -4278,6 +4395,13 @@ msgstr ""
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
 #: lib/command.php:731
 msgid "Can't turn off notification."
@@ -4303,7 +4427,7 @@ msgid "Unsubscribed %s."
 msgstr ""
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4312,7 +4436,7 @@ msgstr[0] "U volg hierdie gebruiker:"
 msgstr[1] "U volg hierdie gebruikers:"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4327,7 +4451,7 @@ msgid "You are not a member of any groups."
 msgstr "U is nie 'n lid van enige groep nie."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4335,6 +4459,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "U is 'n lid van hierdie groep:"
 msgstr[1] "U is 'n lid van hierdie groepe:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4432,7 +4557,7 @@ msgstr "Vriende van vriende (FOAF)"
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "Eksporteer data"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
@@ -4486,30 +4611,75 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Groep"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Geblokkeer"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s geblokkeerde gebruikers"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4520,14 +4690,15 @@ msgstr ""
 #: lib/grouptagcloudsection.php:56
 #, php-format
 msgid "Tags in %s group's notices"
-msgstr ""
+msgstr "Etikette in groepsaankondigings van %s"
 
 #. TRANS: Client exception 406
 #: lib/htmloutputter.php:104
 msgid "This page is not available in a media type you accept"
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -4791,52 +4962,69 @@ msgstr "Jammer, dit is nie u inkomende e-posadres nie."
 msgid "Sorry, no incoming email allowed."
 msgstr "Jammer, inkomende e-pos word nie toegelaat nie."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
@@ -4925,15 +5113,20 @@ msgid "Nudge"
 msgstr "Aanpor"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
+msgid "Error inserting new profile."
 msgstr ""
 
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
+#: lib/oauthstore.php:291
+msgid "Error inserting avatar."
 msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
 msgstr ""
 
 #: lib/personalgroupnav.php:99
@@ -4963,9 +5156,10 @@ msgstr ""
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
-msgstr ""
+msgstr "Etikette in die aankondigings van %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Onbekend"
 
@@ -5026,13 +5220,16 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Term(e)"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Soek"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -5126,10 +5323,6 @@ msgstr ""
 msgid "Theme contains file of type '.%s', which is not allowed."
 msgstr ""
 
-#: lib/themeuploader.php:259
-msgid "Error opening theme archive."
-msgstr ""
-
 #: lib/topposterssection.php:74
 msgid "Top posters"
 msgstr "Mees aktiewe gebruikers"
@@ -5189,56 +5382,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "'n paar sekondes gelede"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "ongeveer 'n minuut gelede"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "ongeveer %d minute gelede"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "ongeveer 'n uur gelede"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "ongeveer %d uur gelede"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "ongeveer een dag gelede"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "ongeveer %d dae gelede"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "ongeveer een maand gelede"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "ongeveer %d maande gelede"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "ongeveer een jaar gelede"
 
index 5d7fe771862a8881189283222204674a07605435..5ab941eab89b94fc9a978baff25cdefae926e1b5 100644 (file)
@@ -1,30 +1,33 @@
-# Translation of StatusNet to Arabic
+# Translation of StatusNet - Core to Arabic (العربية)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Meno25
-# Author@translatewiki.net: OsamaK
+# Author: Brion
+# Author: Meno25
+# Author: OsamaK
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:12+0000\n"
-"Language-Team: Arabic\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:19+0000\n"
+"Language-Team: Arabic <http://translatewiki.net/wiki/Portal:ar>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ar\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
-"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == "
+"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= "
+"99) ? 4 : 5 ) ) ) );\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "نفاذ"
 
@@ -77,10 +80,10 @@ msgstr "حفظ إعدادت الوصول"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "احفظ"
@@ -93,15 +96,15 @@ msgstr "لا صفحة كهذه."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -172,29 +175,22 @@ msgid ""
 "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
 
-#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
-#, php-format
-msgid ""
-"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
-"post a notice to them."
-msgstr ""
-
 #. TRANS: H1 text
 #: actions/all.php:182
 msgid "You and friends"
 msgstr "أنت والأصدقاء"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -209,47 +205,49 @@ msgstr "أنت والأصدقاء"
 msgid "API method not found."
 msgstr "لم يتم العثور على وسيلة API."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "تتطلب هذه الطريقة POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "تعذّر تحديث المستخدم."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "ليس للمستخدم ملف شخصي."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "لم يمكن حفظ الملف."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -259,20 +257,20 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "تعذّر تحديث تصميمك."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "لا يمكنك منع نفسك!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "فشل منع المستخدم."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "فشل إلغاء منع المستخدم."
 
@@ -296,36 +294,36 @@ msgstr "رسالة مباشرة %s"
 msgid "All the direct messages sent to %s"
 msgstr "كل الرسائل المباشرة التي أرسلت إلى %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "لا نص في الرسالة!"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "لم يُعثر على المستخدم المستلم."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "هذه الحالة مفضلة بالفعل."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "تعذّر إنشاء مفضلة."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "تلك الحالة ليست مفضلة."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "تعذّر حذف المفضلة."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "لا يمكنك عدم متابعة نفسك."
 
@@ -341,67 +339,67 @@ msgstr "تعذّر تحديد المستخدم المصدر."
 msgid "Could not find target user."
 msgstr "تعذّر إيجاد المستخدم الهدف."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "الاسم المستعار مستخدم بالفعل. جرّب اسمًا آخرًا."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "ليس اسمًا مستعارًا صحيحًا."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "الصفحة الرئيسية ليست عنونًا صالحًا."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "كنيات كيرة! العدد الأقصى هو %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "كنية غير صالحة: \"%s\"."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "المجموعة غير موجودة."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "لم يمكن ضم المستخدم %1$s إلى المجموعة %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "لست عضوًا في هذه المجموعة"
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -437,9 +435,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -482,8 +480,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -536,18 +534,18 @@ msgstr "اسمح"
 msgid "Allow or deny access to your account information."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "لا إشعار كهذا."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "لا يمكنك تكرار ملحوظتك الخاصة."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "كرر بالفعل هذه الملاحظة."
 
@@ -559,21 +557,21 @@ msgstr "حُذِفت الحالة."
 msgid "No status with that ID found."
 msgstr "لا حالة وُجدت بهذه الهوية."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "هذه طويلة جدًا. أطول حجم للإشعار %d  حرفًا."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "لم يوجد."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -742,7 +740,9 @@ msgid "Yes"
 msgstr "نعم"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "امنع هذا المستخدم"
 
@@ -775,11 +775,13 @@ msgstr "%1$s ملفات ممنوعة, الصفحة %2$d"
 msgid "Unblock user from group"
 msgstr "ألغ منع المستخدم من المجموعة"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "ألغِ المنع"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "ألغِ منع هذا المستخدم"
 
@@ -813,9 +815,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -823,7 +825,7 @@ msgstr "تعذّر تحديث المستخدم."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "تعذّر حذف تأكيد البريد الإلكتروني."
@@ -859,9 +861,10 @@ msgstr "لم يوجد التطبيق."
 msgid "You are not the owner of this application."
 msgstr "أنت لست مالك هذا التطبيق."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -892,7 +895,7 @@ msgstr "احذف هذا التطبيق"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "لست والجًا."
@@ -951,7 +954,6 @@ msgstr "احذف هذا المستخدم"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "التصميم"
 
@@ -1062,13 +1064,13 @@ msgstr "استعد التصميمات المبدئية"
 msgid "Reset back to default"
 msgstr "ارجع إلى المبدئي"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "أرسل"
@@ -1207,7 +1209,7 @@ msgstr "عنوان البريد الإلكتروني المُؤكد الحالي
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1223,22 +1225,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "ألغِ"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "عنوان البريد الإلكتروني، مثل \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1246,138 +1252,138 @@ msgstr "أضف"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "البريد الإلكتروني الوارد"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "أرسل بريدًا إلكترونيًا إلى هذا العنوان لترسل إشعارات جديدة."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "أنشئ عنوان بريد إلكتروني لترسل إليه؛ ألغِ القديم."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "جديد"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "تفضيلات البريد الإلكتروني"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "أرسل لي إشعارات بالاشتراكات الجديدة عبر البريد الإلكتروني."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "أرسل لي بريدًا إلكرتونيًا عندما يضيف أحدهم إشعاري مفضلة."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد رسالة خاصة."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "أرسل لي بريدًا إلكترونيًا عندما يرسل لي أحد \"@-رد\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "اسمح لأصدقائي بتنبيهي ومراسلتي عبر البريد الإلكتروني."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكتروني."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "انشر هوية مصغّرة لعنوان بريدي الإلكتروني."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "حُفظت تفضيلات البريد الإلكرتوني."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "لا عنوان بريد إلكتروني."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "ليس عنوان بريد صالح."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "هذا هو عنوان بريدك الإكتروني سابقًا."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "هذا البريد الإلكتروني ملك مستخدم آخر بالفعل."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "تعذّر إدراج رمز التأكيد."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "هذا عنوان بريد إلكتروني خطأ."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "أُلغي تأكيد البريد الإلكتروني."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "هذا ليس عنوان بريدك الإلكتروني."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "أزيل عنوان البريد الإلكتروني."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "لا عنوان بريد إلكتروني وارد."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "تعذّر تحديث سجل المستخدم."
@@ -1487,7 +1493,7 @@ msgstr ""
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "خطأ أثناء تحديث الملف الشخصي البعيد."
 
@@ -1536,7 +1542,7 @@ msgstr ""
 msgid "User is not a member of group."
 msgstr "المستخدم ليس عضوًا في المجموعة."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "امنع المستخدم من المجموعة"
 
@@ -1605,39 +1611,49 @@ msgstr "حُدّث الشعار."
 msgid "Failed updating logo."
 msgstr "فشل رفع الشعار."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "أعضاء مجموعة %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s أعضاء المجموعة, الصفحة %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "قائمة بمستخدمي هذه المجموعة."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "إداري"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "امنع"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "اجعل المستخدم إداريًا في المجموعة"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "اجعله إداريًا"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "اجعل هذا المستخدم إداريًا"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1761,7 +1777,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1769,38 +1788,38 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "تفضيلات المحادثة الفورية"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "حُفِظت التفضيلات."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "لا هوية جابر."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "ليست هوية جابر صالحة"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1808,28 +1827,28 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "هذا عنوان محادثة فورية خاطئ."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "تعذّر حذف تأكيد البريد المراسلة الفورية."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "أُلغي تأكيد المراسلة الفورية."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "هذه ليست هويتك في جابر."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "أزيل عنوان المراسلة الفورية هذا."
 
@@ -2192,12 +2211,6 @@ msgstr ""
 msgid "%1$s's status on %2$s"
 msgstr "حالة %1$s في يوم %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2205,8 +2218,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "ليس نسق بيانات مدعوم."
 
@@ -2342,7 +2355,7 @@ msgid "Password saved."
 msgstr "حُفظت كلمة السر."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "المسارات"
 
@@ -2543,7 +2556,7 @@ msgstr "الاسم الكامل"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "الصفحة الرئيسية"
 
@@ -2634,7 +2647,7 @@ msgid "Couldn't save tags."
 msgstr "تعذّر حفظ الوسوم."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "حُفظت الإعدادات."
 
@@ -3076,7 +3089,7 @@ msgstr "ستاتس نت"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "الجلسات"
 
@@ -3106,24 +3119,24 @@ msgid "You must be logged in to view an application."
 msgstr "يجب أن تكون مسجل الدخول لرؤية تطبيق."
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "أيقونة"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "الاسم"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "المنظمة"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "الوصف"
 
@@ -3201,26 +3214,11 @@ msgid ""
 "notices you like to bookmark them for later or shed a spotlight on them."
 msgstr ""
 
-#: actions/showfavorites.php:208
-#, php-format
-msgid ""
-"%s hasn't added any favorite notices yet. Post something interesting they "
-"would add to their favorites :)"
-msgstr ""
-
-#: actions/showfavorites.php:212
-#, php-format
-msgid ""
-"%s hasn't added any favorite notices yet. Why not [register an account](%%%%"
-"action.register%%%%) and then post something interesting they would add to "
-"their favorites :)"
-msgstr ""
-
 #: actions/showfavorites.php:243
 msgid "This is a way to share what you like."
 msgstr "إنها إحدى وسائل مشاركة ما تحب."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "مجموعة %s"
@@ -3263,7 +3261,7 @@ msgstr ""
 msgid "Notice feed for %s group (Atom)"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "الأعضاء"
 
@@ -3645,7 +3643,7 @@ msgstr "لم تدخل رمزًا"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4199,13 +4197,13 @@ msgid "Problem saving notice."
 msgstr "مشكلة أثناء حفظ الإشعار."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "آر تي @%1$s %2$s"
@@ -4225,7 +4223,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -4368,7 +4366,8 @@ msgid "Change site configuration"
 msgstr "غيّر ضبط الموقع"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "إداري"
@@ -4445,7 +4444,7 @@ msgstr "ابحث"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "إشعار الموقع"
 
@@ -4503,22 +4502,17 @@ msgstr "الجسر"
 msgid "StatusNet software license"
 msgstr "رخصة برنامج StatusNet"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4530,44 +4524,45 @@ msgstr ""
 "agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "رخصة محتوى الموقع"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "بعد"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "قبل"
 
@@ -4576,174 +4571,209 @@ msgstr "قبل"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "لا يمكنك إجراء تغييرات على هذا الموقع."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "التغييرات لهذه اللوحة غير مسموح بها."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "تعذّر حذف إعدادات التصميم."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "ضبط الموقع الأساسي"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "الموقع"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "ضبط التصميم"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "التصميم"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "ضبط المستخدم"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "المستخدم"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "ضبط الحساب"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "ضبط المسارات"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "ضبط الجلسات"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "عدّل إشعار الموقع"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "عدّل التطبيق"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "أيقونة لهذا التطبيق"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "صف تطبيقك"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "مسار صفحة هذا التطبيق"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "مسار المصدر"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "متصفح"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "ألغِ"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "أزل"
@@ -4763,7 +4793,8 @@ msgstr "المؤلف"
 msgid "Provider"
 msgstr "المزود"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "وسوم هذا المرفق"
 
@@ -4775,6 +4806,11 @@ msgstr "تغيير كلمة السر فشل"
 msgid "Password changing is not allowed"
 msgstr "تغيير كلمة السر غير مسموح به"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "امنع"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "نتائج الأمر"
@@ -4787,6 +4823,13 @@ msgstr "اكتمل الأمر"
 msgid "Command failed"
 msgstr "فشل الأمر"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Command exception text shown when a user tries to nudge themselves.
 #: lib/command.php:231
 msgid "It does not make a lot of sense to nudge yourself!"
@@ -4807,6 +4850,20 @@ msgstr ""
 "المشتركون: %2$s\n"
 "الإشعارات: %3$s"
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4875,12 +4932,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4919,13 +4990,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "لست مُشتركًا بأي أحد."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4944,7 +5022,7 @@ msgid "No one is subscribed to you."
 msgstr "لا أحد مشترك بك."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4963,7 +5041,7 @@ msgid "You are not a member of any groups."
 msgstr "لست عضوًا في أي مجموعة."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4975,6 +5053,7 @@ msgstr[3] "أنت عضو في هذه المجموعات:"
 msgstr[4] ""
 msgstr[5] ""
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5170,32 +5249,77 @@ msgstr "صِف المجموعة أو الموضوع"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "مجموعات"
+msgstr ""
 
-#: lib/groupnav.php:101
-msgid "Blocked"
-msgstr "ممنوع"
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "عدّل خصائص مجموعة %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "الشعار"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "أضف أو عدّل شعار %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "أضف أو عدل تصميم %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5220,7 +5344,8 @@ msgstr ""
 msgid "That file is too big. The maximum file size is %s."
 msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -5525,56 +5650,75 @@ msgstr "ليس مستخدمًا مسجلًا."
 msgid "Unsupported message type: %s"
 msgstr "نوع رسالة غير مدعوم: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "فشل في كتابة الملف إلى القرص."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "أوقفت إضافة رفع الملف."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "لم يمكن تحديد نوع MIME للملف."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5687,26 +5831,23 @@ msgid "Nudge"
 msgstr "نبّه"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "خطأ أثناء إدراج الملف الشخصي الجديد"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "خطأ في إدراج الأفتار"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "خطأ أثناء تحديث الملف الشخصي البعيد"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "خطأ أثناء إدراج الملف الشخصي البعيد"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "ضاعف الإشعار"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "تعذّر إدراج اشتراك جديد."
 
@@ -5743,7 +5884,8 @@ msgstr "رسائلك المُرسلة"
 msgid "Tags in %s's notices"
 msgstr "وسوم في إشعارات %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "غير معروفة"
 
@@ -5832,19 +5974,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr "أضف هذا المستخدم إلى صندوق الرمل"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "ابحث في الموقع"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "الكلمات المفتاحية"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "ابحث"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "ابحث في المساعدة"
 
@@ -6024,32 +6171,80 @@ msgid "Moderator"
 msgstr "مراقب"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "قبل لحظات قليلة"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "قبل دقيقة تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1110
+#, php-format
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "قبل ساعة تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1117
+#, php-format
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "قبل يوم تقريبا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1124
+#, php-format
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "قبل شهر تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1131
+#, php-format
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "قبل سنة تقريبًا"
 
index 425dcbe481c4c6d1244d00d2a21abf028c83f550..c4c8f4a3bcea15a9c1fd8bc097c21bf759410908 100644 (file)
@@ -1,30 +1,33 @@
-# Translation of StatusNet to Egyptian Spoken Arabic
+# Translation of StatusNet - Core to Egyptian Spoken Arabic (مصرى)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Dudi
-# Author@translatewiki.net: Ghaly
-# Author@translatewiki.net: Meno25
+# Author: Dudi
+# Author: Ghaly
+# Author: Meno25
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:18+0000\n"
-"Language-Team: Egyptian Spoken Arabic\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:21+0000\n"
+"Language-Team: Egyptian Spoken Arabic <http://translatewiki.net/wiki/Portal:"
+"arz>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: arz\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
 "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "نفاذ"
 
@@ -67,15 +70,15 @@ msgstr "لا وسم كهذا."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -146,29 +149,22 @@ msgid ""
 "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
 
-#: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
-#, php-format
-msgid ""
-"Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
-"post a notice to them."
-msgstr ""
-
 #. TRANS: H1 text
 #: actions/all.php:182
 msgid "You and friends"
 msgstr "أنت والأصدقاء"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -183,47 +179,49 @@ msgstr "أنت والأصدقاء"
 msgid "API method not found."
 msgstr "الـ API method مش موجوده."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "تتطلب هذه الطريقه POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "تعذّر تحديث المستخدم."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "ليس للمستخدم ملف شخصى."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "لم يمكن حفظ الملف."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -233,20 +231,20 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "تعذّر تحديث تصميمك."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "ما ينفعش تمنع نفسك!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "فشل منع المستخدم."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "فشل إلغاء منع المستخدم."
 
@@ -260,36 +258,36 @@ msgstr "رسائل مباشره من %s"
 msgid "Direct messages to %s"
 msgstr "رساله مباشره %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "لا نص فى الرسالة!"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "لم يُعثر على المستخدم المستلم."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "الحاله دى موجوده فعلا فى التفضيلات."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "تعذّر إنشاء مفضله."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "الحاله دى مش محطوطه فى التفضيلات."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "تعذّر حذف المفضله."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "ما ينفعش عدم متابعة نفسك."
 
@@ -301,70 +299,70 @@ msgstr ""
 msgid "Could not find target user."
 msgstr "تعذّر إيجاد المستخدم الهدف."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr ""
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "ليس اسمًا مستعارًا صحيحًا."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "الصفحه الرئيسيه ليست عنونًا صالحًا."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "لم يوجد."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "ما نفعش يضم %1$s للجروپ %2$s."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -394,9 +392,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -431,8 +429,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -485,18 +483,18 @@ msgstr "اسمح"
 msgid "Allow or deny access to your account information."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "لا إشعار كهذا."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "مش نافعه تتكرر الملاحظتك بتاعتك."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "الملاحظه اتكررت فعلا."
 
@@ -504,15 +502,15 @@ msgstr "الملاحظه اتكررت فعلا."
 msgid "Status deleted."
 msgstr "حُذِفت الحاله."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "لم يوجد."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -670,7 +668,9 @@ msgid "Do not block this user"
 msgstr "لا تمنع هذا المستخدم"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "امنع هذا المستخدم"
 
@@ -703,11 +703,13 @@ msgstr "%1$s فايلات معمول ليها بلوك, الصفحه %2$d"
 msgid "Unblock user from group"
 msgstr "ألغ منع المستخدم من المجموعة"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "ألغِ المنع"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "ألغِ منع هذا المستخدم"
 
@@ -735,9 +737,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -745,7 +747,7 @@ msgstr "تعذّر تحديث المستخدم."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "تعذّر حذف تأكيد البريد الإلكترونى."
@@ -777,9 +779,10 @@ msgstr "لازم يكون متسجل دخولك علشان تعدّل applicatio
 msgid "You are not the owner of this application."
 msgstr "انت مش بتملك الapplication دى."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -800,7 +803,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "لست والجًا."
@@ -859,7 +862,6 @@ msgstr "احذف هذا المستخدم"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "التصميم"
 
@@ -963,13 +965,13 @@ msgstr "استعد التصميمات المبدئية"
 msgid "Reset back to default"
 msgstr "ارجع إلى المبدئي"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "أرسل"
@@ -1104,7 +1106,7 @@ msgstr "عنوان البريد الإلكترونى المُؤكد الحالى
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1117,124 +1119,112 @@ msgid ""
 "a message with further instructions."
 msgstr ""
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "عنوان البريد الإلكترونى، مثل \"UserName@example.org\""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "البريد الإلكترونى الوارد"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "أرسل بريدًا إلكترونيًا إلى هذا العنوان لترسل إشعارات جديده."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "أنشئ عنوان بريد إلكترونى لترسل إليه؛ ألغِ القديم."
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "عناوين البريد الإلكتروني"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "أرسل لى إشعارات بالاشتراكات الجديده عبر البريد الإلكترونى."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "أرسل لى بريدًا إلكرتونيًا عندما يضيف أحدهم إشعارى مفضله."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "أرسل لى بريدًا إلكترونيًا عندما يرسل لى أحدهم \"@-رد\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "أريد أن أرسل الملاحظات عبر البريد الإلكترونى."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "لا عنوان بريد إلكترونى."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "ليس عنوان بريد صالح."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "هذا هو عنوان بريدك الإكترونى سابقًا."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "هذا البريد الإلكترونى ملك مستخدم آخر بالفعل."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "تعذّر إدراج رمز التأكيد."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "لا رمز تأكيد."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "هذا ليس عنوان بريدك الإلكترونى."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "لا عنوان بريد إلكترونى."
 
@@ -1371,7 +1361,7 @@ msgstr ""
 msgid "User is not a member of group."
 msgstr "المستخدم ليس عضوًا فى المجموعه."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "امنع المستخدم من المجموعة"
 
@@ -1436,31 +1426,45 @@ msgstr "حُدّث الشعار."
 msgid "Failed updating logo."
 msgstr "فشل رفع الشعار."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "أعضاء مجموعه %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s اعضاء الجروپ, صفحه %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "قائمه بمستخدمى هذه المجموعه."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "إداري"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "امنع"
+msgstr ""
+
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "اجعل هذا المستخدم إداريًا"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1580,7 +1584,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1588,43 +1595,43 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "حُفِظت التفضيلات."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "حُفِظت التفضيلات."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "لا هويه جابر."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "ليست هويه جابر صالحة"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1632,21 +1639,26 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "هذا عنوان محادثه فوريه خاطئ."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "لا رمز تأكيد."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "هذه ليست هويتك فى جابر."
 
+#: actions/inbox.php:59
+#, php-format
+msgid "Inbox for %1$s - page %2$d"
+msgstr ""
+
 #: actions/inbox.php:62
 #, php-format
 msgid "Inbox for %s"
@@ -1712,12 +1724,6 @@ msgstr "رساله شخصية"
 msgid "Optionally add a personal message to the invitation."
 msgstr ""
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1987,12 +1993,6 @@ msgstr ""
 msgid "Developers can edit the registration settings for their applications "
 msgstr ""
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2000,8 +2000,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr " مش نظام بيانات مدعوم."
 
@@ -2061,6 +2061,11 @@ msgstr "امارة تسجيل الدخول اللى اتحطت مش موجوده
 msgid "Login token expired."
 msgstr "تاريخ صلاحية الاماره خلص."
 
+#: actions/outbox.php:58
+#, php-format
+msgid "Outbox for %1$s - page %2$d"
+msgstr ""
+
 #: actions/outbox.php:116
 msgid "This is your outbox, which lists private messages you have sent."
 msgstr ""
@@ -2123,7 +2128,7 @@ msgid "Password saved."
 msgstr "حُفظت كلمه السر."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "المسارات"
 
@@ -2321,7 +2326,7 @@ msgstr "الاسم الكامل"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "الصفحه الرئيسية"
 
@@ -2401,15 +2406,10 @@ msgid "Couldn't save tags."
 msgstr "تعذّر حفظ الوسوم."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "حُفظت الإعدادات."
 
-#: actions/public.php:83
-#, php-format
-msgid "Beyond the page limit (%s)."
-msgstr ""
-
 #: actions/public.php:130
 #, php-format
 msgid "Public timeline, page %d"
@@ -2830,14 +2830,10 @@ msgstr "StatusNet"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "الجلسات"
 
-#: actions/sessionsadminpanel.php:65
-msgid "Session settings for this StatusNet site."
-msgstr ""
-
 #: actions/sessionsadminpanel.php:177
 msgid "Whether to handle sessions ourselves."
 msgstr ""
@@ -2859,25 +2855,29 @@ msgstr "اذف إعدادت الموقع"
 msgid "You must be logged in to view an application."
 msgstr "لازم تكون مسجل دخولك علشان تشوف اى application."
 
+#: actions/showapplication.php:157
+msgid "Application profile"
+msgstr ""
+
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "الاسم"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "المنظمه"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "الوصف"
 
@@ -2942,26 +2942,11 @@ msgid ""
 "notices you like to bookmark them for later or shed a spotlight on them."
 msgstr ""
 
-#: actions/showfavorites.php:208
-#, php-format
-msgid ""
-"%s hasn't added any favorite notices yet. Post something interesting they "
-"would add to their favorites :)"
-msgstr ""
-
-#: actions/showfavorites.php:212
-#, php-format
-msgid ""
-"%s hasn't added any favorite notices yet. Why not [register an account](%%%%"
-"action.register%%%%) and then post something interesting they would add to "
-"their favorites :)"
-msgstr ""
-
 #: actions/showfavorites.php:243
 msgid "This is a way to share what you like."
 msgstr "إنها إحدى وسائل مشاركه ما تحب."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "مجموعه %s"
@@ -3004,7 +2989,7 @@ msgstr ""
 msgid "Notice feed for %s group (Atom)"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "الأعضاء"
 
@@ -3099,10 +3084,6 @@ msgstr "لا يمكنك إسكات المستخدمين على هذا الموق
 msgid "User is already silenced."
 msgstr "المستخدم مسكت من قبل."
 
-#: actions/siteadminpanel.php:69
-msgid "Basic settings for this StatusNet site"
-msgstr ""
-
 #: actions/siteadminpanel.php:133
 msgid "Site name must have non-zero length."
 msgstr "يجب ألا يكون طول اسم الموقع صفرًا."
@@ -3116,10 +3097,6 @@ msgstr "لازم يكون عندك عنوان ايميل صالح."
 msgid "Unknown language \"%s\"."
 msgstr "لغه مش معروفه \"%s\"."
 
-#: actions/siteadminpanel.php:165
-msgid "Minimum text limit is 0 (unlimited)."
-msgstr ""
-
 #: actions/siteadminpanel.php:171
 msgid "Dupe limit must be one or more seconds."
 msgstr ""
@@ -3288,7 +3265,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3296,6 +3273,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "ضبط التصميم"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3821,13 +3802,13 @@ msgid "Problem saving notice."
 msgstr "مشكله أثناء حفظ الإشعار."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "آر تى @%1$s %2$s"
@@ -3852,7 +3833,7 @@ msgid "Unable to save tag."
 msgstr "تعذّر حفظ الوسوم."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3954,12 +3935,6 @@ msgstr "%1$s - %2$s"
 msgid "Untitled page"
 msgstr "صفحه غير مُعنونة"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
@@ -4002,15 +3977,9 @@ msgctxt "TOOLTIP"
 msgid "Help me!"
 msgstr "مساعدة"
 
-#. TRANS: Tooltip for main menu option "Search"
-#: lib/action.php:513
-msgctxt "TOOLTIP"
-msgid "Search for people or text"
-msgstr ""
-
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "إشعار الموقع"
 
@@ -4059,22 +4028,17 @@ msgstr "المصدر"
 msgid "Contact"
 msgstr "اتصل"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4086,44 +4050,45 @@ msgstr ""
 "agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "رخصه محتوى الموقع"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "بعد"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "قبل"
 
@@ -4132,132 +4097,166 @@ msgstr "قبل"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "التغييرات مش مسموحه للـ لوحه دى."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "تعذّر حذف إعدادات التصميم."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "ضبط الموقع الأساسي"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "ضبط التصميم"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "المستخدم"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "ضبط المسارات"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "اوصف الapplication بتاعتك"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Source URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "ألغِ"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "استرجع"
@@ -4277,7 +4276,8 @@ msgstr "المؤلف"
 msgid "Provider"
 msgstr "المزود"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "وسوم هذا المرفق"
 
@@ -4289,6 +4289,11 @@ msgstr "تغيير الپاسوورد فشل"
 msgid "Password changing is not allowed"
 msgstr "تغيير الپاسوورد مش مسموح"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "امنع"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "نتائج الأمر"
@@ -4301,6 +4306,13 @@ msgstr "اكتمل الأمر"
 msgid "Command failed"
 msgstr "فشل الأمر"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4326,6 +4338,20 @@ msgstr ""
 "المشتركون: %2$s\n"
 "الإشعارات: %3$s"
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4394,12 +4420,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
 #: lib/command.php:731
 msgid "Can't turn off notification."
@@ -4417,13 +4457,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "لست مُشتركًا بأى أحد."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4442,7 +4489,7 @@ msgid "No one is subscribed to you."
 msgstr "لا أحد مشترك بك."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4461,7 +4508,7 @@ msgid "You are not a member of any groups."
 msgstr "لست عضوًا فى أى مجموعه."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4473,6 +4520,7 @@ msgstr[3] "أنت عضو فى هذه المجموعات:"
 msgstr[4] ""
 msgstr[5] ""
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4640,27 +4688,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "مجموعات"
+msgstr ""
 
-#: lib/groupnav.php:101
-msgid "Blocked"
-msgstr "ممنوع"
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "عدّل خصائص مجموعه %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "الشعار"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "أضف أو عدّل شعار %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -4680,7 +4778,8 @@ msgstr ""
 msgid "That file is too big. The maximum file size is %s."
 msgstr "هذا الملف كبير جدًا. إن أقصى حجم للملفات هو %s."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -4940,56 +5039,75 @@ msgstr ""
 msgid "Unsupported message type: %s"
 msgstr "نوع رساله مش مدعوم: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "فشل فى كتابه الملف إلى القرص."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "مش نافع يتحدد نوع الـMIME بتاع الفايل."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5004,11 +5122,6 @@ msgstr "إلى"
 msgid "Available characters"
 msgstr "المحارف المتوفرة"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "أرسل إشعارًا"
@@ -5102,26 +5215,23 @@ msgid "Nudge"
 msgstr "نبّه"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "خطأ أثناء إدراج الملف الشخصى الجديد"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "خطأ فى إدراج الأفتار"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "خطأ أثناء تحديث الملف الشخصى البعيد"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "خطأ أثناء إدراج الملف الشخصى البعيد"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "ضاعف الإشعار"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "تعذّر إدراج اشتراك جديد."
 
@@ -5153,12 +5263,8 @@ msgstr "صندوق الصادر"
 msgid "Your sent messages"
 msgstr "رسائلك المُرسلة"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "مش معروف"
 
@@ -5243,19 +5349,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr "أضف هذا المستخدم إلى صندوق الرمل"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "ابحث فى الموقع"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "الكلمات المفتاحية"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "ابحث"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "ابحث فى المساعدة"
 
@@ -5431,32 +5542,80 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "قبل لحظات قليلة"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "قبل دقيقه تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1110
+#, php-format
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "قبل ساعه تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1117
+#, php-format
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "قبل يوم تقريبا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1124
+#, php-format
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "قبل شهر تقريبًا"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1131
+#, php-format
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "قبل سنه تقريبًا"
 
index 5860ef4cfc5b18568fd652658aaa5552ef01f940..b3e0e2950d5e926bff09528bb42eb5d00dbdedca 100644 (file)
@@ -1,28 +1,30 @@
-# Translation of StatusNet to Bulgarian
+# Translation of StatusNet - Core to Bulgarian (Български)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: DCLXVI
-# Author@translatewiki.net: Turin
+# Author: DCLXVI
+# Author: Turin
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:23+0000\n"
-"Language-Team: Bulgarian\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:23+0000\n"
+"Language-Team: Bulgarian <http://translatewiki.net/wiki/Portal:bg>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: bg\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Достъп"
 
@@ -75,10 +77,10 @@ msgstr "Запазване настройките за достъп"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Запазване"
@@ -91,15 +93,15 @@ msgstr "Няма такака страница."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -191,16 +193,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Бележки от %1$s и приятели в %2$s."
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -215,47 +217,49 @@ msgstr "Бележки от %1$s и приятели в %2$s."
 msgid "API method not found."
 msgstr "Не е открит методът в API."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Този метод изисква заявка POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Грешка при обновяване на потребителя."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Потребителят няма профил."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Грешка при запазване на профила."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -265,15 +269,15 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Не можете да блокирате себе си!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Грешка при блокиране на потребителя."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Грешка при разблокиране на потребителя."
 
@@ -297,68 +301,64 @@ msgstr "Преки съобщения до %s"
 msgid "All the direct messages sent to %s"
 msgstr "Всички преки съобщения, изпратени до %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Липсва текст на съобщението"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Твърде дълго. Може да е най-много %d знака."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Получателят не е открит"
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Не може да изпращате преки съобщения до хора, които не са в списъка ви с "
 "приятели."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Не е открита бележка с такъв идентификатор."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Тази бележка вече е отбелязана като любима."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Грешка при отбелязване като любима."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Тази бележка не е отбелязана като любима."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Грешка при изтриване на любима бележка."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Грешка при спиране на проследяването — потребителят не е намерен."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Грешка при проследяване на потребител: %s вече е в списъка ви."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Грешка при спиране на проследяването — потребителят не е намерен."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Не можете да спрете да следите себе си."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Целевият потребител не беше открит."
@@ -367,7 +367,7 @@ msgstr "Целевият потребител не беше открит."
 msgid "Could not find target user."
 msgstr "Целевият потребител не беше открит."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -375,90 +375,90 @@ msgstr ""
 "Псевдонимът може да съдържа само малки букви, числа и никакво разстояние "
 "между тях."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Опитайте друг псевдоним, този вече е зает."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Неправилен псевдоним."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Адресът на личната страница не е правилен URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Пълното име е твърде дълго (макс. 255 знака)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Описанието е твърде дълго (до %d символа)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Името на местоположението е твърде дълго (макс. 255 знака)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Неправилен псевдоним: \"%s\""
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Псевдонимът \"%s\" вече е зает. Опитайте друг."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Групата не е открита."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Вече членувате в тази група."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Грешка при обновяване на групата."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Не членувате в тази група."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -488,9 +488,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -529,8 +529,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -591,18 +591,18 @@ msgstr "Този метод изисква заявка POST или DELETE."
 msgid "You may not delete another user's status."
 msgstr "Не може да изтривате бележки на друг потребител."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Няма такава бележка."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Не можете да повтаряте собствени бележки."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Вече сте повторили тази бележка."
 
@@ -614,21 +614,21 @@ msgstr "Бележката е изтрита."
 msgid "No status with that ID found."
 msgstr "Не е открита бележка с такъв идентификатор."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Твърде дълго. Може да е най-много %d знака."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Не е открито."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -759,6 +759,10 @@ msgstr "Няма качен файл."
 msgid "Pick a square area of the image to be your avatar"
 msgstr "Изберете квадратна област от изображението за аватар"
 
+#: actions/avatarsettings.php:347 actions/grouplogo.php:380
+msgid "Lost our file data."
+msgstr ""
+
 #: actions/avatarsettings.php:370
 msgid "Avatar updated."
 msgstr "Аватарът е обновен."
@@ -817,7 +821,9 @@ msgid "Yes"
 msgstr "Да"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Блокиране на потребителя"
 
@@ -855,11 +861,13 @@ msgstr "%1$s и приятели, страница %2$d"
 msgid "Unblock user from group"
 msgstr "Разблокиране на потребителя от групата"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Разблокиране"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Разблокиране на този потребител"
 
@@ -881,12 +889,6 @@ msgstr "Кодът за потвърждение не е открит."
 msgid "That confirmation code is not for you!"
 msgstr "Този код за потвърждение не е за вас!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -898,9 +900,9 @@ msgstr "Този адрес е вече потвърден."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -908,7 +910,7 @@ msgstr "Грешка при обновяване на потребителя."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Грешка при изтриване потвърждението по е-поща."
@@ -944,9 +946,10 @@ msgstr "Приложението не е открито."
 msgid "You are not the owner of this application."
 msgstr "Не сте собственик на това приложение."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Имаше проблем със сесията ви в сайта."
 
@@ -977,7 +980,7 @@ msgstr "Изтриване на това приложение"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Не сте влезли в системата."
@@ -1033,11 +1036,6 @@ msgstr ""
 msgid "Delete this user"
 msgstr "Изтриване на този потребител"
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "Смяна на логото"
@@ -1122,13 +1120,13 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Запазване"
@@ -1243,7 +1241,7 @@ msgstr "Текущ потвърден адрес на е-поща."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1261,22 +1259,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Отказ"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Адрес на е-поща, като \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1284,105 +1286,98 @@ msgstr "Добавяне"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Входяща поща"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Изпратете писмо до този адрес за публикуване като бележка."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Задаване на нова е-поща, от която да се публикува. Отменя предишната."
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Настройки на е-поща"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Изпращане на уведомления за нови абонаменти по пощата."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Изпращане на писмо при отбелязване на моя бележка като любима."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Изпращане на писмо при ново лично съобщение."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Искам да изпращам бележки по пощата."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Публикуване на MicroID за адреса на е-пощата."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Настройките на е-поща са запазени."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Не е въведена е-поща."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Грешка при нормализиране адреса на е-пощата"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Неправилен адрес на е-поща."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Това и сега е адресът на е-пощата ви."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Тази е-поща вече се използва от друг потребител."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Не може да се вмъкне код за потвърждение."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1394,45 +1389,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Няма потвърждения, очакващи да бъдат отказани."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Няма потвърждения, очакващи да бъдат отказани."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Това не е вашият адрес на е-поща."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Входящият адрес на е-поща е премахнат."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Няма входящ адрес на е-поща."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Грешка при обновяване записа на потребител."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Входящият адрес на е-поща е премахнат."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Добавен е нов входящ адрес на е-поща."
 
@@ -1516,10 +1511,6 @@ msgstr "Няма прикачени файлове."
 msgid "Not expecting this response!"
 msgstr "Неочакван отговор."
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Можете да ползвате локален абонамент!"
@@ -1532,14 +1523,6 @@ msgstr "Потребителят е забранил да се абонират
 msgid "You are not authorized."
 msgstr "Не сте абонирани за никого."
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:79
 msgid "No such file."
 msgstr "Няма такъв файл."
@@ -1585,7 +1568,7 @@ msgstr "Потребителят вече е блокиран за групат
 msgid "User is not a member of group."
 msgstr "Потребителят не членува в групата."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Разблокиране на потребителя от групата"
 
@@ -1644,29 +1627,43 @@ msgstr "Лотого е обновено."
 msgid "Failed updating logo."
 msgstr "Неуспешно обновяване на логото."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Членове на групата %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Абонати на %1$s, страница %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Списък с потребителите в тази група."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Настройки"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Блокиране"
+msgstr ""
+
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1751,11 +1748,6 @@ msgstr ""
 "Можете да получавате съобщения по Jabber/GTalk [instant messages](%%doc.im%"
 "%). Въведете адреса си в настройките по-долу."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1779,7 +1771,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1789,63 +1784,63 @@ msgstr ""
 "сте добавили %s в списъка си с приятели в IM или GTalk клиента си."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Настройки на е-поща"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Изпращане на бележките по Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Публикуване промяната на състоянието ми в Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Изпращане по Jabber/GTalk на отговори от хора, "
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Публикуване на MicroID за адреса в Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Настройките са запазени."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Няма Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Грешка при нормализация на този Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Неправилен Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Това вече е вашият Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Този Jabber ID принадлежи на друг потребител."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1855,23 +1850,23 @@ msgstr ""
 "от %s, трябва да го одобрите."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Грешен IM адрес."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Няма код за потвърждение."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Това не е вашият Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Входящият адрес на е-поща е премахнат."
 
@@ -1962,12 +1957,6 @@ msgstr "Лично съобщение"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Може да добавите и лично съобщение към поканата."
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -2091,17 +2080,6 @@ msgstr ""
 "За по-голяма сигурност, моля въведете отново потребителското си име и парола "
 "при промяна на настройките."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
 #: actions/newapplication.php:52
 msgid "New Application"
 msgstr "Ново приложение"
@@ -2259,12 +2237,6 @@ msgstr "Потребителят няма профил."
 msgid "%1$s's status on %2$s"
 msgstr "Бележка на %1$s от %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2272,8 +2244,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Неподдържан формат на данните"
 
@@ -2309,6 +2281,10 @@ msgstr "Услуга за автоматично съкращаване, коя
 msgid "View profile designs"
 msgstr "Редактиране на профила"
 
+#: actions/othersettings.php:123
+msgid "Show or hide profile designs."
+msgstr ""
+
 #: actions/othersettings.php:153
 msgid "URL shortening service is too long (max 50 chars)."
 msgstr "Услугата за съкращаване е твърде дълга (може да е до 50 знака)."
@@ -2397,7 +2373,7 @@ msgid "Password saved."
 msgstr "Паролата е записана."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Пътища"
 
@@ -2574,7 +2550,7 @@ msgstr "Пълно име"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Лична страница"
 
@@ -2671,7 +2647,7 @@ msgid "Couldn't save tags."
 msgstr "Грешка при запазване етикетите."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Настройките са запазени."
 
@@ -2963,14 +2939,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
 #: actions/register.php:583
 #, php-format
 msgid ""
@@ -3066,10 +3034,6 @@ msgstr ""
 msgid "That’s a local profile! Login to subscribe."
 msgstr "Това е локален профил! Влезте, за да се абонирате."
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
 msgstr "Само влезли потребители могат да повтарят бележки."
@@ -3155,7 +3119,7 @@ msgstr "Потребителят вече е заглушен."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Сесии"
 
@@ -3193,24 +3157,24 @@ msgid "Application profile"
 msgstr "Профил на приложението"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Икона"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Име"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Организация"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Описание"
 
@@ -3303,7 +3267,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Така можете да споделите какво харесвате."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Група %s"
@@ -3351,7 +3315,7 @@ msgstr "Емисия с бележки на %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Изходяща кутия за %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Членове"
 
@@ -3509,10 +3473,6 @@ msgstr "Неправилен адрес на е-поща."
 msgid "Unknown language \"%s\"."
 msgstr "Непознат език \"%s\"."
 
-#: actions/siteadminpanel.php:165
-msgid "Minimum text limit is 0 (unlimited)."
-msgstr ""
-
 #: actions/siteadminpanel.php:171
 msgid "Dupe limit must be one or more seconds."
 msgstr ""
@@ -3617,11 +3577,6 @@ msgstr "Настройки за SMS"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr "Може да получавате на е-пощата си SMS-съобщения от %%site.name%%."
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -3745,10 +3700,14 @@ msgstr "Не е въведен код."
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -4016,13 +3975,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Одобряване на абонамента"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr "Лиценз"
@@ -4048,24 +4000,10 @@ msgstr "Няма заявка за одобрение."
 msgid "Subscription authorized"
 msgstr "Абонаментът е одобрен"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Абонаментът е отказан"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -4091,16 +4029,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -4281,13 +4209,13 @@ msgid "Problem saving notice."
 msgstr "Проблем при записване на бележката."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4546,22 +4474,17 @@ msgstr "Табелка"
 msgid "StatusNet software license"
 msgstr "Лиценз на програмата StatusNet"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** е услуга за микроблогване."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4573,49 +4496,50 @@ msgstr ""
 "licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Лиценз на съдържанието"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Страниране"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "След"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Преди"
 
@@ -4624,121 +4548,155 @@ msgstr "Преди"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Не можете да променяте този сайт."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Основна настройка на сайта"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Сайт"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Настройка на оформлението"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Потребител"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Настройка на пътищата"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Изтриване на бележката"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Изтриване на приложението"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "Не сте собственик на това приложение."
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Отказ"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
@@ -4753,13 +4711,15 @@ msgstr "Автор"
 msgid "Provider"
 msgstr "Доставчик"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
-msgstr ""
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Блокиране"
 
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
@@ -4773,6 +4733,13 @@ msgstr "Командата е изпълнена"
 msgid "Command failed"
 msgstr "Грешка при изпълнение на командата"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4803,6 +4770,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Бележката е отбелязана като любима."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4861,15 +4842,18 @@ msgstr "Грешка при повтаряне на бележката."
 msgid "Error saving notice."
 msgstr "Грешка при записване на бележката."
 
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -4910,13 +4894,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "Не сте абонирани за никого."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4931,7 +4922,7 @@ msgid "No one is subscribed to you."
 msgstr "Никой не е абониран за вас."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4946,7 +4937,7 @@ msgid "You are not a member of any groups."
 msgstr "Не членувате в нито една група."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4954,6 +4945,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Не членувате в тази група."
 msgstr[1] "Не членувате в тази група."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5035,6 +5027,10 @@ msgstr ""
 "Можете да качите лично изображение за фон. Максималната големина на файла е "
 "2MB."
 
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr ""
+
 #: lib/disfavorform.php:114 lib/disfavorform.php:140
 msgid "Disfavor this notice"
 msgstr "Отбелязване като любимо"
@@ -5120,32 +5116,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Група"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Блокирани"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s блокирани потребителя"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Редактиране настройките на групата %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Лого"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Добавяне или редактиране логото на %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5173,7 +5214,8 @@ msgstr "Форматът на файла с изображението не се
 msgid "Partial upload."
 msgstr "Частично качване на файла."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Системна грешка при качване на файл."
 
@@ -5466,56 +5508,75 @@ msgstr "Това не е вашият входящ адрес."
 msgid "Sorry, no incoming email allowed."
 msgstr "Входящата поща не е разрешена."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Липсва временна папка."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Грешка при записване файла на диска."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Грешка при изтриване на любима бележка."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5530,11 +5591,6 @@ msgstr "До"
 msgid "Available characters"
 msgstr "Налични знаци"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "Изпращане на бележка"
@@ -5628,22 +5684,23 @@ msgid "Send a nudge to this user"
 msgstr "Побутване на този потребител"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Грешка при вмъкване на нов профил"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Грешка при вмъкване на аватар"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Грешка при обновяване на отдалечен профил"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Грешка при вмъкване на отдалечен профил"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Грешка при добавяне на нов абонамент."
 
@@ -5680,7 +5737,8 @@ msgstr "Изпратените от вас съобщения"
 msgid "Tags in %s's notices"
 msgstr "Етикети в бележките на %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Непознато"
 
@@ -5757,19 +5815,24 @@ msgstr "Повтаряне на тази бележка"
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Търсене в сайта"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Ключови думи"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Търсене"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Помощ за търсенето"
 
@@ -5946,56 +6009,64 @@ msgid "Moderator"
 msgstr "Модератор"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "преди няколко секунди"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "преди около минута"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "преди около %d минути"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "преди около час"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "преди около %d часа"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "преди около ден"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "преди около %d дни"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "преди около месец"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "преди около %d месеца"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "преди около година"
 
index a2f4ce6843a5f0ef0f23126fbbfdb4cc7e16b5b1..cacb78fb440f6d4bb9db91b884cbe6756c44b1c9 100644 (file)
@@ -1,29 +1,31 @@
-# Translation of StatusNet to Breton
+# Translation of StatusNet - Core to Breton (Brezhoneg)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Fulup
-# Author@translatewiki.net: Gwendal
-# Author@translatewiki.net: Y-M D
+# Author: Fulup
+# Author: Gwendal
+# Author: Y-M D
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:30+0000\n"
-"Language-Team: Dutch\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:25+0000\n"
+"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: br\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Moned"
 
@@ -76,10 +78,10 @@ msgstr "Enrollañ an arventennoù moned"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Enrollañ"
@@ -92,15 +94,15 @@ msgstr "N'eus ket eus ar bajenn-se."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -187,16 +189,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Hizivadennoù %1$s ha mignoned e %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -211,47 +213,49 @@ msgstr "Hizivadennoù %1$s ha mignoned e %2$s!"
 msgid "API method not found."
 msgstr "N'eo ket bet kavet an hentenn API !"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Ezhomm en deus an argerzh-mañ eus ur POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Diposubl eo hizivaat an implijer."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "An implijer-mañ n'eus profil ebet dezhañ."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Diposubl eo enrollañ ar profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -261,30 +265,30 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Dibosupl eo enrollañ an arventennoù empentiñ."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Diposubl eo hizivat ho design."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "N'hallit ket en em stankañ hoc'h-unan !"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "N'eus ket bet tu da stankañ an implijer."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "N'eus ket bet tu da zistankañ an implijer."
 
@@ -308,69 +312,65 @@ msgstr "Kemennadennoù war-eeun kaset da %s"
 msgid "All the direct messages sent to %s"
 msgstr "An holl gemennadennoù war-eeun kaset da %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Kemenadenn hep testenn !"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Re hir eo ! Ment hirañ ar gemenadenn a zo a %d arouezenn."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "N'eo ket bet kavet ar resever."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Ne c'helloc'h ket kas kemennadennoù personel d'an implijerien n'int ket ho "
 "mignoned."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "N'eo bet kavet statud ebet gant an ID-mañ."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Ur pennroll eo dija an ali-mañ."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Diposupl eo krouiñ ar pennroll-mañ."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "N'eo ket ar statud-mañ ur pennroll."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Diposupl eo dilemel ar pennroll-mañ."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Dibosupl eo heuliañ an implijer : n'eo ket bet kavet ar profil."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Diposubl eo heuliañ an implijer : war ho listenn emañ %s dija."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Diposupl eo paouez heuliañ an implijer : N'eo ket bet kavet an implijer."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Ne c'hallit ket chom hep ho heuliañ hoc'h-unan."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Diposubl eo termeniñ an implijer mammenn."
@@ -379,95 +379,95 @@ msgstr "Diposubl eo termeniñ an implijer mammenn."
 msgid "Could not find target user."
 msgstr "Diposubl eo kavout an implijer pal."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Implijet eo dija al lesanv-se. Klaskit unan all."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "N'eo ket ul lesanv mat."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "N'eo ket chomlec'h al lec'hienn personel un URL reizh."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Re hir eo an anv klok (255 arouezenn d'ar muiañ)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Re hir eo an deskrivadur (%d arouezenn d'ar muiañ)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Re hir eo al lec'hiadur (255 arouezenn d'ar muiañ)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Re a aliasoù ! %d d'ar muiañ."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Alias fall : \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Implijet e vez an alias \"%s\" dija. Klaskit gant unan all."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Ne c'hell ket an alias bezañ ar memes hini eget al lesanv."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "N'eo ket bet kavet ar strollad."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Un ezel eus ar strollad-mañ eo dija."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Stanket oc'h bet eus ar strollad-mañ gant ur merour."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Diposubl eo stagañ an implijer %1$s d'ar strollad %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "N'oc'h ket ezel eus ar strollad-mañ."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -497,7 +497,7 @@ msgstr "Strolladoù %s"
 msgid "groups on %s"
 msgstr "strolladoù war %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Enporzhiadenn c'hwitet."
 
@@ -511,9 +511,9 @@ msgstr "Fichenn direizh."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -552,8 +552,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -614,18 +614,18 @@ msgstr "Ezhomm en deus an argerzh-mañ ur POST pe un DELETE."
 msgid "You may not delete another user's status."
 msgstr "Ne c'helloc'h ket dilemel statud un implijer all."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "N'eus ket eus an ali-se."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Ne c'helloc'h ket adlavar ho alioù."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Adlavaret o peus dija an ali-mañ."
 
@@ -637,21 +637,21 @@ msgstr "Statud diverket."
 msgid "No status with that ID found."
 msgstr "N'eo ket bet kavet a statud evit an ID-mañ"
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Re hir eo ! Ment hirañ an ali a zo a %d arouezenn."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "N'eo ket bet kavet."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -843,7 +843,9 @@ msgid "Yes"
 msgstr "Ya"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Stankañ an implijer-mañ"
 
@@ -886,11 +888,13 @@ msgstr ""
 msgid "Unblock user from group"
 msgstr "Distankañ implijer ar strollad"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Distankañ"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Distankañ an implijer-mañ"
 
@@ -929,9 +933,9 @@ msgstr "Kadarnaet eo bet dija ar chomlec'h-mañ."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -939,7 +943,7 @@ msgstr "Diposubl eo hizivaat an implijer."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Diposubl eo dilemel ar postel kadarnadur."
@@ -975,9 +979,10 @@ msgstr "N'eo ket bet kavet ar poellad"
 msgid "You are not the owner of this application."
 msgstr "N'oc'h ket perc'henn ar poellad-se."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Ur gudenn 'zo bet gant ho jedaouer dalc'h."
 
@@ -1008,7 +1013,7 @@ msgstr "Dilemel ar poelad-se"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Nann-luget."
@@ -1067,7 +1072,6 @@ msgstr "Diverkañ an implijer-mañ"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Design"
 
@@ -1186,13 +1190,13 @@ msgstr "Adlakaat an neuz dre ziouer."
 msgid "Reset back to default"
 msgstr "Adlakaat an arventennoù dre ziouer"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Enrollañ"
@@ -1348,7 +1352,7 @@ msgstr "Chomlec'h postel gwiriekaet er mare-mañ."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1364,22 +1368,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Nullañ"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Chomlec'h postel, evel \"AnvImplijer@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1387,116 +1395,116 @@ msgstr "Ouzhpennañ"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Postel o tont"
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nevez"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Penndibaboù ar posteloù"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Kas din ur postel pa lak unan bennak unan eus va alioù evel pennroll."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Kas din ur postel pa gas unan bennak ur gemennadenn bersonel din."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Kas din ur postel pa gas unan bennak ur \"@-respont\" din."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "C'hoant am eus kas va alioù dre bostel."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Embann ur MicroID evit ma chomlec'h postel."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Enrollet eo bet an arventennoù postel."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Chomlec'h postel ebet."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "N'eo ket ur chomlec'h postel reizh."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Ho postel eo dija."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Dibosupl eo ensoc'hañ ar c'hod gwiriekaat."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "N'eo ket mat ar chomlec'h postelerezh prim."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Nullet eo bet kadarnadenn ar postel."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "N'eo ket ho postel."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Dilamet eo bet ar chomlec'h postel."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Chomlec'h postel ebet o tont."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Dibosupl eo hizivaat doser an implijer."
@@ -1581,7 +1589,7 @@ msgstr "N'oc'h ket aotreet."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Fazi en ur hizivaat ar profil a-bell."
 
@@ -1638,7 +1646,7 @@ msgstr "An implijer-mañ a zo stanket dija eus ar strollad."
 msgid "User is not a member of group."
 msgstr "N'eo ket an implijer-mañ ezel eus ur strollad."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Stankañ an implijer-mañ eus ar strollad"
 
@@ -1701,39 +1709,49 @@ msgstr "Logo hizivaet."
 msgid "Failed updating logo."
 msgstr "N'eo ket bet kaset da benn an hizivadenn."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Izili ar strollad %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Izili ar strollad %1$s, pajenn %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Roll an implijerien enrollet er strollad-mañ."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Merañ"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Stankañ"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Lakaat an implijer da vezañ ur merour eus ar strollad"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Lakaat ur merour"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Lakaat an implijer-mañ da verour"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1845,7 +1863,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1853,53 +1874,53 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Penndibaboù ar bostelerezh prim"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Kas din an alioù dre Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Embann ur MicroID evit ma chomlec'h Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Penndibaboù enrollet"
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "ID Jabber ebet."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Diposubl eo implijout an ID Jabber-mañ"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "N'eo ket un ID Jabber reizh."
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Ho ID Jabber eo dija"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Implijet eo an Jabber ID-mañ gant un implijer all."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1907,23 +1928,23 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "N'eo ket mat ar chomlec'h postelerezh prim."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Nullet eo bet kadarnadenn ar bostelerezh prim."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "N'eo ket ho ID Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Ar chomlec'h IM zo bet dilamet."
 
@@ -2294,11 +2315,6 @@ msgstr ""
 msgid "You are not a user of that application."
 msgstr "N'oc'h ket un implijer eus ar poellad-mañ."
 
-#: actions/oauthconnectionssettings.php:186
-#, php-format
-msgid "Unable to revoke access for app: %s."
-msgstr ""
-
 #: actions/oauthconnectionssettings.php:211
 msgid "Developers can edit the registration settings for their applications "
 msgstr ""
@@ -2312,12 +2328,6 @@ msgstr "N'en deus ket an ali a profil."
 msgid "%1$s's status on %2$s"
 msgstr "Statud %1$s war %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2436,7 +2446,7 @@ msgid "Password saved."
 msgstr "Ger-tremen enrollet."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Hentoù"
 
@@ -2628,7 +2638,7 @@ msgstr "Anv klok"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Pajenn degemer"
 
@@ -2731,7 +2741,7 @@ msgid "Couldn't save tags."
 msgstr "Diposubl eo enrollañ ar balizennoù."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Enrollet eo bet an arventennoù."
 
@@ -3212,7 +3222,7 @@ msgstr "Er poull-traezh emañ dija an implijer."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Dalc'hoù"
 
@@ -3250,24 +3260,24 @@ msgid "Application profile"
 msgstr "Profil ar poellad"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Arlun"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Anv"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Aozadur"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Deskrivadur"
 
@@ -3369,7 +3379,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Un doare eo evit kevranañ ar pezh a blij deoc'h."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "strollad %s"
@@ -3421,7 +3431,7 @@ msgstr "Neudenn alioù ar strollad %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Mignon ur mignon evit ar strollad %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Izili"
 
@@ -3791,7 +3801,7 @@ msgstr "N'eo bet lakaet kod ebet"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Prim"
 
@@ -4326,18 +4336,18 @@ msgid "Problem saving notice."
 msgstr "Ur gudenn 'zo bet pa veze enrollet an ali."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Ur gudenn 'zo bet pa veze enrollet boest degemer ar strollad."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4367,7 +4377,7 @@ msgid "Unable to save tag."
 msgstr "Dibosupl eo enrollañ an tikedenn."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Nac'het ez eus bet deoc'h en em goumanantiñ."
 
@@ -4510,7 +4520,8 @@ msgid "Change site configuration"
 msgstr "Kemmañ arventennoù al lec'hienn"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Merañ"
@@ -4587,7 +4598,7 @@ msgstr "Klask"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Ali al lec'hienn"
 
@@ -4646,7 +4657,10 @@ msgid "StatusNet software license"
 msgstr "Aotre-implijout ar meziant StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -4654,13 +4668,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** a zo ur servij microblogging."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4669,42 +4686,43 @@ msgid ""
 msgstr ""
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Aotre-implijout diwar-benn danvez al lec'hienn"
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Pajennadur"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "War-lerc'h"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Kent"
 
@@ -4713,194 +4731,229 @@ msgstr "Kent"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "N'eo ket aotreet kemmañ ar panell-se"
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "N'eo ket bet emplementet showForm()."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "N'eo ket bet emplementet saveSettings()."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Dibosupl eo dilemel an arventennoù krouiñ."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Arventennoù diazez al lec'hienn"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Lec'hienn"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Kefluniadur ar c'hrouiñ"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Design"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Kefluniadur an implijer"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Implijer"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Kefluniadur ar moned"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Kefluniadur an hentoù"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Kefluniadur an dalc'hoù"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Kemmañ ali al lec'hienn"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Kefluniadur ar primoù"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Kemmañ an arload"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Arlun evit ar poellad-mañ"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Diskrivit ho poellad gant %d arouezenn"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Deskrivit ho poellad"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL pajenn degemer ar poellad-mañ"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Mammenn URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "An aozadur e karg eus ar poellad-mañ"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL pajenn degemer an aozadur-se"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL davet pehini e o ret adkas goude bezañ kevreet"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Merdeer"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Burev"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Seurt ar poellad, merdeer pe burev"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Lenn hepken"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lenn-skrivañ"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Nullañ"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lenn-skrivañ"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "lenn hepken"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprouet d'an %1$s - moned \"%2$s\"."
@@ -4920,7 +4973,8 @@ msgstr "Aozer"
 msgid "Provider"
 msgstr "Pourvezer"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
@@ -4932,6 +4986,11 @@ msgstr "N'eo ket aet betek penn kemmañ ar ger-tremen"
 msgid "Password changing is not allowed"
 msgstr "N'eo ket aotreet kemmañ ar ger-tremen"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Stankañ"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Disoc'hoù an urzhiad"
@@ -4944,6 +5003,31 @@ msgstr "Urzhiad bet klokaet"
 msgid "Command failed"
 msgstr "C'hwitet en deus an urzhiad"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr ""
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr ""
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr ""
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4955,6 +5039,13 @@ msgid "It does not make a lot of sense to nudge yourself!"
 msgstr ""
 "N'eus tamm talvoudegezh ebet ober ur blinkadenn deoc'h c'hwi oc'h unan !"
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr ""
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -4975,6 +5066,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Ali bet ouzhpennet d'ar pennroll."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5023,6 +5128,27 @@ msgstr ""
 msgid "Error sending direct message."
 msgstr "Ur gudenn 'zo bet pa veze kaset ho kemennadenn."
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr ""
+
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr ""
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
@@ -5033,12 +5159,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Text shown when issuing the command "off" successfully.
 #: lib/command.php:728
 msgid "Notification off."
@@ -5071,6 +5211,13 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
@@ -5088,6 +5235,7 @@ msgstr "Den n'eo koumanantet deoc'h."
 msgid "You are not a member of any groups."
 msgstr "N'oc'h ezel eus strollad ebet."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5237,27 +5385,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Strollad"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Stanket"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s implijer stanket"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Ouzhpennañ pe kemmañ logo %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
@@ -5273,7 +5471,8 @@ msgstr ""
 msgid "This page is not available in a media type you accept"
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -5521,52 +5720,69 @@ msgstr "eus"
 msgid "Not a registered user."
 msgstr "N'eo ket un implijer enrollet."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Mankout a ra un doser padennek."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Klaskit implijout ur furmad %s all."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5679,16 +5895,21 @@ msgid "Send a nudge to this user"
 msgstr "Kas ur blinkadenn d'an implijer-mañ"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Ur fazi 'zo bet en ur ensoc'hañ ar profil nevez"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Ur fazi 'zo bet en ur ensoc'hañ an avatar"
+msgid "Error inserting avatar."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Eilañ an ali"
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
 #: lib/personalgroupnav.php:99
 msgid "Personal"
@@ -5718,12 +5939,8 @@ msgstr "Boest kas"
 msgid "Your sent messages"
 msgstr "Ar c'hemenadennoù kaset ganeoc'h"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Dianav"
 
@@ -5800,19 +6017,24 @@ msgstr ""
 msgid "Sandbox"
 msgstr "Poull-traezh"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Klask el lec'hienn"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Ger(ioù) alc'hwez"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Klask"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Skoazell diwar-benn ar c'hlask"
 
@@ -5962,56 +6184,64 @@ msgid "Moderator"
 msgstr "Habasker"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "un nebeud eilennoù zo"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "1 vunutenn zo well-wazh"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "%d munutenn zo well-wazh"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "1 eurvezh zo well-wazh"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "%d eurvezh zo well-wazh"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "1 devezh zo well-wazh"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "%d devezh zo well-wazh"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "miz zo well-wazh"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "%d miz zo well-wazh"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "bloaz zo well-wazh"
 
index 81506cf017b6588e0d6464f239b176e0ab8fc6de..cf1c347757af1566de26fe01ce292e6bf85dd54c 100644 (file)
@@ -1,30 +1,32 @@
-# Translation of StatusNet to Catalan
+# Translation of StatusNet - Core to Catalan (Català)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Aleator
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Paucabot
-# Author@translatewiki.net: Toniher
+# Author: Aleator
+# Author: McDutchie
+# Author: Paucabot
+# Author: Toniher
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:36+0000\n"
-"Language-Team: Catalan\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:26+0000\n"
+"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ca\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Accés"
 
@@ -79,10 +81,10 @@ msgstr "Desa els paràmetres d'accés"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Desa"
@@ -95,15 +97,15 @@ msgstr "No existeix la pàgina."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -203,16 +205,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Actualitzacions de %1$s i amics a %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -227,21 +229,23 @@ msgstr "Actualitzacions de %1$s i amics a %2$s!"
 msgid "API method not found."
 msgstr "No s'ha trobat el mètode API!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Aquest mètode requereix POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -249,27 +253,27 @@ msgstr ""
 "Heu d'especificar un paràmetre anomenat 'device' (dispositiu) amb un valor "
 "dels següents: sms, im, none (cap)"
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "No s'ha pogut actualitzar l'usuari."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "L'usuari no té perfil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "No s'ha pogut desar el perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -281,30 +285,30 @@ msgstr ""
 "El servidor no ha pogut gestionar tantes dades POST (%s bytes) a causa de la "
 "configuració actual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "No s'han pogut desar els paràmetres de disseny."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "No s'ha pogut actualitzar el vostre disseny."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "No podeu bloquejar-vos a vosaltres mateixos!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Ha fallat el blocatge de l'usuari."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Ha fallat el desblocatge de l'usuari."
 
@@ -328,67 +332,67 @@ msgstr "Missatges directes a %s"
 msgid "All the direct messages sent to %s"
 msgstr "Tots els missatges directes enviats a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "No hi ha text al missatge!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "És massa llarg. La mida màxima del missatge és %d caràcters."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "No s'ha trobat l'usuari destinatari."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "No es pot enviar missatges directes a usuaris que no siguin els vostres "
 "amics."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "No s'ha trobat cap estat amb aquest ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Aquest estat ja és un preferit."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "No es pot crear el preferit."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "L'estat no és un preferit."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "No s'ha pogut eliminar el preferit."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "No es pot deixar de seguir l'usuari: no s'ha trobat l'usuari."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "No s'ha pogut seguir l'usuari: %s ja està a la vostra llista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "No es pot deixar de seguir l'usuari: no s'ha trobat l'usuari."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "No podeu deixar de seguir-vos a un mateix."
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
+msgstr "Cal proporcionar dos identificadors d'usuari o screen_names."
 
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
@@ -398,7 +402,7 @@ msgstr "No s'ha pogut determinar l'usuari d'origen."
 msgid "Could not find target user."
 msgstr "No s'ha pogut trobar l'usuari de destinació."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -406,95 +410,95 @@ msgstr ""
 "El sobrenom ha de tenir només lletres minúscules i números i no pot tenir "
 "espais."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Aquest sobrenom ja existeix. Prova un altre. "
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Sobrenom no vàlid."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "La pàgina personal no és un URL vàlid."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "El vostre nom sencer és massa llarg (màx. 255 caràcters)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "La descripció és massa llarga (màx. %d caràcters)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "La ubicació és massa llarga (màx. 255 caràcters)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Hi ha massa àlies! Màxim %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "L'àlies no és vàlid: «%s»."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "L'àlies «%s» ja està en ús. Proveu-ne un altre."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "L'àlies no pot ser el mateix que el sobrenom."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "No s'ha trobat el grup."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Ja sou membre del grup."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "L'administrador us ha blocat del grup."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "No s'ha pogut afegir l'usuari %1$s al grup %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "No sou un membre del grup."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -524,7 +528,7 @@ msgstr "%s grups"
 msgid "groups on %s"
 msgstr "grups sobre %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "La pujada ha fallat."
 
@@ -538,9 +542,9 @@ msgstr "El testimoni no és vàlid."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -587,8 +591,8 @@ msgstr "S'ha denegat i revocat el testimoni de sol·licitud %s."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -652,18 +656,18 @@ msgstr "Aquest mètode requereix POST o DELETE."
 msgid "You may not delete another user's status."
 msgstr "No podeu eliminar l'estat d'un altre usuari."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "No existeix aquest avís."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "No podeu repetir els vostres propis avisos."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Avís duplicat."
 
@@ -675,21 +679,21 @@ msgstr "S'ha eliminat l'estat."
 msgid "No status with that ID found."
 msgstr "No s'ha trobat cap estatus amb la ID trobada."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "El client ha de proporcionar un paràmetre 'status' amb un valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Massa llarg. La longitud màxima és de %d caràcters."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "No s'ha trobat."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "La mida màxima de l'avís és %d caràcters, incloent l'URL de l'adjunt."
@@ -892,7 +896,9 @@ msgid "Yes"
 msgstr "Sí"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloca aquest usuari"
 
@@ -934,11 +940,13 @@ msgstr "Una llista d'usuaris que han estat blocats d'afegir-se a aquest grup."
 msgid "Unblock user from group"
 msgstr "Desbloca l'usuari del grup"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloca"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Desbloca l'usuari"
 
@@ -977,9 +985,9 @@ msgstr "Aquesta adreça ja ha estat confirmada."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -987,7 +995,7 @@ msgstr "No s'ha pogut actualitzar l'usuari."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "No s'ha pogut eliminar la confirmació de correu electrònic."
@@ -1023,9 +1031,10 @@ msgstr "No s'ha trobat l'aplicació."
 msgid "You are not the owner of this application."
 msgstr "No sou el propietari d'aquesta aplicació."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "S'ha produït un problema amb el testimoni de la vostra sessió."
 
@@ -1059,7 +1068,7 @@ msgstr "Elimina aquesta aplicació"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "No heu iniciat una sessió."
@@ -1122,7 +1131,6 @@ msgstr "Elimina l'usuari"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Disseny"
 
@@ -1242,13 +1250,13 @@ msgstr "Restaura els dissenys per defecte"
 msgid "Reset back to default"
 msgstr "Torna a restaurar al valor per defecte"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Desa"
@@ -1404,7 +1412,7 @@ msgstr "Adreça electrònica confirmada actualment."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1422,22 +1430,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancel·la"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Adreça electrònica, com ara «nomusuari@example.org»"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1445,112 +1457,112 @@ msgstr "Afegeix"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Correu electrònic entrant"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Envia correu electrònic a aquesta adreça per publicar nous avisos."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Estableix una nova adreça electrònica d'enviament; cancel·la l'antiga."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nou"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferències del correu electrònic"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Envia'm avisos per correu electrònic quan algú nou se'm subscrigui."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Envia'm un correu electrònic quan algú afegeixi un avís meu com a preferit."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Envia'm un correu electrònic quan algú m'envii un missatge privat."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Envia'm un correu electrònic quan algú m'enviï una resposta amb @."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 "Permetre que els amics em cridin l'atenció i m'enviïn un correu electrònic."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Vull publicar avisos amb el correu electrònic."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publica una MicroID per al meu correu electrònic."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "S'han desat les preferències del correu electrònic."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "No hi ha cap adreça electrònica."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "No es pot normalitzar l'adreça electrònica."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Adreça de correu electrònic no vàlida."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Ja és la vostra adreça electrònica."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "L'adreça electrònica ja pertany a un altre usuari."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "No s'ha pogut inserir el codi de confirmació."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1562,50 +1574,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Cap confirmació pendent per cancel·lar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Aquesta l'adreça de correu electrònic incorrecta."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "S'ha cancel·lat la confirmació de correu electrònic."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Aquest no és el teu correu electrònic"
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "S'ha eliminat l'adreça de correu electrònic."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "No hi ha cap direcció de correu electrònic entrant."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "No s'ha pogut actualitzar el registre de l'usuari."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Eliminat el correu electrònic entrant."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nou correu electrònic entrant afegit."
 
@@ -1724,7 +1736,7 @@ msgstr "No s'ha pogut convertir el testimoni de sol·licitud a un d'accés."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "El servei remot utilitza una versió desconeguda del protocol OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "S'ha produït un error en actualitzar el perfil remot."
 
@@ -1781,7 +1793,7 @@ msgstr "L'usuari ja està blocat del grup."
 msgid "User is not a member of group."
 msgstr "L'usuari no és membre del grup."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloca l'usuari del grup"
 
@@ -1862,39 +1874,49 @@ msgstr "Logo actualitzat."
 msgid "Failed updating logo."
 msgstr "Error en actualitzar logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s membre/s en el grup"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s membres del grup, pàgina %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "La llista dels usuaris d'aquest grup."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Admin"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Bloca"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Fes l'usuari un administrador del grup"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Fes-lo administrador"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Fes l'usuari administrador"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2034,7 +2056,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2045,65 +2070,65 @@ msgstr ""
 "missatgeria instantània o al GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferències de MI"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Envia'm avisos per Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Envia'm un avís quan el meu estat Jabber/GTalk canvii."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Envia'm respostes a través de Jabber/GTalk de la gent a la que no estic "
 "subscrita."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publica una MicroID per a la meva direcció de Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "S'han desat les preferències."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Cap Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Impossible normalitzar aquest Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Jabber ID no vàlid"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Aquest ja és el teu Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Aquest Jabber ID ja està sent utilitzat per un altre usuari."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2113,28 +2138,28 @@ msgstr ""
 "heu afegit. Heu d'acceptar que %s us pugui enviar missatges."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Aquesta adreça de missatgeria instantània és incorrecta."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "No s'ha pogut eliminar la confirmació de MI."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "S'ha cancel·lat la confirmació de MI."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Aquest no és el teu Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "S'ha eliminat l'adreça de MI."
 
@@ -2532,6 +2557,8 @@ msgstr ""
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
+"Aquest usuari no permet que li cridin l'atenció o no ha confirmat encara "
+"l'adreça electrònica."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
@@ -2607,8 +2634,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Si us plau, només URL %s sobre HTTP pla."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Format de data no suportat."
 
@@ -2751,7 +2778,7 @@ msgid "Password saved."
 msgstr "Contrasenya guardada."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Camins"
 
@@ -2965,7 +2992,7 @@ msgstr "Nom complet"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Pàgina personal"
 
@@ -3072,7 +3099,7 @@ msgid "Couldn't save tags."
 msgstr "No s'han pogut desar les etiquetes."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "S'ha desat la configuració."
 
@@ -3613,7 +3640,7 @@ msgstr "L'usuari ja es troba en un entorn de proves."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessions"
 
@@ -3651,24 +3678,24 @@ msgid "Application profile"
 msgstr "Perfil de l'aplicació"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nom"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organització"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descripció"
 
@@ -3759,6 +3786,15 @@ msgstr ""
 "No heu triat cap avís preferit encara. Feu clic al botó de preferit dels "
 "avisos que us agraden per arxivar-los per a més endavant i fer-los conèixer."
 
+#: actions/showfavorites.php:208
+#, php-format
+msgid ""
+"%s hasn't added any favorite notices yet. Post something interesting they "
+"would add to their favorites :)"
+msgstr ""
+"%s no ha afegit cap avís als seus preferits encara. Envieu quelcom "
+"interessant que pugui afegir-hi :)"
+
 #: actions/showfavorites.php:212
 #, php-format
 msgid ""
@@ -3773,7 +3809,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "És una forma de compartir allò que us agrada."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s grup"
@@ -3825,7 +3861,7 @@ msgstr "Canal d'avisos del grup %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Safata de sortida per %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membres"
 
@@ -4283,7 +4319,7 @@ msgstr "No s'ha introduït cap codi"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Instantànies"
 
@@ -4978,18 +5014,18 @@ msgid "Problem saving notice."
 msgstr "S'ha produït un problema en desar l'avís."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "S'ha proporcionat un tipus incorrecte per a saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "S'ha produït un problema en desar la safata d'entrada del grup."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5021,7 +5057,7 @@ msgid "Unable to save tag."
 msgstr "No s'ha pogut desar l'etiqueta."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Se us ha banejat la subscripció."
 
@@ -5169,7 +5205,8 @@ msgid "Change site configuration"
 msgstr "Canvia la configuració del lloc"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrador"
@@ -5246,7 +5283,7 @@ msgstr "Cerca"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Avís del lloc"
 
@@ -5310,7 +5347,10 @@ msgid "StatusNet software license"
 msgstr "Llicència del programari StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5320,13 +5360,16 @@ msgstr ""
 "site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** és un servei de microblogging."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5338,34 +5381,35 @@ msgstr ""
 "org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Llicència de contingut del lloc"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "El contingut i les dades de %1$s són privades i confidencials."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 "El contingut i les dades són copyright de %1$s. Tots els drets reservats."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "El contingut i les dades són copyright dels col·laboradors. Tots els drets "
 "reservats."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
@@ -5373,19 +5417,19 @@ msgstr ""
 "llicència %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginació"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Posteriors"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Anteriors"
 
@@ -5396,208 +5440,243 @@ msgstr ""
 "S'esperava un element del canal arrel, però se n'ha obtingut tot un document "
 "XML sencer."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "No es pot gestionar el contingut remot encara."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "No es pot gestionar el contingut XML incrustat encara."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "No es pot gestionar el contingut Base64 incrustat encara."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "No podeu fer canvis al lloc."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "No es permeten canvis a aquell tauler."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "El showForm() no està implementat."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "El saveSettings() no està implementat."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "No s'ha pogut eliminar el paràmetre de disseny."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuració bàsica del lloc"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Lloc"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuració del disseny"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Disseny"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuració de l'usuari"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usuari"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuració de l'accés"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuració dels camins"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuració de les sessions"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Edita l'avís del lloc"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuració de les instantànies"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "El recurs API requereix accés de lectura i d'escriptura, però només en teniu "
 "de lectura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Edita l'aplicació"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icona de l'aplicació"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Descriviu la vostra aplicació en %d caràcters"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Descriviu la vostra aplicació"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL de la pàgina d'inici de l'aplicació"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL d'origen"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organització responsable de l'aplicació"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "L'URL de la pàgina d'inici de l'organització"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL on redirigir-hi després de l'autenticació."
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navegador"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Escriptori"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipus d'aplicació, navegador o escriptori"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Només lectura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lectura i escriptura"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Accés per defecte per a l'aplicació: només lectura, o lectura i escriptura"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancel·la"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "de lectura i d'escriptura"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "només de lectura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprovat: %1$s - accés «%2$s»."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revoca"
@@ -5617,11 +5696,13 @@ msgstr "Autoria"
 msgid "Provider"
 msgstr "Proveïdor"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Avisos on apareix l'adjunt"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etiquetes de l'adjunció"
 
@@ -5633,6 +5714,11 @@ msgstr "El canvi de contrasenya ha fallat"
 msgid "Password changing is not allowed"
 msgstr "No es permet el canvi de contrasenya"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloca"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultats de les comandes"
@@ -5645,6 +5731,24 @@ msgstr "Comanda completada"
 msgid "Command failed"
 msgstr "Comanda fallida"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "No existeix cap avís amb aquest identificador."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "L'usuari no té un darrer avís."
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "No es pot trobar un usuari amb el sobrenom %s."
+
 #. TRANS: Message given getting a non-existing user.
 #. TRANS: %s is the nickname of the user that could not be found.
 #: lib/command.php:150
@@ -5662,6 +5766,13 @@ msgstr "Perdona, aquesta comanda no està implementada."
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr "No té massa sentit avisar-se a un mateix!"
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr "S'ha cridat l'atenció a %s."
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -5745,6 +5856,13 @@ msgstr ""
 msgid "Error sending direct message."
 msgstr "S'ha produït un error en enviar el missatge directe."
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "S'ha repetit l'avís de %s."
+
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
@@ -5769,6 +5887,11 @@ msgstr "S'ha enviat la resposta a %s."
 msgid "Error saving notice."
 msgstr "S'ha produït un error en desar l'avís."
 
+#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
+#: lib/command.php:655
+msgid "Specify the name of the user to subscribe to."
+msgstr "Especifiqueu el nom de l'usuari al qual voleu subscriure-us."
+
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
@@ -5847,7 +5970,7 @@ msgid "You are not subscribed to anyone."
 msgstr "No esteu subscrit a ningú."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5862,7 +5985,7 @@ msgid "No one is subscribed to you."
 msgstr "Ningú no us ha subscrit."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5877,7 +6000,7 @@ msgid "You are not a member of any groups."
 msgstr "No sou membre de cap grup."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5885,6 +6008,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Sou un membre d'aquest grup:"
 msgstr[1] "Sou un membre d'aquests grups:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6105,37 +6229,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr "Sobrenoms addicionals del grup, separats amb comes o espais, màx. %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Grup"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Blocat"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s usuaris blocats"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Edita les propietats del grup %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Afegeix o edita el logo %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Afegeix o edita el disseny %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6168,7 +6332,8 @@ msgstr "La mida del fitxer és massa gran, La mida màxima és %s."
 msgid "Partial upload."
 msgstr "Càrrega parcial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Error del sistema en pujar el fitxer."
 
@@ -6570,19 +6735,22 @@ msgstr "Ho sentim, no s'hi permet correu d'entrada."
 msgid "Unsupported message type: %s"
 msgstr "Tipus de missatge no permès: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "S'ha produït un error a la base de dades mentre es desava el vostre fitxer. "
 "Torneu-ho a provar."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "El fitxer pujat excedeix la mida de la directiva upload_max_filesize del php."
 "ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6590,43 +6758,59 @@ msgstr ""
 "El fitxer pujat excedeix la mida de la directiva MAX_FILE_SIZE especificada "
 "en el formulari HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "El fitxer pujat només s'ha pujat parcialment."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Manca una carpeta temporal."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "No s'ha pogut escriure el fitxer al disc."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "L'extensió ha aturat la càrrega del fitxer."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "El fitxer excedeix la quota de l'usuari."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "No s'ha pogut moure el fitxer al directori de destinació."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "No s'ha pogut determinar el tipus MIME del fitxer."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Proveu d'emprar un altre format %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s no és un tipus de fitxer permès al servidor."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6744,26 +6928,23 @@ msgid "Send a nudge to this user"
 msgstr "Crida l'atenció a l'usuari"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Error en inserir el nou perfil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Error en inserir avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Error en actualitzar el perfil remot"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Error en inserir perfil remot"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplica l'avís"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "No s'ha pogut inserir una nova subscripció."
 
@@ -6800,7 +6981,8 @@ msgstr "Els teus missatges enviats"
 msgid "Tags in %s's notices"
 msgstr "Etiquetes en els avisos de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Desconegut"
 
@@ -6894,19 +7076,24 @@ msgstr "Entorn de proves"
 msgid "Sandbox this user"
 msgstr "Posa l'usuari a l'entorn de proves"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Cerca al lloc"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Paraules clau"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Cerca"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Ajuda de la cerca"
 
@@ -7018,7 +7205,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "El tema conté uns noms d'extensió de fitxer que no són segurs."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7104,56 +7291,64 @@ msgid "Moderator"
 msgstr "Moderador"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "fa pocs segons"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "fa un minut"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "fa %d minuts"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "fa una hora"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "fa %d hores"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "fa un dia"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "fa %d dies"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "fa un mes"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "fa %d mesos"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "fa un any"
 
index 86cf82012f99d91eb2a5a6779df213715e791cc8..2c8d855c4569fca2cf5a0b8768580bab758e9a23 100644 (file)
-# Translation of StatusNet to Czech
+# Translation of StatusNet - Core to Czech (Česky)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Kuvaly
-# Author@translatewiki.net: McDutchie
+# Author: Koo6
+# Author: Kuvaly
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:38+0000\n"
-"Language-Team: Czech\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:28+0000\n"
+"Language-Team: Czech <http://translatewiki.net/wiki/Portal:cs>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: cs\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n< =4) ? 1 : 2 ;\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n >= 2 && n <= 4) ? 1 : "
+"2 );\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
+
+#. TRANS: Page title
+#. TRANS: Menu item for site administration
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
+msgid "Access"
+msgstr "Přístup"
 
 #. TRANS: Page notice
 #: actions/accessadminpanel.php:67
 msgid "Site access settings"
-msgstr "Nastavené Profilu"
+msgstr "Nastavení přístupu"
+
+#. TRANS: Form legend for registration form.
+#: actions/accessadminpanel.php:161
+msgid "Registration"
+msgstr "Registrace"
 
 #. TRANS: Checkbox instructions for admin setting "Private"
 #: actions/accessadminpanel.php:165
 msgid "Prohibit anonymous users (not logged in) from viewing site?"
-msgstr ""
+msgstr "Zakázat anonymním (nepřihlášeným) uživatelům prohlížet stránky"
+
+#. TRANS: Checkbox label for prohibiting anonymous users from viewing site.
+#: actions/accessadminpanel.php:167
+msgctxt "LABEL"
+msgid "Private"
+msgstr "Soukromé"
 
 #. TRANS: Checkbox instructions for admin setting "Invite only"
 #: actions/accessadminpanel.php:174
 msgid "Make registration invitation only."
-msgstr ""
+msgstr "Registrace jen na pozvánku"
 
 #. TRANS: Checkbox label for configuring site as invite only.
 #: actions/accessadminpanel.php:176
 msgid "Invite only"
-msgstr ""
+msgstr "Pouze na pozvánku"
 
 #. TRANS: Checkbox instructions for admin setting "Closed" (no new registrations)
 #: actions/accessadminpanel.php:183
 msgid "Disable new registrations."
-msgstr ""
+msgstr "Znemožnit nové registrace"
 
 #. TRANS: Checkbox label for disabling new user registrations.
 #: actions/accessadminpanel.php:185
 msgid "Closed"
-msgstr ""
+msgstr "Uzavřené"
+
+#. TRANS: Title / tooltip for button to save access settings in site admin panel
+#: actions/accessadminpanel.php:202
+msgid "Save access settings"
+msgstr "uložit nastavení přístupu"
+
+#. TRANS: Button label to save e-mail preferences.
+#. TRANS: Button label to save IM preferences.
+#. TRANS: Button label to save SMS preferences.
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
+msgctxt "BUTTON"
+msgid "Save"
+msgstr "Uložit"
 
 #. TRANS: Server error when page not found (404)
 #: actions/all.php:68 actions/public.php:98 actions/replies.php:93
 #: actions/showfavorites.php:138 actions/tag.php:52
 msgid "No such page."
-msgstr "Žádný takový uživatel."
+msgstr "Tady žádná taková stránka není."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -79,7 +115,13 @@ msgstr "Žádný takový uživatel."
 #: actions/xrds.php:71 lib/command.php:498 lib/galleryaction.php:59
 #: lib/mailbox.php:82 lib/profileaction.php:77
 msgid "No such user."
-msgstr "Žádný takový uživatel."
+msgstr "Uživatel neexistuje."
+
+#. TRANS: Page title. %1$s is user nickname, %2$d is page number
+#: actions/all.php:90
+#, php-format
+msgid "%1$s and friends, page %2$d"
+msgstr "%1$s a přátelé, strana %2$d"
 
 #. TRANS: Page title. %1$s is user nickname
 #. TRANS: H1 text. %1$s is user nickname
@@ -95,13 +137,19 @@ msgstr "%s a přátelé"
 #: actions/all.php:107
 #, php-format
 msgid "Feed for friends of %s (RSS 1.0)"
-msgstr ""
+msgstr "Feed pro přátele uživatele: %s (RSS 1.0)"
 
 #. TRANS: %1$s is user nickname
 #: actions/all.php:116
 #, php-format
 msgid "Feed for friends of %s (RSS 2.0)"
-msgstr ""
+msgstr "Feed pro přátele uživatele: %s (RSS 2.0)"
+
+#. TRANS: %1$s is user nickname
+#: actions/all.php:125
+#, php-format
+msgid "Feed for friends of %s (Atom)"
+msgstr "Feed pro přátele uživatele: %s (Atom)"
 
 #. TRANS: %1$s is user nickname
 #: actions/all.php:138
@@ -109,6 +157,8 @@ msgstr ""
 msgid ""
 "This is the timeline for %s and friends but no one has posted anything yet."
 msgstr ""
+"Tohle je časová osa pro uživatele %s a jeho(její) přátele ale nikdo zatím "
+"nic nenapsal."
 
 #: actions/all.php:143
 #, php-format
@@ -116,6 +166,8 @@ msgid ""
 "Try subscribing to more people, [join a group](%%action.groups%%) or post "
 "something yourself."
 msgstr ""
+"Zkuste začít sledovat víc lidí, [připojte se ke skupině](%%action.groups%%) "
+"nebo napište něco o sobě."
 
 #. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@"
 #: actions/all.php:146
@@ -124,6 +176,8 @@ msgid ""
 "You can try to [nudge %1$s](../%2$s) from their profile or [post something "
 "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
+"Můžete se pokusit uživatele [%1$s postrčit](../%2$s) z jejich profilu nebo "
+"[jim něco poslat](%%%%action.newnotice%%%%?status_textarea=%3$s)."
 
 #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
 #, php-format
@@ -131,6 +185,13 @@ msgid ""
 "Why not [register an account](%%%%action.register%%%%) and then nudge %s or "
 "post a notice to them."
 msgstr ""
+"Proč si [nezaregistrovat účet](%%%%action.register%%%%) a pak pošťouchnout "
+"uživatele %s nebo jim poslat hlášku."
+
+#. TRANS: H1 text
+#: actions/all.php:182
+msgid "You and friends"
+msgstr "Vy a přátelé"
 
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name.
@@ -138,41 +199,77 @@ msgstr ""
 #: actions/apitimelinehome.php:122
 #, php-format
 msgid "Updates from %1$s and friends on %2$s!"
-msgstr ""
-
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+msgstr "Novinky od uživatele %1$s a přátel na %2$s!"
+
+#: actions/apiaccountratelimitstatus.php:72
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
+#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
+#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
+#: actions/apigroupshow.php:116 actions/apihelptest.php:88
+#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
+#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141
+#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111
+#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271
+#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175
+#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241
+#: actions/apitimelineretweetedtome.php:121
+#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161
+#: actions/apitimelineuser.php:163 actions/apiusershow.php:101
+msgid "API method not found."
+msgstr " API metoda nebyla nalezena."
+
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
-msgstr ""
+msgstr "Tato metoda vyžaduje POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
+"Je nutné zadat parametr s názvem 'device' s jednou z hodnot: sms, im, none."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdatedeliverydevice.php:134
+msgid "Could not update user."
+msgstr "Nepodařilo se aktualizovat nastavení uživatele"
+
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Uživatel nemá profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofile.php:148
+msgid "Could not save profile."
+msgstr "Nepodařilo se uložit profil."
+
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -181,171 +278,265 @@ msgid ""
 "The server was unable to handle that much POST data (%s bytes) due to its "
 "current configuration."
 msgstr ""
+"Server nebyl schopen zpracovat tolik POST dat (%s bytů) vzhledem k jeho "
+"aktuální konfiguraci."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
-msgstr ""
+msgstr "Nelze uložit vaše nastavení designu."
+
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
+msgid "Could not update your design."
+msgstr "Nelze uložit design."
+
+#: actions/apiblockcreate.php:106
+msgid "You cannot block yourself!"
+msgstr "Nemůžete zablokovat sami sebe!"
+
+#: actions/apiblockcreate.php:127
+msgid "Block user failed."
+msgstr "Zablokovat uživatele se nezdařilo."
+
+#: actions/apiblockdestroy.php:115
+msgid "Unblock user failed."
+msgstr "Odblokovat uživatele se nezdařilo."
 
 #: actions/apidirectmessage.php:89
 #, php-format
 msgid "Direct messages from %s"
-msgstr ""
+msgstr "Přímá zpráva od %s"
 
 #: actions/apidirectmessage.php:93
 #, php-format
 msgid "All the direct messages sent from %s"
-msgstr ""
+msgstr "Všechny přímé zprávy od uživatele %s"
 
 #: actions/apidirectmessage.php:101
 #, php-format
 msgid "Direct messages to %s"
-msgstr ""
+msgstr "Přímé zprávy uživateli %s"
 
 #: actions/apidirectmessage.php:105
 #, php-format
 msgid "All the direct messages sent to %s"
-msgstr ""
+msgstr "Všechny přímé zprávy odeslané uživateli %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
-msgstr ""
+msgstr "zpráva bez textu!"
+
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
+#, php-format
+msgid "That's too long. Max message size is %d chars."
+msgstr "Je to příliš dlouhé. Maximální délka sdělení je %d znaků."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:139
+msgid "Recipient user not found."
+msgstr "Příjemce nebyl nalezen."
+
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
-msgstr ""
+msgstr "Nelze odesílat zprávy uživatelům, kteří nejsou vašimi přáteli."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
-msgstr ""
+msgstr "Hláška s tímto ID nenalezena."
+
+#: actions/apifavoritecreate.php:121
+msgid "This status is already a favorite."
+msgstr "Tuto hlášku již máte v oblíbených."
 
-#: actions/apifavoritedestroy.php:123
+#. TRANS: Error message text shown when a favorite could not be set.
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
+msgid "Could not create favorite."
+msgstr "Nelze vytvořit oblíbenou položku."
+
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
-msgstr ""
+msgstr "Tato hláška není oblíbená."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Nelze smazat oblíbenou položku."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
-msgstr "Nelze uložit profil"
+msgstr "Nemůžu začít sledovat uživatele, profil nenalezen."
+
+#: actions/apifriendshipscreate.php:119
+#, php-format
+msgid "Could not follow user: %s is already on your list."
+msgstr "Nemohu začít sledovat uživatele: %s je již na vašem seznamu."
+
+#: actions/apifriendshipsdestroy.php:110
+msgid "Could not unfollow user: User not found."
+msgstr "Nemohu přestat sledovat uživatele, uživatel nebyl nalezen."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
-msgstr ""
+msgstr "Nemůžete přestat sledovat sami sebe."
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
+msgstr "Dva platné ID nebo screen_names musí být dodány."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apifriendshipsshow.php:134
+msgid "Could not determine source user."
+msgstr "Nelze určit zdrojového uživatele."
+
+#: actions/apifriendshipsshow.php:142
+msgid "Could not find target user."
+msgstr "Nepodařilo se najít cílového uživatele."
+
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
-msgstr "Přezdívka může obsahovat pouze malá písmena a čísla bez mezer"
+msgstr "Přezdívka může obsahovat pouze malá písmena a čísla a žádné mezery."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
-msgstr "Přezdívku již někdo používá. Zkuste jinou"
+msgstr "Přezdívku již někdo používá. Zkuste jinou."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Není platnou přezdívkou."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
-msgstr "Stránka není platnou URL."
+msgstr "Domovská stránka není platná URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
-msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)"
+msgstr "Celé jméno je moc dlouhé (maximální délka je 255 znaků)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
-msgstr "Umístění příliš dlouhé (maximálně %d znaků)"
+msgstr "Popis je příliš dlouhý (maximálně %d znaků)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
-msgstr "Umístění příliš dlouhé (maximálně 255 znaků)"
+msgstr "Umístění je příliš dlouhé (maximálně 255 znaků)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
-msgstr ""
+msgstr "Příliš mnoho aliasů! Maximálně %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
-msgstr "Neplatná velikost"
+msgstr "Neplatný alias: \"%s\"."
+
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
+#: actions/newgroup.php:172
+#, php-format
+msgid "Alias \"%s\" already in use. Try another one."
+msgstr "Alias \"%s\" se již používá. Zkuste jiný."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
-msgstr ""
+msgstr "Alias nemůže být stejný jako přezdívka."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
-msgstr "Potvrzující kód nebyl nalezen"
+msgstr "Skupina nebyla nalezena."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
-msgstr "Neodeslal jste nám profil"
+msgstr "Jste již členem této skupiny."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
-msgstr ""
+msgstr "Z této skupiny jste byl zablokován adminem."
+
+#. TRANS: Message given having failed to add a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
+#, php-format
+msgid "Could not join user %1$s to group %2$s."
+msgstr "Nemohu připojit uživatele %1$s do skupiny %2$s."
+
+#: actions/apigroupleave.php:116
+msgid "You are not a member of this group."
+msgstr "Nejste členem této skupiny."
+
+#. TRANS: Message given having failed to remove a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
+#: lib/command.php:401
+#, php-format
+msgid "Could not remove user %1$s from group %2$s."
+msgstr "Nelze odebrat uživatele %1$S ze skupiny %2$s."
 
 #. TRANS: %s is a user name
 #: actions/apigrouplist.php:98
 #, php-format
 msgid "%s's groups"
-msgstr "Upravit %s skupinu"
+msgstr "skupiny uživatele %s"
 
 #. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
 #: actions/apigrouplist.php:108
 #, php-format
 msgid "%1$s groups %2$s is a member of."
-msgstr ""
+msgstr "skupiny na %1$s, kterych je %2$s členem."
+
+#. TRANS: Message is used as a title. %s is a site name.
+#. TRANS: Message is used as a page title. %s is a nick name.
+#: actions/apigrouplistall.php:92 actions/usergroups.php:63
+#, php-format
+msgid "%s groups"
+msgstr "skupiny uživatele %s"
 
 #: actions/apigrouplistall.php:96
 #, php-format
 msgid "groups on %s"
-msgstr ""
+msgstr "skupiny na %s"
+
+#: actions/apimediaupload.php:100
+msgid "Upload failed."
+msgstr "Nahrání se nezdařilo."
 
 #: actions/apioauthauthorize.php:101
 msgid "No oauth_token parameter provided."
-msgstr ""
+msgstr "nebyl dodán parametr oauth_token"
+
+#: actions/apioauthauthorize.php:106
+msgid "Invalid token."
+msgstr "Neplatný token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -357,7 +548,19 @@ msgstr ""
 #: actions/unsubscribe.php:69 actions/userauthorization.php:52
 #: lib/designsettings.php:294
 msgid "There was a problem with your session token. Try again, please."
-msgstr ""
+msgstr "Nastal problém s vaším session tokenem. Zkuste to znovu, prosím."
+
+#: actions/apioauthauthorize.php:135
+msgid "Invalid nickname / password!"
+msgstr "Neplatné jméno nebo heslo!"
+
+#: actions/apioauthauthorize.php:159
+msgid "Database error deleting OAuth application user."
+msgstr "Chyba databáze při mazání uživatele aplikace OAuth."
+
+#: actions/apioauthauthorize.php:185
+msgid "Database error inserting OAuth application user."
+msgstr "Chyba databáze při vkládání uživatele aplikace OAuth."
 
 #: actions/apioauthauthorize.php:214
 #, php-format
@@ -365,31 +568,32 @@ msgid ""
 "The request token %s has been authorized. Please exchange it for an access "
 "token."
 msgstr ""
+"Token požadavku %s byl autorizován. Prosím vyměňte jej za přístupový token."
 
 #: actions/apioauthauthorize.php:227
 #, php-format
 msgid "The request token %s has been denied and revoked."
-msgstr ""
+msgstr "Token žádosti %s byl odepřen a zrušen."
 
 #. TRANS: Message given submitting a form with an unknown action in e-mail settings.
 #. TRANS: Message given submitting a form with an unknown action in IM settings.
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
-msgstr "NeÄ\8dekaná forma submission."
+msgstr "NeÄ\8dekaný požadavek."
 
 #: actions/apioauthauthorize.php:259
 msgid "An application would like to connect to your account"
-msgstr ""
+msgstr "Aplikace se chce připojit k vašemu účtu"
 
 #: actions/apioauthauthorize.php:276
 msgid "Allow or deny access"
-msgstr ""
+msgstr "Povolit nebo zamítnout přístup"
 
 #: actions/apioauthauthorize.php:292
 #, php-format
@@ -398,6 +602,14 @@ msgid ""
 "the ability to <strong>%3$s</strong> your %4$s account data. You should only "
 "give access to your %4$s account to third parties you trust."
 msgstr ""
+"Aplikace <strong>%1$s</strong> od <strong>%2$s</strong> by chtěla \"<strong>%"
+"3$s</strong>\" data vašeho účtu na %4$s. Měli byste povolit přístup k datům "
+"vašeho účtu na %4$s jen třetím stranám kterým věříte.."
+
+#. TRANS: Main menu option when logged in for access to user settings
+#: actions/apioauthauthorize.php:310 lib/action.php:463
+msgid "Account"
+msgstr "Účet"
 
 #: actions/apioauthauthorize.php:313 actions/login.php:252
 #: actions/profilesettings.php:106 actions/register.php:431
@@ -413,82 +625,129 @@ msgstr "Přezdívka"
 msgid "Password"
 msgstr "Heslo"
 
+#: actions/apioauthauthorize.php:328
+msgid "Deny"
+msgstr "Odepřít"
+
 #: actions/apioauthauthorize.php:334
 msgid "Allow"
-msgstr ""
+msgstr "Povolit"
 
 #: actions/apioauthauthorize.php:351
 msgid "Allow or deny access to your account information."
-msgstr ""
+msgstr "Povolit nebo zakázat přístup k vašemu účtu."
 
 #: actions/apistatusesdestroy.php:112
 msgid "This method requires a POST or DELETE."
-msgstr ""
+msgstr "Tato metoda vyžaduje POST nebo DELETE."
 
 #: actions/apistatusesdestroy.php:135
 msgid "You may not delete another user's status."
-msgstr ""
+msgstr "Nesmíte odstraňovat status jiného uživatele."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Žádné takové oznámení."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
-msgstr "Toto oznámení nelze odstranit."
+msgstr "Nelze opakovat své vlastní oznámení."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
-msgstr "Toto oznámení nelze odstranit."
+msgstr "Již jste zopakoval toto oznámení."
 
 #: actions/apistatusesshow.php:139
 msgid "Status deleted."
-msgstr "Avatar smazán."
+msgstr "Status smazán."
 
 #: actions/apistatusesshow.php:145
 msgid "No status with that ID found."
-msgstr ""
+msgstr "Nenalezen status s tímto ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
-msgstr ""
+msgstr "Klient musí poskytnout 'status' parametr s hodnotou."
+
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
+#: lib/mailhandler.php:60
+#, php-format
+msgid "That's too long. Max notice size is %d chars."
+msgstr "Je to příliš dlouhé. Maximální délka sdělení je %d znaků"
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
+msgid "Not found."
+msgstr "Nebyl nalezen."
+
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
-msgstr ""
+msgstr "Maximální délka notice je %d znaků včetně přiložené URL."
+
+#: actions/apisubscriptions.php:232 actions/apisubscriptions.php:262
+msgid "Unsupported format."
+msgstr "Nepodporovaný formát."
+
+#: actions/apitimelinefavorites.php:110
+#, php-format
+msgid "%1$s / Favorites from %2$s"
+msgstr "%1$s / Oblíbené z %2$s"
 
 #: actions/apitimelinefavorites.php:119
 #, php-format
 msgid "%1$s updates favorited by %2$s / %2$s."
-msgstr ""
+msgstr "Updaty na %1$s od %2$s / %2$s."
+
+#: actions/apitimelinementions.php:118
+#, php-format
+msgid "%1$s / Updates mentioning %2$s"
+msgstr "%1$s / Updaty zmiňující %2$s"
 
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
-msgstr ""
+msgstr "updaty na %1$s odpovídající na updaty od %2$s / %3$s."
+
+#: actions/apitimelinepublic.php:197 actions/publicrss.php:103
+#, php-format
+msgid "%s public timeline"
+msgstr "Veřejná časová osa %s"
 
 #: actions/apitimelinepublic.php:202 actions/publicrss.php:105
 #, php-format
 msgid "%s updates from everyone!"
-msgstr ""
+msgstr "Všechny updaty na %s!"
+
+#: actions/apitimelineretweetedtome.php:111
+#, php-format
+msgid "Repeated to %s"
+msgstr "Opakováno uživatelem %s"
+
+#: actions/apitimelineretweetsofme.php:114
+#, php-format
+msgid "Repeats of %s"
+msgstr "Opakování %s"
 
 #: actions/apitimelinetag.php:105 actions/tag.php:67
 #, php-format
 msgid "Notices tagged with %s"
-msgstr ""
+msgstr "Noticy taglé %s"
 
 #: actions/apitimelinetag.php:107 actions/tagrss.php:65
 #, php-format
 msgid "Updates tagged with %1$s on %2$s!"
-msgstr ""
+msgstr "Aktualizace označené %1$s na %2$s!"
+
+#: actions/apitrends.php:87
+msgid "API method under construction."
+msgstr "API metoda ve výstavbě."
 
 #: actions/attachment.php:73
 msgid "No such attachment."
-msgstr "Žádné takové oznámení."
+msgstr "Žádná taková pÅ\99íloha."
 
 #: actions/avatarbynickname.php:59 actions/blockedfromgroup.php:73
 #: actions/editgroup.php:84 actions/groupdesignsettings.php:84
@@ -509,7 +768,18 @@ msgstr "Neplatná velikost"
 #: actions/avatarsettings.php:67 actions/showgroup.php:230
 #: lib/accountsettingsaction.php:118
 msgid "Avatar"
-msgstr "Obrázek"
+msgstr "Avatar"
+
+#: actions/avatarsettings.php:78
+#, php-format
+msgid "You can upload your personal avatar. The maximum file size is %s."
+msgstr "Můžete nahrát váš osobní avatar. Maximální velikost souboru je %s."
+
+#: actions/avatarsettings.php:106 actions/avatarsettings.php:185
+#: actions/grouplogo.php:181 actions/remotesubscribe.php:191
+#: actions/userauthorization.php:72 actions/userrss.php:108
+msgid "User without matching profile."
+msgstr "Uživatel bez odpovídajícího profilu."
 
 #: actions/avatarsettings.php:119 actions/avatarsettings.php:197
 #: actions/grouplogo.php:254
@@ -519,7 +789,12 @@ msgstr "Nastavené Profilu"
 #: actions/avatarsettings.php:127 actions/avatarsettings.php:205
 #: actions/grouplogo.php:202 actions/grouplogo.php:262
 msgid "Original"
-msgstr ""
+msgstr "Originál"
+
+#: actions/avatarsettings.php:142 actions/avatarsettings.php:217
+#: actions/grouplogo.php:213 actions/grouplogo.php:274
+msgid "Preview"
+msgstr "Náhled"
 
 #: actions/avatarsettings.php:149 actions/showapplication.php:252
 #: lib/deleteuserform.php:66 lib/noticelist.php:657
@@ -530,13 +805,21 @@ msgstr "Odstranit"
 msgid "Upload"
 msgstr "Upload"
 
+#: actions/avatarsettings.php:231 actions/grouplogo.php:289
+msgid "Crop"
+msgstr "Oříznout"
+
+#: actions/avatarsettings.php:305
+msgid "No file uploaded."
+msgstr "žádný soubor nebyl nahrán."
+
 #: actions/avatarsettings.php:332
 msgid "Pick a square area of the image to be your avatar"
-msgstr ""
+msgstr "Vyberte čtvercovou plochu obrázku, která bude váš avatar"
 
 #: actions/avatarsettings.php:347 actions/grouplogo.php:380
 msgid "Lost our file data."
-msgstr ""
+msgstr "Ztratili jsme údaje souboru."
 
 #: actions/avatarsettings.php:370
 msgid "Avatar updated."
@@ -564,6 +847,9 @@ msgid ""
 "unsubscribed from you, unable to subscribe to you in the future, and you "
 "will not be notified of any @-replies from them."
 msgstr ""
+"Jste si jisti, že chcete zablokovat tohoto uživatele? Poté bude odhlášen od "
+"vás, nebude se k vám moci v budoucnu přihlásit, a nebudete upozorňováni na "
+"jakékoli @-odpovědi od nich."
 
 #. TRANS: Button label on the user block form.
 #. TRANS: Button label on the delete application form.
@@ -583,14 +869,28 @@ msgstr "Poznámka"
 msgid "Do not block this user"
 msgstr "Zablokovat tohoto uživatele"
 
+#. TRANS: Button label on the user block form.
+#. TRANS: Button label on the delete application form.
+#. TRANS: Button label on the delete notice form.
+#. TRANS: Button label on the delete user form.
+#. TRANS: Button label on the form to block a user from a group.
+#: actions/block.php:160 actions/deleteapplication.php:161
+#: actions/deletenotice.php:154 actions/deleteuser.php:159
+#: actions/groupblock.php:185
+msgctxt "BUTTON"
+msgid "Yes"
+msgstr "Ano"
+
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Zablokovat tohoto uživatele"
 
 #: actions/block.php:187
 msgid "Failed to save block information."
-msgstr ""
+msgstr "Nepodařilo se uložit blokování."
 
 #. TRANS: Command exception text shown when a group is requested that does not exist.
 #. TRANS: Error text shown when trying to leave a group that does not exist.
@@ -611,20 +911,36 @@ msgstr "Žádný takový uživatel."
 #: actions/blockedfromgroup.php:97
 #, php-format
 msgid "%s blocked profiles"
-msgstr ""
+msgstr "profily blokovány skupinou %s"
 
 #: actions/blockedfromgroup.php:100
 #, php-format
 msgid "%1$s blocked profiles, page %2$d"
-msgstr ""
+msgstr "blokované profily %1$s, strana  %2$d"
+
+#: actions/blockedfromgroup.php:115
+msgid "A list of the users blocked from joining this group."
+msgstr "Seznam uživatelů blokovaných od připojení k této skupině."
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#: actions/blockedfromgroup.php:288
+msgid "Unblock user from group"
+msgstr "Odblokovat uživatele ze skupiny"
+
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
-msgstr ""
+msgstr "Odblokovat"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
-msgstr "Zablokovat tohoto uživatele"
+msgstr "Odblokovat tohoto uživatele"
+
+#. TRANS: Title for mini-posting window loaded from bookmarklet.
+#: actions/bookmarklet.php:51
+#, php-format
+msgid "Post to %s"
+msgstr "Poslat na %s"
 
 #: actions/confirmaddress.php:75
 msgid "No confirmation code."
@@ -642,7 +958,7 @@ msgstr "Tento potvrzující kód vám nepatří!"
 #: actions/confirmaddress.php:91
 #, php-format
 msgid "Unrecognized address type %s."
-msgstr ""
+msgstr "Neznámý typ adresy %s."
 
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
@@ -655,9 +971,9 @@ msgstr "Adresa již byla potvrzena"
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -665,7 +981,7 @@ msgstr "Nelze aktualizovat uživatele"
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Nelze smazat potvrzení emailu"
@@ -679,20 +995,38 @@ msgstr "Heslo znovu"
 msgid "The address \"%s\" has been confirmed for your account."
 msgstr "Adresa \"%s\" byla potvrzena pro váš účet"
 
+#: actions/conversation.php:99
+msgid "Conversation"
+msgstr "Konverzace"
+
 #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
 #: lib/profileaction.php:229 lib/searchgroupnav.php:82
 msgid "Notices"
 msgstr "Sdělení"
 
+#: actions/deleteapplication.php:63
+msgid "You must be logged in to delete an application."
+msgstr "Pro vymazání aplikace musíte být přihlášen."
+
 #: actions/deleteapplication.php:71
 msgid "Application not found."
-msgstr "Potvrzující kód nebyl nalezen"
+msgstr "Aplikace nebyla nalezena."
+
+#: actions/deleteapplication.php:78 actions/editapplication.php:77
+#: actions/showapplication.php:94
+msgid "You are not the owner of this application."
+msgstr "Nejste vlastníkem této aplikace."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
-msgstr ""
+msgstr "Nastal problém s vaším session tokenem."
+
+#: actions/deleteapplication.php:123 actions/deleteapplication.php:147
+msgid "Delete application"
+msgstr "Odstranit aplikaci"
 
 #: actions/deleteapplication.php:149
 msgid ""
@@ -700,11 +1034,18 @@ msgid ""
 "about the application from the database, including all existing user "
 "connections."
 msgstr ""
+"Jste si jisti, že chcete smazat tuto aplikaci? To vymaže všechny data o "
+"aplikace z databáze, včetně všech existujících uživatelských spojení."
 
 #. TRANS: Submit button title for 'No' when deleting an application.
 #: actions/deleteapplication.php:158
 msgid "Do not delete this application"
-msgstr "Toto oznámení nelze odstranit."
+msgstr "Neodstraňujte tuto aplikaci"
+
+#. TRANS: Submit button title for 'Yes' when deleting an application.
+#: actions/deleteapplication.php:164
+msgid "Delete this application"
+msgstr "Odstranit tuto aplikaci"
 
 #. TRANS: Client error message thrown when trying to access the admin panel while not logged in.
 #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62
@@ -712,10 +1053,10 @@ msgstr "Toto oznámení nelze odstranit."
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
-msgstr "Nepřihlášen"
+msgstr "Nejste přihlášen(a)."
 
 #: actions/deletenotice.php:71
 msgid "Can't delete this notice."
@@ -726,22 +1067,46 @@ msgid ""
 "You are about to permanently delete a notice. Once this is done, it cannot "
 "be undone."
 msgstr ""
+"Chystáte se trvale odstranit oznámení. Jakmile se tak stane, nemůže se "
+"odestát."
+
+#: actions/deletenotice.php:109 actions/deletenotice.php:141
+msgid "Delete notice"
+msgstr "Odstranit oznámení"
+
+#: actions/deletenotice.php:144
+msgid "Are you sure you want to delete this notice?"
+msgstr "Jste si jisti, že chcete smazat tohoto oznámení?"
 
 #. TRANS: Submit button title for 'No' when deleting a notice.
 #: actions/deletenotice.php:151
 msgid "Do not delete this notice"
-msgstr "Toto oznámení nelze odstranit."
+msgstr "Neodstraňujte toto oznámení"
 
 #. TRANS: Submit button title for 'Yes' when deleting a notice.
 #: actions/deletenotice.php:158 lib/noticelist.php:657
 msgid "Delete this notice"
 msgstr "Odstranit toto oznámení"
 
+#: actions/deleteuser.php:67
+msgid "You cannot delete users."
+msgstr "Nemůžete odstranit uživatele."
+
+#: actions/deleteuser.php:74
+msgid "You can only delete local users."
+msgstr "Můžete smazat pouze místní uživatele."
+
+#: actions/deleteuser.php:110 actions/deleteuser.php:133
+msgid "Delete user"
+msgstr "Smazat uživatele"
+
 #: actions/deleteuser.php:136
 msgid ""
 "Are you sure you want to delete this user? This will clear all data about "
 "the user from the database, without a backup."
 msgstr ""
+"Jste si jisti, že chcete smazat tohoto uživatele? To odstraní všechny údaje "
+"o uživateli z databáze, bez zálohy."
 
 #. TRANS: Submit button title for 'Yes' when deleting a user.
 #: actions/deleteuser.php:163 lib/deleteuserform.php:77
@@ -751,61 +1116,84 @@ msgstr "Odstranit tohoto uživatele"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Vzhled"
 
 #: actions/designadminpanel.php:74
 msgid "Design settings for this StatusNet site."
-msgstr ""
+msgstr "Nastavení vzhledu pro tuto stránku StatusNet."
+
+#: actions/designadminpanel.php:318
+msgid "Invalid logo URL."
+msgstr "Neplatná URL loga."
 
 #: actions/designadminpanel.php:322
 #, php-format
 msgid "Theme not available: %s."
-msgstr ""
+msgstr "Téma není k dispozici: %s."
 
 #: actions/designadminpanel.php:426
 msgid "Change logo"
-msgstr "Změnit barvy"
+msgstr "Změňte logo"
+
+#: actions/designadminpanel.php:431
+msgid "Site logo"
+msgstr "Logo stránek"
+
+#: actions/designadminpanel.php:443
+msgid "Change theme"
+msgstr "Změnit téma"
+
+#: actions/designadminpanel.php:460
+msgid "Site theme"
+msgstr "Téma stránek"
 
 #: actions/designadminpanel.php:461
 msgid "Theme for the site."
-msgstr ""
+msgstr "Téma stránek"
 
 #: actions/designadminpanel.php:467
 msgid "Custom theme"
-msgstr ""
+msgstr "Vlastní téma"
 
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
-msgstr ""
+msgstr "Můžete nahrát vlastní StatusNet téma jako .ZIP archiv."
 
 #: actions/designadminpanel.php:486 lib/designsettings.php:101
 msgid "Change background image"
-msgstr ""
+msgstr "Změnit obrázek na pozadí"
 
 #: actions/designadminpanel.php:491 actions/designadminpanel.php:574
 #: lib/designsettings.php:178
 msgid "Background"
 msgstr "Pozadí"
 
+#: actions/designadminpanel.php:496
+#, php-format
+msgid ""
+"You can upload a background image for the site. The maximum file size is %1"
+"$s."
+msgstr ""
+"Můžete nahrát obrázek na pozadí stránek. Maximální velikost souboru je %1$s."
+
 #. TRANS: Used as radio button label to add a background image.
 #: actions/designadminpanel.php:527 lib/designsettings.php:139
 msgid "On"
-msgstr ""
+msgstr "zap."
 
 #. TRANS: Used as radio button label to not add a background image.
 #: actions/designadminpanel.php:544 lib/designsettings.php:155
 msgid "Off"
-msgstr ""
+msgstr "vyp."
 
 #: actions/designadminpanel.php:545 lib/designsettings.php:156
 msgid "Turn background image on or off."
-msgstr ""
+msgstr "Zapněte nebů vypněte obrázek na pozadí."
 
 #: actions/designadminpanel.php:550 lib/designsettings.php:161
 msgid "Tile background image"
-msgstr ""
+msgstr "Dlaždicovat obrázek na pozadí"
 
 #: actions/designadminpanel.php:564 lib/designsettings.php:170
 msgid "Change colours"
@@ -815,9 +1203,13 @@ msgstr "Změnit barvy"
 msgid "Content"
 msgstr "Obsah"
 
+#: actions/designadminpanel.php:600 lib/designsettings.php:204
+msgid "Sidebar"
+msgstr "Boční panel"
+
 #: actions/designadminpanel.php:613 lib/designsettings.php:217
 msgid "Text"
-msgstr ""
+msgstr "Text"
 
 #: actions/designadminpanel.php:626 lib/designsettings.php:230
 msgid "Links"
@@ -825,38 +1217,42 @@ msgstr "Odkazy"
 
 #: actions/designadminpanel.php:651
 msgid "Advanced"
-msgstr ""
+msgstr "Rozšířené"
 
 #: actions/designadminpanel.php:655
 msgid "Custom CSS"
-msgstr ""
+msgstr "Vlastní CSS"
 
 #: actions/designadminpanel.php:676 lib/designsettings.php:247
 msgid "Use defaults"
-msgstr ""
+msgstr "Použít výchozí"
 
 #: actions/designadminpanel.php:677 lib/designsettings.php:248
 msgid "Restore default designs"
-msgstr ""
+msgstr "Obnovit výchozí vzhledy"
 
 #: actions/designadminpanel.php:683 lib/designsettings.php:254
 msgid "Reset back to default"
-msgstr ""
+msgstr "Reset zpět do výchozího"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Uložit"
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr "Uložit vzhled"
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
-msgstr ""
+msgstr "Toto oznámení není oblíbeno!"
 
 #: actions/disfavor.php:94
 msgid "Add to favorites"
@@ -865,55 +1261,109 @@ msgstr "Přidat do oblíbených"
 #: actions/doc.php:158
 #, php-format
 msgid "No such document \"%s\""
-msgstr "Žádné takové oznámení."
+msgstr "Žádný dokument \"%s\" neexistuje"
 
 #: actions/editapplication.php:54
 msgid "Edit Application"
-msgstr ""
+msgstr "Upravit aplikaci"
+
+#: actions/editapplication.php:66
+msgid "You must be logged in to edit an application."
+msgstr "Pro úpravy aplikace musíte být přihlášen."
+
+#: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166
+#: actions/showapplication.php:87
+msgid "No such application."
+msgstr "Aplikace neexistuje."
 
 #: actions/editapplication.php:161
 msgid "Use this form to edit your application."
-msgstr ""
+msgstr "Pomocí tohoto formuláře můžete upravovat svou aplikaci."
+
+#: actions/editapplication.php:177 actions/newapplication.php:159
+msgid "Name is required."
+msgstr "Název je povinný."
+
+#: actions/editapplication.php:180 actions/newapplication.php:165
+msgid "Name is too long (max 255 chars)."
+msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)."
+
+#: actions/editapplication.php:183 actions/newapplication.php:162
+msgid "Name already in use. Try another one."
+msgstr "Název již někdo používá. Zkuste jinou"
 
 #: actions/editapplication.php:186 actions/newapplication.php:168
 msgid "Description is required."
-msgstr "Odběr odmítnut"
+msgstr "Popis je třeba."
 
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
-msgstr ""
+msgstr "URL zdroje je příliš dlouhý."
+
+#: actions/editapplication.php:200 actions/newapplication.php:185
+msgid "Source URL is not valid."
+msgstr "URL zdroje není platný."
+
+#: actions/editapplication.php:203 actions/newapplication.php:188
+msgid "Organization is required."
+msgstr "Organizace je nutná."
+
+#: actions/editapplication.php:206 actions/newapplication.php:191
+msgid "Organization is too long (max 255 chars)."
+msgstr "Organizace je příliš dlouhá (max 255 znaků)."
+
+#: actions/editapplication.php:209 actions/newapplication.php:194
+msgid "Organization homepage is required."
+msgstr "Homepage organizace je nutná."
 
 #: actions/editapplication.php:218 actions/newapplication.php:206
 msgid "Callback is too long."
-msgstr ""
+msgstr "Callback je příliš dlouhý."
 
 #: actions/editapplication.php:225 actions/newapplication.php:215
 msgid "Callback URL is not valid."
-msgstr ""
+msgstr "Callback URL není platný."
+
+#: actions/editapplication.php:258
+msgid "Could not update application."
+msgstr "Nelze aktualizovat aplikaci."
 
 #: actions/editgroup.php:56
 #, php-format
 msgid "Edit %s group"
-msgstr "Upravit %s skupinu"
+msgstr "Upravit skupinu %s"
+
+#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
+msgid "You must be logged in to create a group."
+msgstr "K vytvoření skupiny musíte být přihlášen."
 
 #: actions/editgroup.php:107 actions/editgroup.php:172
 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109
 msgid "You must be an admin to edit the group."
-msgstr ""
+msgstr "K úpravě skupiny musíte být admin."
 
 #: actions/editgroup.php:158
 msgid "Use this form to edit the group."
-msgstr ""
+msgstr "Použijte tento formulář k úpravám skupiny."
 
 #: actions/editgroup.php:205 actions/newgroup.php:145
 #, php-format
 msgid "description is too long (max %d chars)."
-msgstr "Umístění příliš dlouhé (maximálně 255 znaků)"
+msgstr "Popis je příliš dlouhý (maximálně %d znaků)."
+
+#: actions/editgroup.php:228 actions/newgroup.php:168
+#, php-format
+msgid "Invalid alias: \"%s\""
+msgstr "Neplatný alias: \"%s\""
+
+#: actions/editgroup.php:258
+msgid "Could not update group."
+msgstr "Nelze aktualizovat skupinu."
 
 #. TRANS: Server exception thrown when creating group aliases failed.
 #: actions/editgroup.php:264 classes/User_group.php:514
 msgid "Could not create aliases."
-msgstr "Nelze aktualizovat uživatele"
+msgstr "Nelze vytvořit aliasy."
 
 #: actions/editgroup.php:280
 msgid "Options saved."
@@ -922,145 +1372,273 @@ msgstr "Nastavení uloženo."
 #. TRANS: Title for e-mail settings.
 #: actions/emailsettings.php:61
 msgid "Email settings"
-msgstr "Nastavené Profilu"
+msgstr "Nastavení e-mailu"
 
 #. TRANS: E-mail settings page instructions.
 #. TRANS: %%site.name%% is the name of the site.
 #: actions/emailsettings.php:76
 #, php-format
 msgid "Manage how you get email from %%site.name%%."
-msgstr ""
+msgstr "Spravovat posílání e-mailů z %%site.name%%."
+
+#. TRANS: Form legend for e-mail settings form.
+#. TRANS: Field label for e-mail address input in e-mail settings form.
+#: actions/emailsettings.php:106 actions/emailsettings.php:132
+msgid "Email address"
+msgstr "E-mailová adresa"
+
+#. TRANS: Form note in e-mail settings form.
+#: actions/emailsettings.php:112
+msgid "Current confirmed email address."
+msgstr "Aktuální potvrzená e-mailová adresa."
 
 #. TRANS: Button label to remove a confirmed e-mail address.
 #. TRANS: Button label for removing a set sender e-mail address to post notices from.
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
 msgid "Remove"
-msgstr "Obnovit"
+msgstr "Odstranit"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#: actions/emailsettings.php:122
+msgid ""
+"Awaiting confirmation on this address. Check your inbox (and spam box!) for "
+"a message with further instructions."
+msgstr ""
+"Čakám na potvrzení této adresy. Podívejte se v příchozí poště (a spamu!) po "
+"e-mailu s dalšími instrukcemi."
+
+#. TRANS: Button label to cancel an e-mail address confirmation procedure.
+#. TRANS: Button label to cancel an IM address confirmation procedure.
+#. TRANS: Button label to cancel a SMS address confirmation procedure.
+#. TRANS: Button label in the "Edit application" form.
+#: actions/emailsettings.php:127 actions/imsettings.php:131
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
+msgctxt "BUTTON"
+msgid "Cancel"
+msgstr "Zrušit"
+
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
-msgstr ""
+msgstr "E-mailová adresa, ve stylu \"UzivatelskeJmeno@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
-msgstr ""
+msgstr "Přidat"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
-msgstr ""
+msgstr "Příchozí e-mail"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
-msgstr ""
+msgstr "Pošlete e-mail na tuto adresu pro poslání nového oznámení."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
-msgstr ""
+msgstr "Vytvoření nové e-mailové adresy pro zasílání, ruší starou."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
-msgstr ""
+msgstr "Nová"
+
+#. TRANS: Form legend for e-mail preferences form.
+#: actions/emailsettings.php:178
+msgid "Email preferences"
+msgstr "Nastavení e-mailu"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:184
+msgid "Send me notices of new subscriptions through email."
+msgstr "Pošlete mi oznámení o nových přihlášeních e-mailem."
+
+#. TRANS: Checkbox label in e-mail preferences form.
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
-msgstr ""
+msgstr "Pošlete mi e-mail, když někdo přidá moje oznámení mezi oblíbené."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
-msgstr ""
+msgstr "Pošlete mi e-mail, když mi někdo pošle soukromou zprávu."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
-msgstr ""
+msgstr "Pošlete mi e-mail, když mi někdo pošle \"@-odpověď\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
-msgstr ""
+msgstr "Povolit přátelům mě pošťouchnout a poslat mi email."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
-msgstr ""
+msgstr "Chci posílat oznámení e-mailem."
+
+#. TRANS: Checkbox label in e-mail preferences form.
+#: actions/emailsettings.php:223
+msgid "Publish a MicroID for my email address."
+msgstr "Publikovat MicroID pro mou e-mailovou adresu."
+
+#. TRANS: Confirmation message for successful e-mail preferences save.
+#: actions/emailsettings.php:338
+msgid "Email preferences saved."
+msgstr "Email nastavení uloženo."
+
+#. TRANS: Message given saving e-mail address without having provided one.
+#: actions/emailsettings.php:357
+msgid "No email address."
+msgstr "Chybí e-mailová adresa."
+
+#. TRANS: Message given saving e-mail address that cannot be normalised.
+#: actions/emailsettings.php:365
+msgid "Cannot normalize that email address"
+msgstr "Nepodařilo se normalizovat (kanonizovat) e-mailovou adresu."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Není platnou mailovou adresou."
 
+#. TRANS: Message given saving e-mail address that is already set.
+#: actions/emailsettings.php:374
+msgid "That is already your email address."
+msgstr "To je již vaší e-mailovou adresou."
+
+#. TRANS: Message given saving e-mail address that is already set for another user.
+#: actions/emailsettings.php:378
+msgid "That email address already belongs to another user."
+msgstr "Tato e-mailová adresa již patří jinému uživateli."
+
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
-msgstr "Nelze vložit potvrzující kód"
+msgstr "Nelze vložit potvrzující kód."
+
+#. TRANS: Message given saving valid e-mail address that is to be confirmed.
+#: actions/emailsettings.php:402
+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 ""
+"Potvrzovací kód byl zaslán na e-mailovou adresu, kterou jste přidali. "
+"Zkontrolujte vaše e-mailové schránky (a spam box!) pro kód a instrukce, jak "
+"jej použít."
 
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
-msgstr "Nečeká žádné potvrzení na zrušení."
+msgstr "Žádné potvrzení ke zrušení."
+
+#. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
+#: actions/emailsettings.php:428
+msgid "That is the wrong email address."
+msgstr "Toto je špatná e-mailová adresa."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
-msgstr "Nečeká žádné potvrzení na zrušení."
+msgstr "Potvrzení e-mailu zrušeno."
+
+#. TRANS: Message given trying to remove an e-mail address that is not
+#. TRANS: registered for the active user.
+#: actions/emailsettings.php:462
+msgid "That is not your email address."
+msgstr "To není vaše e-mailová adresa."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
-msgstr "Emailová adresa již existuje"
+msgstr "E-mailová adresa byla odstraněna."
+
+#: actions/emailsettings.php:497 actions/smssettings.php:568
+msgid "No incoming email address."
+msgstr "Nemáte příchozí e-mailovou adresu."
+
+#. TRANS: Server error thrown on database error removing incoming e-mail address.
+#. TRANS: Server error thrown on database error adding incoming e-mail address.
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
+#: actions/smssettings.php:578 actions/smssettings.php:602
+msgid "Couldn't update user record."
+msgstr "Nelze aktualizovat záznam uživatele."
+
+#. TRANS: Message given after successfully removing an incoming e-mail address.
+#: actions/emailsettings.php:512 actions/smssettings.php:581
+msgid "Incoming email address removed."
+msgstr "Příchozí e-mailová adresa odstraněna."
+
+#. TRANS: Message given after successfully adding an incoming e-mail address.
+#: actions/emailsettings.php:536 actions/smssettings.php:605
+msgid "New incoming email address added."
+msgstr "Přidána nová příchozí e-mailová adresa."
 
 #: actions/favor.php:79
 msgid "This notice is already a favorite!"
-msgstr ""
+msgstr "Tuto hlášku již máte v oblíbených."
+
+#: actions/favor.php:92 lib/disfavorform.php:140
+msgid "Disfavor favorite"
+msgstr "Znemilostnit oblíbenou"
+
+#: actions/favorited.php:65 lib/popularnoticesection.php:91
+#: lib/publicgroupnav.php:93
+msgid "Popular notices"
+msgstr "Populární oznámení"
 
 #: actions/favorited.php:67
 #, php-format
 msgid "Popular notices, page %d"
-msgstr ""
+msgstr "Populární oznámení, strana %d"
 
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
-msgstr ""
+msgstr "Právě teď nejpopulárnější oznámení na stránkách."
 
 #: actions/favorited.php:150
 msgid "Favorite notices appear on this page but no one has favorited one yet."
 msgstr ""
+"Oblíbená oznámení se objeví na této stránce, ale nikdo zatím oblíbené ještě "
+"nemá."
 
 #: actions/favorited.php:153
 msgid ""
 "Be the first to add a notice to your favorites by clicking the fave button "
 "next to any notice you like."
 msgstr ""
+"Buďte první, kdo přidá oznámení k oblíbeným kliknutím na tlačítko Oblíbené "
+"vedle kteréhokoli oznámení které se vám líbí."
 
 #: actions/favorited.php:156
 #, php-format
@@ -1068,42 +1646,58 @@ msgid ""
 "Why not [register an account](%%action.register%%) and be the first to add a "
 "notice to your favorites!"
 msgstr ""
+"Proč ne [zaregistrovat účet](%%action.register%%) a být první, kdo přidá "
+"oznámení k oblíbeným!"
+
+#: actions/favoritesrss.php:111 actions/showfavorites.php:77
+#: lib/personalgroupnav.php:115
+#, php-format
+msgid "%s's favorite notices"
+msgstr "oblíbená oznámení uživatele %s"
 
 #: actions/favoritesrss.php:115
 #, php-format
 msgid "Updates favored by %1$s on %2$s!"
-msgstr ""
+msgstr "Aktualizace oblíbené uživatelem %1$s na %2$s!"
 
 #: actions/featured.php:69 lib/featureduserssection.php:87
 #: lib/publicgroupnav.php:89
 msgid "Featured users"
-msgstr ""
+msgstr "Nejlepší uživatelé"
 
 #: actions/featured.php:71
 #, php-format
 msgid "Featured users, page %d"
-msgstr ""
+msgstr "Nejlepší uživatelé, strana %d"
 
 #: actions/featured.php:99
 #, php-format
 msgid "A selection of some great users on %s"
-msgstr ""
+msgstr "Výběr některých skvělých uživatelů na %s"
 
 #: actions/file.php:34
 msgid "No notice ID."
-msgstr "Žádné takové oznámení."
+msgstr "Chybí ID oznámení."
 
 #: actions/file.php:38
 msgid "No notice."
 msgstr "Žádné takové oznámení."
 
+#: actions/file.php:42
+msgid "No attachments."
+msgstr "Bez příloh."
+
+#: actions/file.php:51
+msgid "No uploaded attachments."
+msgstr "Žádné nahrané přílohy."
+
 #: actions/finishremotesubscribe.php:69
 msgid "Not expecting this response!"
-msgstr "Nečekaná odpověď."
+msgstr "Nečekaná odpověď!"
 
 #: actions/finishremotesubscribe.php:80
 msgid "User being listened to does not exist."
-msgstr ""
+msgstr "Úživatel, kterému nasloucháte neexistuje."
 
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
@@ -1111,40 +1705,80 @@ msgstr "Můžete použít místní odebírání."
 
 #: actions/finishremotesubscribe.php:99
 msgid "That user has blocked you from subscribing."
-msgstr ""
+msgstr "Uživatel vaše odebírání zablokoval."
 
 #: actions/finishremotesubscribe.php:110
 msgid "You are not authorized."
-msgstr "Odběr autorizován"
+msgstr "Nejste autorizován."
 
 #: actions/finishremotesubscribe.php:113
 msgid "Could not convert request token to access token."
-msgstr ""
+msgstr "Nemohu převést žádost token na přístup token."
 
 #: actions/finishremotesubscribe.php:118
 msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
+msgstr "Vzdálená služba používá neznámou verzi protokolu OMB."
+
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
+msgid "Error updating remote profile."
+msgstr "Chyba při aktualizaci vzdáleného profilu."
+
+#: actions/getfile.php:79
+msgid "No such file."
+msgstr "Žádný takový soubor."
 
 #: actions/getfile.php:83
 msgid "Cannot read file."
-msgstr "Nelze uložit profil"
+msgstr "Nelze přečíst soubor."
+
+#: actions/grantrole.php:62 actions/revokerole.php:62
+msgid "Invalid role."
+msgstr "Neplatná role."
 
 #: actions/grantrole.php:66 actions/revokerole.php:66
 msgid "This role is reserved and cannot be set."
-msgstr ""
+msgstr "Tato role je vyhrazena a nelze jí nastavit."
 
 #: actions/grantrole.php:75
 msgid "You cannot grant user roles on this site."
-msgstr ""
+msgstr "Nemůžete dávat uživatelské role na této stránce."
+
+#: actions/grantrole.php:82
+msgid "User already has this role."
+msgstr "Uživatel již tuto roli má."
+
+#: actions/groupblock.php:71 actions/groupunblock.php:71
+#: actions/makeadmin.php:71 actions/subedit.php:46
+#: lib/profileformaction.php:79
+msgid "No profile specified."
+msgstr "Nebyl vybrán profil."
+
+#: actions/groupblock.php:76 actions/groupunblock.php:76
+#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
+#: actions/unsubscribe.php:84 lib/profileformaction.php:86
+msgid "No profile with that ID."
+msgstr "Neexistuje profil s tímto ID."
 
 #: actions/groupblock.php:81 actions/groupunblock.php:81
 #: actions/makeadmin.php:81
 msgid "No group specified."
-msgstr ""
+msgstr "Nebyla vybrána skupina."
 
 #: actions/groupblock.php:91
 msgid "Only an admin can block group members."
-msgstr ""
+msgstr "Pouze admin může blokovat členy skupiny."
+
+#: actions/groupblock.php:95
+msgid "User is already blocked from group."
+msgstr "Uživatel již je zablokován ze skupiny."
+
+#: actions/groupblock.php:100
+msgid "User is not a member of group."
+msgstr "Uživatel není členem skupiny."
+
+#: actions/groupblock.php:134 actions/groupmembers.php:364
+msgid "Block user from group"
+msgstr "Zablokovat uživatele ze skupiny"
 
 #: actions/groupblock.php:160
 #, php-format
@@ -1153,64 +1787,134 @@ msgid ""
 "will be removed from the group, unable to post, and unable to subscribe to "
 "the group in the future."
 msgstr ""
+"Jste si jisti, že chcete blokovat uživatele \"%1$s\" ze skupiny \"%2$S\"? "
+"Bude odstraněn ze skupiny a nebude moci přispívat nebo se přihlásit k odběru."
+
+#. TRANS: Submit button title for 'No' when blocking a user from a group.
+#: actions/groupblock.php:182
+msgid "Do not block this user from this group"
+msgstr "Neblokujte tohoto uživatele z této skupiny"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user from a group.
 #: actions/groupblock.php:189
 msgid "Block this user from this group"
-msgstr "Zablokovat tohoto uživatele"
+msgstr "Blokovat tohoto uživatele z této skupiny"
 
 #: actions/groupblock.php:206
 msgid "Database error blocking user from group."
-msgstr ""
+msgstr "Chyba databáze při blokování uživatele ze skupiny."
 
 #: actions/groupbyid.php:74 actions/userbyid.php:70
 msgid "No ID."
-msgstr "Žádné Jabber ID."
+msgstr "Chybí ID."
 
 #: actions/groupdesignsettings.php:68
 msgid "You must be logged in to edit a group."
-msgstr ""
+msgstr "K úpravě skupiny musíte být přihlášen."
+
+#: actions/groupdesignsettings.php:144
+msgid "Group design"
+msgstr "Vzhled skupiny"
 
 #: actions/groupdesignsettings.php:155
 msgid ""
 "Customize the way your group looks with a background image and a colour "
 "palette of your choice."
 msgstr ""
+"Přizpůsobit vzhled skupiny obrázkem na pozadí a barevnou paletou vašeho "
+"výběru."
+
+#: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186
+#: lib/designsettings.php:391 lib/designsettings.php:413
+msgid "Couldn't update your design."
+msgstr "Nelze uložit vzhled."
+
+#: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231
+msgid "Design preferences saved."
+msgstr "Nastavení vzhledu uloženo."
 
 #: actions/grouplogo.php:142 actions/grouplogo.php:195
 msgid "Group logo"
 msgstr "Logo skupiny"
 
+#: actions/grouplogo.php:153
+#, php-format
+msgid ""
+"You can upload a logo image for your group. The maximum file size is %s."
+msgstr ""
+"Můžete nahrát obrázek loga pro vaši skupinu. Maximální velikost souboru je %"
+"s."
+
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
-msgstr ""
+msgstr "Vyberte čtvercovou oblast obrázku, která bude vaše logo."
+
+#: actions/grouplogo.php:399
+msgid "Logo updated."
+msgstr "Logo aktualizováno."
+
+#: actions/grouplogo.php:401
+msgid "Failed updating logo."
+msgstr "Nepodařilo se aktualizovat logo."
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
+#, php-format
+msgid "%s group members"
+msgstr "členové skupiny %s"
+
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
-msgstr ""
+msgstr "členové skupiny %1$s, strana %2$d"
+
+#: actions/groupmembers.php:122
+msgid "A list of the users in this group."
+msgstr "Seznam uživatelů v této skupině."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
+msgstr "Admin"
+
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
+msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
-msgstr ""
+msgstr "Uďelat uživatele adminem skupiny"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
+#. TRANS: Message is used as link title. %s is a user nickname.
+#. TRANS: Title in atom group notice feed. %s is a group name.
+#. TRANS: Title in atom user notice feed. %s is a user name.
+#: actions/grouprss.php:139 actions/userrss.php:94
+#: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69
+#, php-format
+msgid "%s timeline"
+msgstr "časová osa %s"
+
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #: actions/grouprss.php:142
 #, php-format
 msgid "Updates from members of %1$s on %2$s!"
-msgstr ""
+msgstr "Novinky od členů %1$s na %2$s!"
 
 #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249
 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
@@ -1220,7 +1924,7 @@ msgstr "Skupiny"
 #: actions/groups.php:64
 #, php-format
 msgid "Groups, page %d"
-msgstr ""
+msgstr "Skupiny, strana %d"
 
 #: actions/groups.php:90
 #, php-format
@@ -1231,15 +1935,33 @@ msgid ""
 "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup"
 "%%%%)"
 msgstr ""
+"skupiny na %%%%Site.name%%%% vám umožní najít a mluvit s lidmi podobných "
+"zájmů. Po připojení skupiny můžete posílat zprávy všem ostatním členům "
+"pomocí syntaxe \"!NazevSkupiny\". Nevidíte skupinu která by se vám líbila? "
+"Zkuste ji [vyhledat](%%%%action.groupsearch%%%%) nebo [založit!](%%%%action."
+"newgroup%%%%)"
 
 #: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
 msgid "Create a new group"
+msgstr "Vytvořit novou skupinu"
+
+#: actions/groupsearch.php:52
+#, 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 ""
+"Hledejte skupiny na %%site.name%% podle jejich názvu, místa, nebo popisu. "
+"Oddělte slova mezerami;  musí být nejméně 3 znaky dlouhá."
+
+#: actions/groupsearch.php:58
+msgid "Group search"
+msgstr "Hledání skupin"
 
 #: actions/groupsearch.php:79 actions/noticesearch.php:117
 #: actions/peoplesearch.php:83
 msgid "No results."
-msgstr ""
+msgstr "Žádné výsledky."
 
 #: actions/groupsearch.php:82
 #, php-format
@@ -1247,6 +1969,8 @@ msgid ""
 "If you can't find the group you're looking for, you can [create it](%%action."
 "newgroup%%) yourself."
 msgstr ""
+"Pokud nemůžete najít skupinu, kterou hledáte, můžete ji [vytvořit](%%action."
+"newgroup%%) sami."
 
 #: actions/groupsearch.php:85
 #, php-format
@@ -1254,19 +1978,25 @@ msgid ""
 "Why not [register an account](%%action.register%%) and [create the group](%%"
 "action.newgroup%%) yourself!"
 msgstr ""
+"Proč si ne[zaregistrovat účet](%% action.register%%) a ne[vytvořit skupinu](%"
+"%action.newgroup%%) sami!"
 
 #: actions/groupunblock.php:91
 msgid "Only an admin can unblock group members."
-msgstr ""
+msgstr "Pouze admin může odblokovat členy skupiny."
 
 #: actions/groupunblock.php:95
 msgid "User is not blocked from group."
-msgstr ""
+msgstr "Uživatel není blokován ze skupiny."
+
+#: actions/groupunblock.php:128 actions/unblock.php:86
+msgid "Error removing the block."
+msgstr "Chyba při odstraňování bloku."
 
 #. TRANS: Title for instance messaging settings.
 #: actions/imsettings.php:60
 msgid "IM settings"
-msgstr "Nastavené Profilu"
+msgstr "Nastavení IM"
 
 #. TRANS: Instant messaging settings page instructions.
 #. TRANS: [instant messages] is link text, "(%%doc.im%%)" is the link.
@@ -1277,17 +2007,23 @@ msgid ""
 "You can send and receive notices through Jabber/GTalk [instant messages](%%"
 "doc.im%%). Configure your address and settings below."
 msgstr ""
-"Můžete odesílat nebo přijámat sdělení pomocí Jabber/GTalk [zpráv](%%doc.im%"
-"%).Zadejte svou adresu níže."
+"Můžete odesílat nebo přijámat oznámení pomocí Jabber/GTalk [zpráv](%%doc.im%"
+"%) .Zadejte svou adresu a nastavení níže."
 
 #. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
 #: actions/imsettings.php:94
 msgid "IM is not available."
-msgstr ""
+msgstr "IM není k dispozici."
+
+#. TRANS: Form legend for IM settings form.
+#. TRANS: Field label for IM address input in IM settings form.
+#: actions/imsettings.php:106 actions/imsettings.php:136
+msgid "IM address"
+msgstr "IM adresa"
 
 #: actions/imsettings.php:113
 msgid "Current confirmed Jabber/GTalk address."
-msgstr "Potvrzené Jabber/GTalk adresy"
+msgstr "Aktuální potvrzená Jabber / GTalk adresa."
 
 #. TRANS: Form note in IM settings form.
 #. TRANS: %s is the IM address set for the site.
@@ -1297,163 +2033,215 @@ 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 ""
-"Čakám na potvrzení této adresy. Zkontrolujte zprávy na vašem Jabber/GTalk "
-"účtu. (Přidal jste si %s do vašich kontaktů?)"
+"Čakám na potvrzení této adresy. Hledejte zprávu s dalšími instrukcemi na "
+"vašem Jabber/GTalk účtu. (Přidal jste si %s do vašich kontaktů?)"
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, 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 ""
-"Jabber nebo GTalk adresy, například \"jmeno@example.org\". Neprve se "
-"ujistěte že jste přidal %s do vašeho seznamu kontaktů."
+"Jabber nebo GTalk adresa, například \"jmeno@example.org\". Neprve se "
+"ujistěte že jste přidal %s do vašeho seznamu kontaktů ve vašem IM klientu "
+"nebo na GTalku."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
-msgstr "Nastavení uloženo"
+msgstr "Nastavení IM"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Zasílat oznámení pomocí Jabber/GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Poslat oznámení, když se změní můj Jabber/Gtalk status."
 
+#. TRANS: Checkbox label in IM preferences form.
+#: actions/imsettings.php:175
+msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
+msgstr ""
+"Pošlete mi odpovědi přes Jabber / GTalk od lidí, ke kterým nejsem přihlášen."
+
+#. TRANS: Checkbox label in IM preferences form.
+#: actions/imsettings.php:182
+msgid "Publish a MicroID for my Jabber/GTalk address."
+msgstr "Publikovat MicroID pro mou Jabber / GTalk adresu."
+
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Nastavení uloženo"
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
-msgstr "Žádné Jabber ID."
+msgstr "Chybí Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
-msgstr "Nelze normalizovat JabberID"
+msgstr "Nelze normalizovat tento JabberID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Není platným Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
-msgstr "Toto je již vaše Jabber"
+msgstr "Toto je již vaše Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID již patří jinému uživateli"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
 "s for sending messages to you."
 msgstr ""
-"Ověřující kód byl poslán na vloženou IM adresu. Musíte prokázat %s pro "
-"posílání zpráv."
+"Ověřující kód byl poslán na vloženou IM adresu. Musíte povolit aby vám %s "
+"posílal zprávy."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Toto je špatná IM adresa"
 
+#. TRANS: Server error thrown on database error canceling IM address confirmation.
+#: actions/imsettings.php:400
+msgid "Couldn't delete IM confirmation."
+msgstr "Nelze smazat potvrzení IM"
+
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
-msgstr "Žádný potvrzující kód."
+msgstr "IM potvrzení zrušeno."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
-msgstr "Toto není váš Jabber"
+msgstr "Toto není váš Jabber ID"
+
+#. TRANS: Message given after successfully removing a registered IM address.
+#: actions/imsettings.php:450
+msgid "The IM address was removed."
+msgstr "IM adresa byla odstraněna."
 
 #: actions/inbox.php:59
 #, php-format
 msgid "Inbox for %1$s - page %2$d"
-msgstr ""
+msgstr "Pošta doručená pro %1$s - strana %2$d"
 
 #: actions/inbox.php:62
 #, php-format
 msgid "Inbox for %s"
-msgstr ""
+msgstr "Doručená pošta pro %s"
 
 #: actions/inbox.php:115
 msgid "This is your inbox, which lists your incoming private messages."
-msgstr ""
+msgstr "To je váš inbox, obsahuje seznam příchozích soukromých zpráv."
 
 #: actions/invite.php:39
 msgid "Invites have been disabled."
-msgstr ""
+msgstr "Pozvánky byly zakázány."
 
 #: actions/invite.php:41
 #, php-format
 msgid "You must be logged in to invite other users to use %s."
-msgstr ""
+msgstr "Musíte být přihlášen aby jste mohl zvát další uživatele k použití %s."
+
+#: actions/invite.php:72
+#, php-format
+msgid "Invalid email address: %s"
+msgstr "Neplatný e-mail: %s"
 
 #: actions/invite.php:110
 msgid "Invitation(s) sent"
-msgstr ""
+msgstr "Pozvánka(y) zaslána(y)"
 
 #: actions/invite.php:112
 msgid "Invite new users"
-msgstr ""
+msgstr "Pozvat nové uživatele"
+
+#: actions/invite.php:128
+msgid "You are already subscribed to these users:"
+msgstr "Jste již přihlášeni k těmto uživatelům:"
 
 #. TRANS: Whois output.
 #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL.
 #: actions/invite.php:131 actions/invite.php:139 lib/command.php:430
 #, php-format
 msgid "%1$s (%2$s)"
-msgstr ""
+msgstr "%1$s (%2$s)"
 
 #: actions/invite.php:136
 msgid ""
 "These people are already users and you were automatically subscribed to them:"
-msgstr ""
+msgstr "Tito lidé jsou již uživatelé a jste k nim automaticky přihlášen:"
 
 #: actions/invite.php:144
 msgid "Invitation(s) sent to the following people:"
-msgstr ""
+msgstr "Pozvánka (y) zaslány následujícím osobám:"
 
 #: actions/invite.php:150
 msgid ""
 "You will be notified when your invitees accept the invitation and register "
 "on the site. Thanks for growing the community!"
 msgstr ""
+"Budete upozorněni, když vaši pozvaní lidé pozvání přijmout a zaregistrují se "
+"na tomto webu. Díky za zvetšení komunity!"
 
 #: actions/invite.php:162
 msgid ""
 "Use this form to invite your friends and colleagues to use this service."
 msgstr ""
+"Použijte tento formulář k pozvání svých přátel a kolegů k používání této "
+"služby."
+
+#: actions/invite.php:187
+msgid "Email addresses"
+msgstr "E-mailové adresy"
 
 #: actions/invite.php:189
 msgid "Addresses of friends to invite (one per line)"
-msgstr ""
+msgstr "Adresy přátel k pozvání (jedna na řádek)"
+
+#: actions/invite.php:192
+msgid "Personal message"
+msgstr "Osobní zpráva"
 
 #: actions/invite.php:194
 msgid "Optionally add a personal message to the invitation."
-msgstr ""
+msgstr "Volitelně přidat osobní zprávu."
 
 #. TRANS: Send button for inviting friends
 #: actions/invite.php:198
 msgctxt "BUTTON"
 msgid "Send"
-msgstr ""
+msgstr "Odeslat"
+
+#. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
+#: actions/invite.php:228
+#, php-format
+msgid "%1$s has invited you to join them on %2$s"
+msgstr "%1$s vás pozval, abyste se k nim připojil(a) na %2$s"
 
 #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:231
@@ -1486,19 +2274,58 @@ msgid ""
 "\n"
 "Sincerely, %2$s\n"
 msgstr ""
+" %1$s vás pozval, abyste se k nim připojil(a) na %2$s (%3$s). \n"
+"\n"
+"%2$s je mikro-blogovací služba, která vám umožní být v kontaktu s lidmi, "
+"které znáte, a s lidmi, kteří vás zajímají. \n"
+"\n"
+"Můžete také sdílet novinky o sobě, své myšlenky, nebo svůj online život s "
+"lidmi, kteří o vás vědí. Je to také skvělé pro setkávání s novými lidmi, "
+"kteří sdílejí vaše zájmy. \n"
+"\n"
+"%1$s řekl: \n"
+"\n"
+"%4$s \n"
+"\n"
+"Můžete vidět profil uživatele %1$s na %2$s zde: \n"
+"\n"
+"%5$s \n"
+"\n"
+"Pokud si chcete službu vyzkoušet, klikněte na odkaz níže k přijmutí "
+"pozvání. \n"
+"\n"
+"%6$s \n"
+"\n"
+"Pokud ne, můžete tuto zprávu ignorovat. Děkujeme za vaši trpělivost a čas. \n"
+"\n"
+"S pozdravem, %2$s \n"
 
 #: actions/joingroup.php:60
 msgid "You must be logged in to join a group."
-msgstr ""
+msgstr "Musíte být přihlášen pro vstup do skupiny."
+
+#: actions/joingroup.php:88 actions/leavegroup.php:88
+msgid "No nickname or ID."
+msgstr "Žádná přezdívka nebo ID."
 
 #: actions/joingroup.php:141
 #, php-format
 msgid "%1$s joined group %2$s"
-msgstr ""
+msgstr "%1$s se připojil(a) ke skupině %2$s"
 
 #: actions/leavegroup.php:60
 msgid "You must be logged in to leave a group."
-msgstr ""
+msgstr "Musíte být přihlášen abyste mohl opustit skupinu."
+
+#. TRANS: Error text shown when trying to leave an existing group the user is not a member of.
+#: actions/leavegroup.php:100 lib/command.php:389
+msgid "You are not a member of that group."
+msgstr "Nejste členem této skupiny."
+
+#: actions/leavegroup.php:137
+#, php-format
+msgid "%1$s left group %2$s"
+msgstr "%1$s opustil(a) skupinu %2$s"
 
 #: actions/login.php:102 actions/otp.php:62 actions/register.php:144
 msgid "Already logged in."
@@ -1508,13 +2335,17 @@ msgstr "Již přihlášen"
 msgid "Incorrect username or password."
 msgstr "Neplatné jméno nebo heslo"
 
+#: actions/login.php:154 actions/otp.php:120
+msgid "Error setting user. You are probably not authorized."
+msgstr "Chyba při nastavení uživatele. Pravděpodobně nejste autorizován."
+
 #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79
 msgid "Login"
 msgstr "Přihlásit"
 
 #: actions/login.php:249
 msgid "Login to site"
-msgstr ""
+msgstr "Přihlásit se na stránky"
 
 #: actions/login.php:258 actions/register.php:485
 msgid "Remember me"
@@ -1522,7 +2353,8 @@ msgstr "Zapamatuj si mě"
 
 #: actions/login.php:259 actions/register.php:487
 msgid "Automatically login in the future; not for shared computers!"
-msgstr "Příště automaticky přihlásit; ne pro počítače, které používá "
+msgstr ""
+"Příště automaticky přihlásit; ne pro počítače, které používá více lidí! "
 
 #: actions/login.php:269
 msgid "Lost or forgotten password?"
@@ -1532,52 +2364,63 @@ msgstr "Ztracené nebo zapomenuté heslo?"
 msgid ""
 "For security reasons, please re-enter your user name and password before "
 "changing your settings."
-msgstr "Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo."
+msgstr ""
+"Z bezpečnostních důvodů, prosím zadejte znovu své jméno a heslo než budete "
+"měnit svá nastavení."
+
+#: actions/login.php:292
+msgid "Login with your username and password."
+msgstr "Přihlásit se pomocí svého uživatelského jména a hesla."
 
 #: actions/login.php:295
 #, php-format
 msgid ""
 "Don't have a username yet? [Register](%%action.register%%) a new account."
 msgstr ""
+"Zatím nemáte uživatelské jméno? [Registrovat](%%action.register%%) nový účet."
 
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
-msgstr ""
+msgstr "Pouze admin může udělat adminem dalšího uživatele."
 
 #: actions/makeadmin.php:96
 #, php-format
 msgid "%1$s is already an admin for group \"%2$s\"."
-msgstr ""
+msgstr "%1$s je již admin pro skupinu \"%2$S\"."
 
 #: actions/makeadmin.php:133
 #, php-format
 msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
+msgstr "Nelze získat záznam o členství %1$s ve skupině %2$s."
 
 #: actions/makeadmin.php:146
 #, php-format
 msgid "Can't make %1$s an admin for group %2$s."
-msgstr ""
+msgstr "Nelze učinit %1$s adminem skupiny %2$s."
 
 #: actions/microsummary.php:69
 msgid "No current status."
-msgstr ""
+msgstr "V současné době žádný stav."
 
 #: actions/newapplication.php:52
 msgid "New Application"
-msgstr ""
+msgstr "Nová aplikace"
+
+#: actions/newapplication.php:64
+msgid "You must be logged in to register an application."
+msgstr "Musíte být přihlášen k registraci aplikace."
 
 #: actions/newapplication.php:143
 msgid "Use this form to register a new application."
-msgstr ""
+msgstr "Použijte tento formulář pro registraci nové aplikace."
 
 #: actions/newapplication.php:176
 msgid "Source URL is required."
-msgstr ""
+msgstr "Zdrojové URL je nutné."
 
 #: actions/newapplication.php:258 actions/newapplication.php:267
 msgid "Could not create application."
-msgstr "Nelze smazat potvrzení emailu"
+msgstr "Nelze vytvořit aplikaci."
 
 #: actions/newgroup.php:53
 msgid "New group"
@@ -1585,57 +2428,75 @@ msgstr "Nová skupina"
 
 #: actions/newgroup.php:110
 msgid "Use this form to create a new group."
+msgstr "Použijte tento formulář k vytvoření nové skupiny."
+
+#: actions/newmessage.php:71 actions/newmessage.php:231
+msgid "New message"
+msgstr "Nová zpráva"
+
+#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other).
+#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:502
+msgid "You can't send a message to this user."
 msgstr ""
+"Nemůžete odesílat zprávy tomuto uživateli. (musíte být vzájemně prihlášení)"
 
 #. TRANS: Command exception text shown when trying to send a direct message to another user without content.
 #. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply.
 #: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481
 #: lib/command.php:582
 msgid "No content!"
-msgstr "Žádný obsah!"
+msgstr "Chybí obsah!"
 
 #: actions/newmessage.php:158
 msgid "No recipient specified."
-msgstr ""
+msgstr "Neuveden příjemce."
 
 #. TRANS: Error text shown when trying to send a direct message to self.
 #: actions/newmessage.php:164 lib/command.php:506
 msgid ""
 "Don't send a message to yourself; just say it to yourself quietly instead."
-msgstr ""
+msgstr "Neposílejte si zprávu, potichu si ji pro sebe řekněte."
+
+#: actions/newmessage.php:181
+msgid "Message sent"
+msgstr "Zpráva odeslána"
 
 #. TRANS: Message given have sent a direct message to another user.
 #. TRANS: %s is the name of the other user.
 #: actions/newmessage.php:185 lib/command.php:514
 #, php-format
 msgid "Direct message to %s sent."
-msgstr ""
+msgstr "Přímá zpráva pro %s odeslána."
 
 #: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189
 msgid "Ajax Error"
-msgstr ""
+msgstr "Ajax Chyba"
 
 #: actions/newnotice.php:69
 msgid "New notice"
 msgstr "Nové sdělení"
 
+#: actions/newnotice.php:227
+msgid "Notice posted"
+msgstr "Sdělení posláno"
+
 #: 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 ""
-"Hledej sdělení na %%site.name%% podle obsahu. Minimální délka musí být "
-"alespoň 3 znaky"
+"Hledej sdělení na %%site.name%% podle obsahu. Oddělte výrazy mezerami; musí "
+"mít alespoň 3 znaky"
 
 #: actions/noticesearch.php:78
 msgid "Text search"
-msgstr "Vyhledávání textu"
+msgstr "Text vyhledávání"
 
 #: actions/noticesearch.php:91
 #, php-format
 msgid "Search results for \"%1$s\" on %2$s"
-msgstr ""
+msgstr "Výsledky hledání \"%1$s\" na %2$s"
 
 #: actions/noticesearch.php:121
 #, php-format
@@ -1643,6 +2504,8 @@ msgid ""
 "Be the first to [post on this topic](%%%%action.newnotice%%%%?"
 "status_textarea=%s)!"
 msgstr ""
+"Buďte první kdo [příspěje](%%%%action.newnotice%%%%?status_textarea=%s) na "
+"toto téma!"
 
 #: actions/noticesearch.php:124
 #, php-format
@@ -1650,58 +2513,75 @@ msgid ""
 "Why not [register an account](%%%%action.register%%%%) and be the first to "
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
+"Proč si ne [zaregistrovat účet](%%%%action.register%%%%) a být první, kdo "
+"[příspěje](%%%%action.newnotice %%%%?status_textarea =%s) na toto téma!"
 
 #: actions/noticesearchrss.php:96
 #, php-format
 msgid "Updates with \"%s\""
-msgstr ""
+msgstr "Hlášky s \"%s\""
 
 #: actions/noticesearchrss.php:98
 #, php-format
 msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr ""
+msgstr "Aktualizace odpovídající hledanému výrazu \"%1$s\" na %2$s!"
 
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
+"Tento uživatel neumožňuje pošťouchnutí nebo nepotvrdil(a) nebo nenestavil(a) "
+"svůj e-mail."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
-msgstr ""
+msgstr "Pošťouchnutí posláno"
 
 #: actions/nudge.php:97
 msgid "Nudge sent!"
-msgstr ""
+msgstr "Pošťouchnutí posláno!"
 
 #: actions/oauthappssettings.php:59
 msgid "You must be logged in to list your applications."
-msgstr ""
+msgstr "Musíte být přihlášen k vypsání seznamu aplikací."
 
 #: actions/oauthappssettings.php:74
 msgid "OAuth applications"
-msgstr ""
+msgstr "OAuth aplikace"
 
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
-msgstr ""
+msgstr "Aplikace které jste zaregistrovali"
+
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr "Ještě jste nezaregistrovali žádné aplikace."
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr "Propojené aplikace"
 
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
-msgstr ""
+msgstr "Těmto aplikacím jste povolili přístup ke svému ůčtu."
+
+#: actions/oauthconnectionssettings.php:175
+msgid "You are not a user of that application."
+msgstr "Nejste uživatel této aplikace."
 
 #: actions/oauthconnectionssettings.php:186
 #, php-format
 msgid "Unable to revoke access for app: %s."
-msgstr ""
+msgstr "Nelze zrušit přístup aplikace %s."
 
 #: actions/oauthconnectionssettings.php:198
 msgid "You have not authorized any applications to use your account."
-msgstr ""
+msgstr "Žádným aplikacím jste nepovolili používat váš účet."
 
 #: actions/oauthconnectionssettings.php:211
 msgid "Developers can edit the registration settings for their applications "
-msgstr ""
+msgstr "Vývojáři mohou upravovat nastavení registrace jejich aplikací "
 
 #: actions/oembed.php:80 actions/shownotice.php:100
 msgid "Notice has no profile."
@@ -1710,70 +2590,114 @@ msgstr "Uživatel nemá profil."
 #: actions/oembed.php:87 actions/shownotice.php:175
 #, php-format
 msgid "%1$s's status on %2$s"
-msgstr "%1 statusů na %2"
+msgstr "status %1 na %2"
 
 #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
 #: actions/oembed.php:159
 #, php-format
 msgid "Content type %s not supported."
-msgstr ""
+msgstr "Typ obsahu %s není podporován."
 
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
 msgid "Only %s URLs over plain HTTP please."
-msgstr ""
+msgstr "Only %s URLs over plain HTTP please."
+
+#. TRANS: Client error on an API request with an unsupported data format.
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
+msgid "Not a supported data format."
+msgstr "Nepodporovaný formát dat."
+
+#: actions/opensearch.php:64
+msgid "People Search"
+msgstr "Hledání lidí"
+
+#: actions/opensearch.php:67
+msgid "Notice Search"
+msgstr "Hledání oznámení"
 
 #: actions/othersettings.php:60
 msgid "Other settings"
-msgstr "Nastavené Profilu"
+msgstr "Další nastavení"
 
 #: actions/othersettings.php:71
 msgid "Manage various other options."
-msgstr ""
+msgstr "Správa různých dalších možností."
 
 #: actions/othersettings.php:108
 msgid " (free service)"
-msgstr ""
+msgstr " (Služba zdarma)"
 
 #: actions/othersettings.php:116
 msgid "Shorten URLs with"
-msgstr ""
+msgstr "Zkrácovat URL s"
 
 #: actions/othersettings.php:117
 msgid "Automatic shortening service to use."
-msgstr ""
+msgstr "Služba automatického zkracování, kterou použít."
+
+#: actions/othersettings.php:122
+msgid "View profile designs"
+msgstr "Zobrazit vzhledy profilu"
 
 #: actions/othersettings.php:123
 msgid "Show or hide profile designs."
-msgstr ""
+msgstr "Zobrazit nebo skrýt vzhledy profilu."
+
+#: actions/othersettings.php:153
+msgid "URL shortening service is too long (max 50 chars)."
+msgstr "adresa služby zkracování URL je příliš dlouhá (max. 50 znaků)."
 
 #: actions/otp.php:69
 msgid "No user ID specified."
-msgstr ""
+msgstr "Nebylo zadáno uživatelské ID."
+
+#: actions/otp.php:83
+msgid "No login token specified."
+msgstr "Přihlašovací token nezadán."
 
 #: actions/otp.php:90
 msgid "No login token requested."
-msgstr "Žádné potvrení!"
+msgstr "Nepožadován přihlašovací token."
+
+#: actions/otp.php:95
+msgid "Invalid login token specified."
+msgstr "Neplatný přihlašovací token."
+
+#: actions/otp.php:104
+msgid "Login token expired."
+msgstr "Přihlašovací token vypršel."
 
 #: actions/outbox.php:58
 #, php-format
 msgid "Outbox for %1$s - page %2$d"
-msgstr ""
+msgstr "Odeslaná pošta uživatele %1$s - strana %2$d"
 
 #: actions/outbox.php:61
 #, php-format
 msgid "Outbox for %s"
-msgstr ""
+msgstr "Odeslané uživatele %s"
 
 #: actions/outbox.php:116
 msgid "This is your outbox, which lists private messages you have sent."
 msgstr ""
+"Toto je váš outbox, který obsahuje seznam soukromých zpráv které jste "
+"odeslali."
 
 #: actions/passwordsettings.php:58
 msgid "Change password"
 msgstr "Změnit heslo"
 
+#: actions/passwordsettings.php:69
+msgid "Change your password."
+msgstr "Změňte své heslo."
+
+#: actions/passwordsettings.php:96 actions/recoverpassword.php:231
+msgid "Password change"
+msgstr "Změna hesla"
+
 #: actions/passwordsettings.php:104
 msgid "Old password"
 msgstr "Staré heslo"
@@ -1789,7 +2713,7 @@ msgstr "6 a více znaků"
 #: actions/passwordsettings.php:112 actions/recoverpassword.php:239
 #: actions/register.php:440
 msgid "Confirm"
-msgstr "Heslo znovu"
+msgstr "Potvrdit"
 
 #: actions/passwordsettings.php:113 actions/recoverpassword.php:240
 msgid "Same as password above"
@@ -1799,17 +2723,21 @@ msgstr "Stejné jako heslo výše"
 msgid "Change"
 msgstr "Změnit"
 
+#: actions/passwordsettings.php:154 actions/register.php:237
+msgid "Password must be 6 or more characters."
+msgstr "Heslo musí být alespoň 6 znaků dlouhé"
+
 #: actions/passwordsettings.php:157 actions/register.php:240
 msgid "Passwords don't match."
 msgstr "Hesla nesouhlasí"
 
 #: actions/passwordsettings.php:165
 msgid "Incorrect old password"
-msgstr "Neplatné heslo"
+msgstr "Nesprávné staré heslo"
 
 #: actions/passwordsettings.php:181
 msgid "Error saving user; invalid."
-msgstr "Chyba při ukládaní uživatele; neplatný"
+msgstr "Chyba při ukládaní uživatele; neplatný."
 
 #: actions/passwordsettings.php:186 actions/recoverpassword.php:381
 msgid "Can't save new password."
@@ -1820,104 +2748,157 @@ msgid "Password saved."
 msgstr "Heslo uloženo"
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
-msgstr ""
+msgstr "Cesty"
 
 #: actions/pathsadminpanel.php:70
 msgid "Path and server settings for this StatusNet site."
-msgstr ""
+msgstr "Nastavení cest a serveru pro tuto stránku StatusNet."
 
 #: actions/pathsadminpanel.php:157
 #, php-format
 msgid "Theme directory not readable: %s."
-msgstr ""
+msgstr "Adresář témat není čitelný: %s."
+
+#: actions/pathsadminpanel.php:163
+#, php-format
+msgid "Avatar directory not writable: %s."
+msgstr "Nelze zapisovat do adresáře avatarů: %s."
 
 #: actions/pathsadminpanel.php:169
 #, php-format
 msgid "Background directory not writable: %s."
-msgstr ""
+msgstr "Nelze zapisovat do adresáře pozadí: %s."
 
 #: actions/pathsadminpanel.php:177
 #, php-format
 msgid "Locales directory not readable: %s."
-msgstr ""
+msgstr "Locales adresář není čitelný: %s."
 
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
-msgstr ""
+msgstr "Neplatný SSL server. Maximální délka je 255 znaků."
 
 #: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58
 msgid "Site"
-msgstr ""
+msgstr "Stránky"
+
+#: actions/pathsadminpanel.php:238
+msgid "Server"
+msgstr "Server"
 
 #: actions/pathsadminpanel.php:238
 msgid "Site's server hostname."
-msgstr ""
+msgstr "Hostname (jméno) serveru stránek."
 
 #: actions/pathsadminpanel.php:242
 msgid "Path"
-msgstr ""
+msgstr "Cesta"
+
+#: actions/pathsadminpanel.php:242
+msgid "Site path"
+msgstr "Cesta ke stránkám (za jménem serveru)"
 
 #: actions/pathsadminpanel.php:246
 msgid "Path to locales"
-msgstr ""
+msgstr "Cesta k locales"
 
 #: actions/pathsadminpanel.php:246
 msgid "Directory path to locales"
-msgstr ""
+msgstr "Cesta k adresáři locales"
 
 #: actions/pathsadminpanel.php:250
 msgid "Fancy URLs"
-msgstr ""
+msgstr "Hezké URL"
 
 #: actions/pathsadminpanel.php:252
 msgid "Use fancy (more readable and memorable) URLs?"
-msgstr ""
+msgstr "Použijte Fancy (více čitelné a zapamatovatelné) URL?"
 
 #: actions/pathsadminpanel.php:259
 msgid "Theme"
-msgstr ""
+msgstr "Téma"
 
 #: actions/pathsadminpanel.php:264
 msgid "Theme server"
-msgstr ""
+msgstr "server s tématy"
 
 #: actions/pathsadminpanel.php:268
 msgid "Theme path"
-msgstr ""
+msgstr "cesta k tématu"
+
+#: actions/pathsadminpanel.php:272
+msgid "Theme directory"
+msgstr "adresář tématu"
+
+#: actions/pathsadminpanel.php:279
+msgid "Avatars"
+msgstr "Avatary"
 
 #: actions/pathsadminpanel.php:284
 msgid "Avatar server"
-msgstr "Avatar smazán."
+msgstr "Server s avatary"
+
+#: actions/pathsadminpanel.php:288
+msgid "Avatar path"
+msgstr "Cesta k avatarům"
 
 #: actions/pathsadminpanel.php:292
 msgid "Avatar directory"
-msgstr "Avatar smazán."
+msgstr "Adresář avatarů"
+
+#: actions/pathsadminpanel.php:301
+msgid "Backgrounds"
+msgstr "Pozadí"
+
+#: actions/pathsadminpanel.php:305
+msgid "Background server"
+msgstr "Server s pozadím"
+
+#: actions/pathsadminpanel.php:309
+msgid "Background path"
+msgstr "Cesta k pozadí"
+
+#: actions/pathsadminpanel.php:313
+msgid "Background directory"
+msgstr "Adresář pozadí"
 
 #: actions/pathsadminpanel.php:320
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
+
+#: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202
+msgid "Never"
+msgstr "Nikdy"
+
+#: actions/pathsadminpanel.php:324
+msgid "Sometimes"
+msgstr "Někdy"
 
 #: actions/pathsadminpanel.php:325
 msgid "Always"
-msgstr ""
+msgstr "Vždy"
 
 #: actions/pathsadminpanel.php:329
 msgid "Use SSL"
-msgstr ""
+msgstr "Použít SSL"
 
 #: actions/pathsadminpanel.php:330
 msgid "When to use SSL"
-msgstr ""
+msgstr "Kdy použít SSL"
+
+#: actions/pathsadminpanel.php:335
+msgid "SSL server"
+msgstr "SSL server"
 
 #: actions/pathsadminpanel.php:336
 msgid "Server to direct SSL requests to"
-msgstr ""
+msgstr "Server kam směrovat SSL žádosti"
 
 #: actions/pathsadminpanel.php:352
 msgid "Save paths"
-msgstr ""
+msgstr "Uložit cesty"
 
 #: actions/peoplesearch.php:52
 #, php-format
@@ -1932,10 +2913,15 @@ msgstr ""
 msgid "People search"
 msgstr "Hledání lidí"
 
+#: actions/peopletag.php:68
+#, php-format
+msgid "Not a valid people tag: %s."
+msgstr "Není platný člověkotag: %s."
+
 #: actions/peopletag.php:142
 #, php-format
 msgid "Users self-tagged with %1$s - page %2$d"
-msgstr ""
+msgstr "Uživatelé kteří se sami otagovali %1$s - strana %2$d"
 
 #: actions/postnotice.php:95
 msgid "Invalid notice content."
@@ -1944,7 +2930,7 @@ msgstr "Neplatná velikost"
 #: actions/postnotice.php:101
 #, php-format
 msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’."
-msgstr ""
+msgstr "Licence hlášky ‘%1$s’ není kompatibilní s licencí webu ‘%2$s’."
 
 #: actions/profilesettings.php:60
 msgid "Profile settings"
@@ -1973,7 +2959,7 @@ msgstr "Celé jméno"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Moje stránky"
 
@@ -2007,18 +2993,18 @@ msgstr "Místo. Město, stát."
 
 #: actions/profilesettings.php:138
 msgid "Share my current location when posting notices"
-msgstr ""
+msgstr "Sdělit mou aktuální polohu při posílání hlášek"
 
 #: actions/profilesettings.php:145 actions/tagother.php:149
 #: actions/tagother.php:209 lib/subscriptionlist.php:106
 #: lib/subscriptionlist.php:108 lib/userprofile.php:210
 msgid "Tags"
-msgstr ""
+msgstr "Tagy"
 
 #: actions/profilesettings.php:147
 msgid ""
 "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated"
-msgstr ""
+msgstr "Otagujte se (písmena, čísla, -, . a _), oddělené čárkami nebo mezerami"
 
 #: actions/profilesettings.php:151
 msgid "Language"
@@ -2026,20 +3012,22 @@ msgstr "Jazyk"
 
 #: actions/profilesettings.php:152
 msgid "Preferred language"
-msgstr ""
+msgstr "Preferovaný jazyk"
 
 #: actions/profilesettings.php:161
 msgid "Timezone"
-msgstr ""
+msgstr "Časové pásmo"
 
 #: actions/profilesettings.php:162
 msgid "What timezone are you normally in?"
-msgstr ""
+msgstr "V jaké časové zóně se obyčejně nacházíte?"
 
 #: actions/profilesettings.php:167
 msgid ""
 "Automatically subscribe to whoever subscribes to me (best for non-humans)"
 msgstr ""
+"Automaticky se přihlásit k odběru toho kdo se přihlásil ke mně (nejlepší pro "
+"ne-lidi)"
 
 #: actions/profilesettings.php:228 actions/register.php:230
 #, php-format
@@ -2048,26 +3036,51 @@ msgstr "Umístění příliš dlouhé (maximálně %d znaků)"
 
 #: actions/profilesettings.php:235 actions/siteadminpanel.php:151
 msgid "Timezone not selected."
-msgstr ""
+msgstr "Časové pásmo není vybráno."
+
+#: actions/profilesettings.php:241
+msgid "Language is too long (max 50 chars)."
+msgstr "Jazyk je příliš dlouhý (max. 50 znaků)."
 
 #: actions/profilesettings.php:253 actions/tagother.php:178
 #, php-format
 msgid "Invalid tag: \"%s\""
 msgstr "Neplatná velikost"
 
+#: actions/profilesettings.php:306
+msgid "Couldn't update user for autosubscribe."
+msgstr "Nelze aktualizovat nastavení automatického přihlašování."
+
+#: actions/profilesettings.php:363
+msgid "Couldn't save location prefs."
+msgstr "Nelze uložit nastavení umístění."
+
 #: actions/profilesettings.php:375
 msgid "Couldn't save profile."
 msgstr "Nelze uložit profil"
 
+#: actions/profilesettings.php:383
+msgid "Couldn't save tags."
+msgstr "Nelze uložit tagy."
+
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Nastavení uloženo"
 
 #: actions/public.php:83
 #, php-format
 msgid "Beyond the page limit (%s)."
-msgstr ""
+msgstr "Přes limit stránky (%s)."
+
+#: actions/public.php:92
+msgid "Could not retrieve public stream."
+msgstr "Nepodařilo se získat veřejný proud."
+
+#: actions/public.php:130
+#, php-format
+msgid "Public timeline, page %d"
+msgstr "Veřejná časová osa, strana %d"
 
 #: actions/public.php:132 lib/publicgroupnav.php:79
 msgid "Public timeline"
@@ -2075,15 +3088,15 @@ msgstr "Veřejné zprávy"
 
 #: actions/public.php:160
 msgid "Public Stream Feed (RSS 1.0)"
-msgstr ""
+msgstr "Veřejný Stream Feed (RSS 1.0)"
 
 #: actions/public.php:164
 msgid "Public Stream Feed (RSS 2.0)"
-msgstr ""
+msgstr "Veřejný Stream Feed (RSS 2.0)"
 
 #: actions/public.php:168
 msgid "Public Stream Feed (Atom)"
-msgstr ""
+msgstr "Veřejný Stream Feed (Atom)"
 
 #: actions/public.php:188
 #, php-format
@@ -2091,16 +3104,18 @@ msgid ""
 "This is the public timeline for %%site.name%% but no one has posted anything "
 "yet."
 msgstr ""
+"Tohle je veřejná časová osa %%site.name%%, ale nikdo zatím nic nenapsal."
 
 #: actions/public.php:191
 msgid "Be the first to post!"
-msgstr ""
+msgstr "Pošlete něco jako první!"
 
 #: actions/public.php:195
 #, php-format
 msgid ""
 "Why not [register an account](%%action.register%%) and be the first to post!"
 msgstr ""
+"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!"
 
 #: actions/public.php:242
 #, php-format
@@ -2110,6 +3125,10 @@ msgid ""
 "tool. [Join now](%%action.register%%) to share notices about yourself with "
 "friends, family, and colleagues! ([Read more](%%doc.help%%))"
 msgstr ""
+"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-"
+"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://"
+"status.net/). [Zaregistrujte se](%%action.register%%) a sdílejte hlášky o "
+"sobě s přáteli, rodinou a kolegy! ([Čtěte více](%%doc.help%%))"
 
 #: actions/public.php:247
 #, php-format
@@ -2118,24 +3137,27 @@ msgid ""
 "blogging) service based on the Free Software [StatusNet](http://status.net/) "
 "tool."
 msgstr ""
+"Toto je %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-"
+"faq#mikroblog) služba založená na Free Software nástroji [StatusNet](http://"
+"status.net/)."
 
 #: actions/publictagcloud.php:57
 msgid "Public tag cloud"
-msgstr ""
+msgstr "Veřejný tag cloud"
 
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
-msgstr ""
+msgstr "Poslední nejpopulárnější značky na %s "
 
 #: actions/publictagcloud.php:69
 #, php-format
 msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet."
-msgstr ""
+msgstr "Nikdo ještě neposlal oznámení s [tagem](%%doc.tags%%)."
 
 #: actions/publictagcloud.php:72
 msgid "Be the first to post one!"
-msgstr ""
+msgstr "Pošlete něco jako první!"
 
 #: actions/publictagcloud.php:75
 #, php-format
@@ -2143,6 +3165,11 @@ msgid ""
 "Why not [register an account](%%action.register%%) and be the first to post "
 "one!"
 msgstr ""
+"Proč ne [zaregistrovat účet](%%action.register%%) a poslat něco jako první!"
+
+#: actions/publictagcloud.php:134
+msgid "Tag cloud"
+msgstr "Tag cloud"
 
 #: actions/recoverpassword.php:36
 msgid "You are already logged in!"
@@ -2158,7 +3185,7 @@ msgstr "Není obnovujícím kódem"
 
 #: actions/recoverpassword.php:73
 msgid "Recovery code for unknown user."
-msgstr "Obnovyt kód pro neznámého uživatele"
+msgstr "Obnovovací kód pro neznámého uživatele."
 
 #: actions/recoverpassword.php:86
 msgid "Error with confirmation code."
@@ -2168,12 +3195,32 @@ msgstr "Chyba v ověřovacím kódu"
 msgid "This confirmation code is too old. Please start again."
 msgstr "Tento potvrzující kód je příliš starý Prosím zkuste znovu"
 
+#: actions/recoverpassword.php:111
+msgid "Could not update user with confirmed email address."
+msgstr "Nemohu aktualizovat uživatele s potvrzenou e-mailovou adresu."
+
+#: actions/recoverpassword.php:152
+msgid ""
+"If you have forgotten or lost your password, you can get a new one sent to "
+"the email address you have stored in your account."
+msgstr ""
+"Pokud jste zapomněli nebo ztratili své heslo, můžeme zaslat nové na e-"
+"mailovou adresu, kterou jste uložili ve vašem účtu."
+
 #: actions/recoverpassword.php:158
 msgid "You have been identified. Enter a new password below. "
-msgstr ""
+msgstr "Byl jste identifikován. Vložte níže nové heslo. "
 
-#: actions/recoverpassword.php:193
-msgid "Your nickname on this server, or your registered email address."
+#: actions/recoverpassword.php:188
+msgid "Password recovery"
+msgstr "Obnovení hesla"
+
+#: actions/recoverpassword.php:191
+msgid "Nickname or email address"
+msgstr "Zadej přezdívku nebo emailovou adresu"
+
+#: actions/recoverpassword.php:193
+msgid "Your nickname on this server, or your registered email address."
 msgstr "Vaše přezdívka na tomto servu, nebo váš email zadaný při registraci"
 
 #: actions/recoverpassword.php:199 actions/recoverpassword.php:200
@@ -2186,15 +3233,19 @@ msgstr "Resetovat heslo"
 
 #: actions/recoverpassword.php:209
 msgid "Recover password"
-msgstr "Obnovit"
+msgstr "Obnovit heslo"
 
 #: actions/recoverpassword.php:210 actions/recoverpassword.php:335
 msgid "Password recovery requested"
-msgstr "Žádost o obnovu hesla"
+msgstr "Zažádáno o obnovu hesla"
+
+#: actions/recoverpassword.php:213
+msgid "Unknown action"
+msgstr "Neznámá akce"
 
 #: actions/recoverpassword.php:236
 msgid "6 or more characters, and don't forget it!"
-msgstr "6 a více znaků, a nezapomeňte"
+msgstr "6 a více znaků, a nezapomeňte ho!"
 
 #: actions/recoverpassword.php:243
 msgid "Reset"
@@ -2204,6 +3255,10 @@ msgstr "Reset"
 msgid "Enter a nickname or email address."
 msgstr "Zadej přezdívku nebo emailovou adresu"
 
+#: actions/recoverpassword.php:282
+msgid "No user with that email address or username."
+msgstr "Žádný uživatel s touto e-mailovou adresu nebo uživatelským jménem."
+
 #: actions/recoverpassword.php:299
 msgid "No registered email address for that user."
 msgstr "Žádný registrovaný email pro tohoto uživatele."
@@ -2217,7 +3272,7 @@ msgid ""
 "Instructions for recovering your password have been sent to the email "
 "address registered to your account."
 msgstr ""
-"Návod jak obnovit heslo byl odeslát na vaší emailovou adresu zaregistrovanou "
+"Návod jak obnovit heslo byl odeslán na vaší emailovou adresu zaregistrovanou "
 "u vašeho účtu."
 
 #: actions/recoverpassword.php:357
@@ -2242,7 +3297,11 @@ msgstr "Nové heslo bylo uloženo. Nyní jste přihlášen."
 
 #: actions/register.php:92 actions/register.php:196 actions/register.php:412
 msgid "Sorry, only invited people can register."
-msgstr ""
+msgstr "Litujeme, jen pozvaní se mohou registrovat."
+
+#: actions/register.php:99
+msgid "Sorry, invalid invitation code."
+msgstr "Litujeme, neplatný kód pozvánky."
 
 #: actions/register.php:119
 msgid "Registration successful"
@@ -2254,7 +3313,7 @@ msgstr "Registrovat"
 
 #: actions/register.php:142
 msgid "Registration not allowed."
-msgstr ""
+msgstr "Registrace není povolena."
 
 #: actions/register.php:205
 msgid "You can't register if you don't agree to the license."
@@ -2273,6 +3332,20 @@ msgid ""
 "With this form you can create a new account. You can then post notices and "
 "link up to friends and colleagues. "
 msgstr ""
+"Pomocí tohoto formuláře můžete vytvořit nový účet. Můžete pak posílat "
+"oznámení a propojit se s přáteli a kolegy. "
+
+#: actions/register.php:432
+msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
+msgstr "1-64 znaků nebo čísel, bez teček, čárek a mezer. Nutné."
+
+#: actions/register.php:437
+msgid "6 or more characters. Required."
+msgstr "6 a více znaků. Nutné."
+
+#: actions/register.php:441
+msgid "Same as password above. Required."
+msgstr "Stejné jako heslo uvedeno výše. Povinné."
 
 #. TRANS: Link description in user account settings menu.
 #: actions/register.php:445 actions/register.php:449
@@ -2286,28 +3359,28 @@ msgstr "Použije se pouze pro aktualizace, oznámení a obnovu hesla."
 
 #: actions/register.php:457
 msgid "Longer name, preferably your \"real\" name"
-msgstr ""
+msgstr "Delší jméno, nejlépe vaše \"skutečné\" jméno"
 
 #: actions/register.php:518
 #, php-format
 msgid ""
 "I understand that content and data of %1$s are private and confidential."
-msgstr ""
+msgstr "Chápu, že obsah a data %1$S jsou soukromé a důvěrné."
 
 #: actions/register.php:528
 #, php-format
 msgid "My text and files are copyright by %1$s."
-msgstr ""
+msgstr "Můj text a soubory jsou copyrightovány %1$s."
 
 #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved with ownership left to contributors.
 #: actions/register.php:532
 msgid "My text and files remain under my own copyright."
-msgstr ""
+msgstr "Můj text a soubory zůstanou pod mým vlastním copyrightem."
 
 #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved.
 #: actions/register.php:535
 msgid "All rights reserved."
-msgstr ""
+msgstr "Všechna práva vyhrazena."
 
 #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
 #: actions/register.php:540
@@ -2316,6 +3389,8 @@ msgid ""
 "My text and files are available under %s except this private data: password, "
 "email address, IM address, and phone number."
 msgstr ""
+"Můj text a soubory jsou k dispozici pod %s výjimkou těchto soukromých dat: "
+"heslo, e-mailová adresa, IM adresa a telefonní číslo."
 
 #: actions/register.php:583
 #, php-format
@@ -2335,12 +3410,28 @@ msgid ""
 "\n"
 "Thanks for signing up and we hope you enjoy using this service."
 msgstr ""
+"Gratulujeme, %1$s! A Vítejte v %%%%site.name%%%%. Odtud možná budete "
+"chtít ...\n"
+"\n"
+"* Jít na [profil](%2$s) a poslat první zprávu.\n"
+"* Přidat [Jabber / GTalk adresu](%%%%action.imsetting %%%%) abyste mohli "
+"zasílat oznámení prostřednictvím okamžitých zpráv (IM).\n"
+"* [Hledat lidi](%%%%action.peoplesearch%%%%), které znáte, nebo kteří "
+"sdílejí vaše zájmy.\n"
+"* Aktualizací [nastavení profilu](%%%%action.profilesettings%%%%) o vás více "
+"říci ostatním.\n"
+"* Pročíst si [online nápovědu](%%%%doc.help%%%%) pro objevení funkcí které "
+"jste možná přehlédli.\n"
+"\n"
+"Díky za registraci a doufáme, že se vám používání této služby bude líbít."
 
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
 "to confirm your email address.)"
 msgstr ""
+"(Měli byste za okamžik obdržet e-mailem zprávu s instrukcemi, jak potvrdit "
+"svou e-mailovou adresu.)"
 
 #: actions/remotesubscribe.php:98
 #, php-format
@@ -2351,15 +3442,19 @@ msgid ""
 msgstr ""
 "Pro odebírání, se musíte [přihlásit](%%action.login%%), nebo [registrovat](%%"
 "action.register%%) nový účet. Pokud již máte účet na [kompatibilních "
-"mikroblozích](%%doc.openmublog%%), vložte níže asdresu "
+"mikroblozích](%%doc.openmublog%%), vložte níže adresu."
 
 #: actions/remotesubscribe.php:112
 msgid "Remote subscribe"
 msgstr "Vzdálený odběr"
 
+#: actions/remotesubscribe.php:124
+msgid "Subscribe to a remote user"
+msgstr "Přihlásit se ke vzdálenému uživateli"
+
 #: actions/remotesubscribe.php:129
 msgid "User nickname"
-msgstr "Přezdívka"
+msgstr "Přezdívka uživatele"
 
 #: actions/remotesubscribe.php:130
 msgid "Nickname of the user you want to follow"
@@ -2385,22 +3480,40 @@ msgstr "Neplatná adresa profilu (špatný formát)"
 #: actions/remotesubscribe.php:168
 msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
 msgstr ""
+"Není platnou adresou profilu (není YADIS dokumentem nebo definováno neplatné "
+"XRDS)."
 
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
-msgstr ""
+msgstr "To je místní profil! Pro přihlášení k odběru se přihlášte."
 
 #: actions/remotesubscribe.php:183
 msgid "Couldn’t get a request token."
-msgstr ""
+msgstr "Nelze získat řetězec požadavku."
 
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
-msgstr ""
+msgstr "Pouze přihlášení uživatelé mohou opakovat oznámení."
+
+#: actions/repeat.php:64 actions/repeat.php:71
+msgid "No notice specified."
+msgstr "Oznámení neuvedeno."
+
+#: actions/repeat.php:76
+msgid "You can't repeat your own notice."
+msgstr "Nemůžete opakovat své vlastní oznámení."
+
+#: actions/repeat.php:90
+msgid "You already repeated that notice."
+msgstr "Již jste zopakoval toto oznámení."
 
 #: actions/repeat.php:114 lib/noticelist.php:676
 msgid "Repeated"
-msgstr "Reset"
+msgstr "Opakované"
+
+#: actions/repeat.php:119
+msgid "Repeated!"
+msgstr "Opakované!"
 
 #: actions/replies.php:126 actions/repliesrss.php:68
 #: lib/personalgroupnav.php:105
@@ -2408,10 +3521,25 @@ msgstr "Reset"
 msgid "Replies to %s"
 msgstr "Odpovědi na %s"
 
+#: actions/replies.php:128
+#, php-format
+msgid "Replies to %1$s, page %2$d"
+msgstr "Odpovědi na %1$s, strana %2$d"
+
+#: actions/replies.php:145
+#, php-format
+msgid "Replies feed for %s (RSS 1.0)"
+msgstr "Feed odpovědí pro %s (RSS 1.0)"
+
+#: actions/replies.php:152
+#, php-format
+msgid "Replies feed for %s (RSS 2.0)"
+msgstr "Feed odpovědí pro %s (RSS 2.0)"
+
 #: actions/replies.php:159
 #, php-format
 msgid "Replies feed for %s (Atom)"
-msgstr "Odpovědi na %s"
+msgstr "Feed odpovědí pro %s (Atom)"
 
 #: actions/replies.php:199
 #, php-format
@@ -2419,6 +3547,8 @@ msgid ""
 "This is the timeline showing replies to %1$s but %2$s hasn't received a "
 "notice to them yet."
 msgstr ""
+"Toto je časová osa ukazující odpovědi na %1$s, ale %2$s, ještě neobdržel "
+"žádná oznámení."
 
 #: actions/replies.php:204
 #, php-format
@@ -2426,6 +3556,8 @@ msgid ""
 "You can engage other users in a conversation, subscribe to more people or "
 "[join groups](%%action.groups%%)."
 msgstr ""
+"Můžete zapojit ostatní uživatele v rozhovoru, přihlaste se k více lidem nebo "
+"se [připojit do skupin](%%action.groups%%)."
 
 #: actions/replies.php:206
 #, php-format
@@ -2433,67 +3565,94 @@ msgid ""
 "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
 "newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
+"Můžete se pokusit uživatele [%1$s postrčit](../%2$s)  nebo [jim něco poslat]"
+"(%%%%action.newnotice%%%%?status_textarea=%3$s)."
+
+#: actions/repliesrss.php:72
+#, php-format
+msgid "Replies to %1$s on %2$s!"
+msgstr "Odpovědi na %1$s na %2$s!"
 
 #: actions/revokerole.php:75
 msgid "You cannot revoke user roles on this site."
-msgstr ""
+msgstr "Nemůžete rušit uživatelské role na této stránce."
 
 #: actions/revokerole.php:82
 msgid "User doesn't have this role."
-msgstr ""
+msgstr "Uživatel nemá tuto roli."
 
 #: actions/rsd.php:146 actions/version.php:159
 msgid "StatusNet"
-msgstr "Statistiky"
+msgstr "StatusNet"
 
 #: actions/sandbox.php:65 actions/unsandbox.php:65
 msgid "You cannot sandbox users on this site."
-msgstr ""
+msgstr "Nemůžete sandboxovat uživatele na této stránce."
 
 #: actions/sandbox.php:72
 msgid "User is already sandboxed."
-msgstr ""
+msgstr "Uživatel je již sandboxován."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
-msgstr ""
+msgstr "Sessions"
 
 #: actions/sessionsadminpanel.php:65
 msgid "Session settings for this StatusNet site."
-msgstr ""
+msgstr "Nastavení sessions pro tuto stránku StatusNet."
 
 #: actions/sessionsadminpanel.php:175
 msgid "Handle sessions"
-msgstr ""
+msgstr "Zpracovávat sessions"
 
 #: actions/sessionsadminpanel.php:177
 msgid "Whether to handle sessions ourselves."
-msgstr ""
+msgstr "Máme sami zpracovávat sessions?"
 
 #: actions/sessionsadminpanel.php:181
 msgid "Session debugging"
-msgstr ""
+msgstr "Debugování sessions"
 
 #: actions/sessionsadminpanel.php:183
 msgid "Turn on debugging output for sessions."
-msgstr ""
+msgstr "Zapnout výstup pro debugování sessions"
 
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/useradminpanel.php:294
 msgid "Save site settings"
-msgstr "Nastavené Profilu"
+msgstr "Uložit Nastavení webu"
+
+#: actions/showapplication.php:82
+msgid "You must be logged in to view an application."
+msgstr "Musíte být přihlášeni pro zobrazení aplikace."
+
+#: actions/showapplication.php:157
+msgid "Application profile"
+msgstr "Profil aplikace"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
-msgstr ""
+msgstr "Ikona"
+
+#. TRANS: Form input field label for application name.
+#: actions/showapplication.php:169 actions/version.php:197
+#: lib/applicationeditform.php:190
+msgid "Name"
+msgstr "Název"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
-msgstr ""
+msgstr "Organizace"
+
+#. TRANS: Form input field label.
+#: actions/showapplication.php:187 actions/version.php:200
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
+msgid "Description"
+msgstr "Popis"
 
 #: actions/showapplication.php:192 actions/showgroup.php:436
 #: lib/profileaction.php:187
@@ -2504,61 +3663,83 @@ msgstr "Statistiky"
 #, php-format
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
+"Vytvořil %1$s - s \"%2$s\" přístupem ve výchozím nastavení - %3$d uživatelů"
+
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr "Akce aplikace"
 
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
-msgstr ""
+msgstr "Resetovat klíč a tajemství"
+
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr "Info o aplikaci"
 
 #: actions/showapplication.php:263
 msgid "Consumer key"
-msgstr ""
+msgstr "Spotřebitelský klíč"
 
 #: actions/showapplication.php:268
 msgid "Consumer secret"
-msgstr ""
+msgstr "Spotřebitelské tajemství"
 
 #: actions/showapplication.php:273
 msgid "Request token URL"
-msgstr ""
+msgstr "Adresa řetězce požadavku"
 
 #: actions/showapplication.php:278
 msgid "Access token URL"
-msgstr ""
+msgstr "URL Access tokenu"
 
 #: actions/showapplication.php:283
 msgid "Authorize URL"
-msgstr ""
+msgstr "Authorizační URL"
 
 #: actions/showapplication.php:288
 msgid ""
 "Note: We support HMAC-SHA1 signatures. We do not support the plaintext "
 "signature method."
-msgstr ""
+msgstr "Poznámka: podpora HMAC-SHA1 podpisů. Nepodporujeme plaintext."
 
 #: actions/showapplication.php:309
 msgid "Are you sure you want to reset your consumer key and secret?"
 msgstr ""
+"Jste si jisti, že chcete resetovat svůj spotřebitelský klíč a tajemství?"
 
 #: actions/showfavorites.php:79
 #, php-format
 msgid "%1$s's favorite notices, page %2$d"
-msgstr ""
+msgstr "Oblíbená oznámení uživatele %1$s, strana %2$d"
+
+#: actions/showfavorites.php:132
+msgid "Could not retrieve favorite notices."
+msgstr "Nepodařilo se získat oblíbená oznámení."
 
 #: actions/showfavorites.php:171
 #, php-format
 msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr ""
+msgstr "Feed oblíbených oznámení uživatele %s (RSS 1.0)"
 
 #: actions/showfavorites.php:178
 #, php-format
 msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr ""
+msgstr "Feed oblíbených oznámení uživatele %s (RSS 2.0)"
+
+#: actions/showfavorites.php:185
+#, php-format
+msgid "Feed for favorites of %s (Atom)"
+msgstr "Feed oblíbených oznámení uživatele %s (Atom)"
 
 #: actions/showfavorites.php:206
 msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
 "notices you like to bookmark them for later or shed a spotlight on them."
 msgstr ""
+"Nemáte dosud vybraná žádná oblíbená oznámení. Abyste si je založili na "
+"později nebo na ně upoutali pozornost, klikněte na tlačítko Oblíbené na "
+"oznámeních"
 
 #: actions/showfavorites.php:208
 #, php-format
@@ -2566,6 +3747,8 @@ msgid ""
 "%s hasn't added any favorite notices yet. Post something interesting they "
 "would add to their favorites :)"
 msgstr ""
+"%s ještě nemá žádná oblíbená oznámení. Napište neco zajímavého co by si "
+"přidali do oblíbených :)"
 
 #: actions/showfavorites.php:212
 #, php-format
@@ -2574,24 +3757,31 @@ msgid ""
 "action.register%%%%) and then post something interesting they would add to "
 "their favorites :)"
 msgstr ""
+"%s ještě nemá žádná oblíbená oznámení. Proč se ne [zaregistrovat](%%%%action."
+"register%%%%) a neposlat neco zajímavého co by si přidali do oblíbených :)"
 
 #: actions/showfavorites.php:243
 msgid "This is a way to share what you like."
-msgstr ""
+msgstr "Toto je způsob, jak sdílet to, co se vám líbí."
+
+#: actions/showgroup.php:82
+#, php-format
+msgid "%s group"
+msgstr "skupina %s"
 
 #: actions/showgroup.php:84
 #, php-format
 msgid "%1$s group, page %2$d"
-msgstr ""
+msgstr "skupina %1$s, str. %2$d"
 
 #: actions/showgroup.php:227
 msgid "Group profile"
-msgstr "Logo skupiny"
+msgstr "Profil skupiny"
 
 #: actions/showgroup.php:272 actions/tagother.php:118
 #: actions/userauthorization.php:175 lib/userprofile.php:178
 msgid "URL"
-msgstr ""
+msgstr "URL"
 
 #: actions/showgroup.php:283 actions/tagother.php:128
 #: actions/userauthorization.php:187 lib/userprofile.php:195
@@ -2600,22 +3790,49 @@ msgstr "Poznámka"
 
 #: actions/showgroup.php:293 lib/groupeditform.php:184
 msgid "Aliases"
-msgstr ""
+msgstr "Aliasy"
+
+#: actions/showgroup.php:302
+msgid "Group actions"
+msgstr "Akce skupiny"
 
 #: actions/showgroup.php:338
 #, php-format
 msgid "Notice feed for %s group (RSS 1.0)"
-msgstr ""
+msgstr "Feed sdělení skupiny %s (RSS 1.0"
 
 #: actions/showgroup.php:344
 #, php-format
 msgid "Notice feed for %s group (RSS 2.0)"
-msgstr ""
+msgstr "Feed sdělení skupiny %s (RSS 2.0)"
+
+#: actions/showgroup.php:350
+#, php-format
+msgid "Notice feed for %s group (Atom)"
+msgstr "Feed sdělení skupiny %s (Atom)"
 
 #: actions/showgroup.php:355
 #, php-format
 msgid "FOAF for %s group"
-msgstr "Upravit %s skupinu"
+msgstr "FOAF pro skupinu %s"
+
+#: actions/showgroup.php:393 actions/showgroup.php:445
+msgid "Members"
+msgstr "Členové"
+
+#: actions/showgroup.php:398 lib/profileaction.php:117
+#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
+#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
+msgid "(None)"
+msgstr "(nic)"
+
+#: actions/showgroup.php:404
+msgid "All members"
+msgstr "Všichni členové"
+
+#: actions/showgroup.php:439
+msgid "Created"
+msgstr "Vytvořeno"
 
 #: actions/showgroup.php:455
 #, php-format
@@ -2626,6 +3843,11 @@ msgid ""
 "their life and interests. [Join now](%%%%action.register%%%%) to become part "
 "of this group and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
+"**%s** je skupina uživatelů na %%site.name%%, [mikro-blogovací](http://drbz."
+"cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji "
+"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém "
+"životě a zájmech. [Zaregistrujte se](%%action.register%%) a staňte se členem "
+"této skupiny a mnoha dalších! ([Čtěte více](%%doc.help%%))"
 
 #: actions/showgroup.php:461
 #, php-format
@@ -2635,54 +3857,84 @@ msgid ""
 "[StatusNet](http://status.net/) tool. Its members share short messages about "
 "their life and interests. "
 msgstr ""
+"**%s** je skupina uživatelů na %%site.name%%, [mikro-blogovací](http://drbz."
+"cz/i/napoveda-faq#mikroblog) službě založené na Free Software nástroji "
+"[StatusNet](http://status.net/). Její členové sdílejí krátké zprávy o svém "
+"životě a zájmech.  "
 
 #: actions/showgroup.php:489
 msgid "Admins"
-msgstr ""
+msgstr "Adminové"
+
+#: actions/showmessage.php:81
+msgid "No such message."
+msgstr "Žádné takové zprávy."
 
 #: actions/showmessage.php:98
 msgid "Only the sender and recipient may read this message."
-msgstr ""
+msgstr "Pouze odesílatel a příjemce může přečíst tuto zprávu."
 
 #: actions/showmessage.php:108
 #, php-format
 msgid "Message to %1$s on %2$s"
-msgstr ""
+msgstr "Zpráva pro %1$s na %2$s"
 
 #: actions/showmessage.php:113
 #, php-format
 msgid "Message from %1$s on %2$s"
-msgstr ""
+msgstr "Zpráva od %1$s na %2$s"
 
 #: actions/shownotice.php:90
 msgid "Notice deleted."
-msgstr "Avatar smazán."
+msgstr "Oznámení smazáno."
 
 #: actions/showstream.php:73
 #, php-format
 msgid " tagged %s"
-msgstr ""
+msgstr "označen %s"
 
 #: actions/showstream.php:79
 #, php-format
 msgid "%1$s, page %2$d"
-msgstr ""
+msgstr "%1$s, strana %2$d"
 
 #: actions/showstream.php:122
 #, php-format
 msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
-msgstr ""
+msgstr "Feed oznámení pro %1$s otagovaných %2$s (RSS 1.0)"
+
+#: actions/showstream.php:129
+#, php-format
+msgid "Notice feed for %s (RSS 1.0)"
+msgstr "Feed oznámení pro %1$s (RSS 1.0)"
+
+#: actions/showstream.php:136
+#, php-format
+msgid "Notice feed for %s (RSS 2.0)"
+msgstr "Feed oznámení pro %1$s (RSS 2.0)"
+
+#: actions/showstream.php:143
+#, php-format
+msgid "Notice feed for %s (Atom)"
+msgstr "Feed oznámení pro %1$s (Atom)"
+
+#: actions/showstream.php:148
+#, php-format
+msgid "FOAF for %s"
+msgstr "FOAF pro %s"
 
 #: actions/showstream.php:200
 #, php-format
 msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet."
-msgstr ""
+msgstr "Toto je časová osa pro %1$s, ale %2$s zatím ničím nepřispěli."
 
 #: actions/showstream.php:205
 msgid ""
 "Seen anything interesting recently? You haven't posted any notices yet, now "
 "would be a good time to start :)"
 msgstr ""
+"Viděli jste v poslední době zajímavého? Nemáte zatím žádné oznámení, teď by "
+"byl dobrý čas začít:)"
 
 #: actions/showstream.php:207
 #, php-format
@@ -2690,6 +3942,8 @@ msgid ""
 "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
 "%?status_textarea=%2$s)."
 msgstr ""
+"Můžete se pokusit uživatele %1$s postrčit nebo [jim něco poslat](%%%%action."
+"newnotice%%%%?status_textarea=%2$s)."
 
 #: actions/showstream.php:243
 #, php-format
@@ -2699,6 +3953,10 @@ msgid ""
 "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to "
 "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
+"**%s** má účet na %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-"
+"faq#mikroblog) službě založené na Free Software nástroji [StatusNet](http://"
+"status.net/). [Zaregistrujte se](%%action.register%%) a sledujte oznámení od "
+"**%s**a mnoha dalších! ([Čtěte více](%%doc.help%%))"
 
 #: actions/showstream.php:248
 #, php-format
@@ -2707,148 +3965,211 @@ msgid ""
 "wikipedia.org/wiki/Micro-blogging) service based on the Free Software "
 "[StatusNet](http://status.net/) tool. "
 msgstr ""
+"**%s** má účet na %%site.name%%, [mikro-blogovací](http://drbz.cz/i/napoveda-"
+"faq#mikroblog) službě založené na Free Software nástroji [StatusNet](http://"
+"status.net/). "
+
+#: actions/showstream.php:305
+#, php-format
+msgid "Repeat of %s"
+msgstr "Opakování %s"
 
 #: actions/silence.php:65 actions/unsilence.php:65
 msgid "You cannot silence users on this site."
-msgstr ""
+msgstr "Na tomto webu nemůžete ztišovat uživatele."
 
 #: actions/silence.php:72
 msgid "User is already silenced."
-msgstr ""
+msgstr "Uživatel je už umlčen."
 
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
-msgstr ""
+msgstr "Základní nastavení pro tuto stránku StatusNet"
 
 #: actions/siteadminpanel.php:133
 msgid "Site name must have non-zero length."
-msgstr ""
+msgstr "Název webu musí mít nenulovou délku."
+
+#: actions/siteadminpanel.php:141
+msgid "You must have a valid contact email address."
+msgstr "Musíte mít platnou kontaktní emailovou adresu."
 
 #: actions/siteadminpanel.php:159
 #, php-format
 msgid "Unknown language \"%s\"."
-msgstr ""
+msgstr "Neznámý jazyk \"%s\"."
 
 #: actions/siteadminpanel.php:165
 msgid "Minimum text limit is 0 (unlimited)."
-msgstr ""
+msgstr "Minimální limit textu je 0 (bez omezení)."
 
 #: actions/siteadminpanel.php:171
 msgid "Dupe limit must be one or more seconds."
-msgstr ""
+msgstr "Duplikační limit musí být jedna nebo více sekund."
 
 #: actions/siteadminpanel.php:221
 msgid "General"
-msgstr ""
+msgstr "Obecné"
+
+#: actions/siteadminpanel.php:224
+msgid "Site name"
+msgstr "Název stránky"
 
 #: actions/siteadminpanel.php:225
 msgid "The name of your site, like \"Yourcompany Microblog\""
-msgstr ""
+msgstr "Název vaší stránky, jako \"Mikroblog VašíSpolečnosti\""
 
 #: actions/siteadminpanel.php:229
 msgid "Brought by"
-msgstr ""
+msgstr "Přineseno"
 
 #: actions/siteadminpanel.php:230
 msgid "Text used for credits link in footer of each page"
-msgstr ""
+msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky."
 
 #: actions/siteadminpanel.php:234
 msgid "Brought by URL"
-msgstr ""
+msgstr "Přineseno URL"
 
 #: actions/siteadminpanel.php:235
 msgid "URL used for credits link in footer of each page"
-msgstr ""
+msgstr "Text pro děkovný odkaz (credits) v zápatí každé stránky."
+
+#: actions/siteadminpanel.php:239
+msgid "Contact email address for your site"
+msgstr "Kontaktní e-mailová adresa pro vaše stránky"
+
+#: actions/siteadminpanel.php:245
+msgid "Local"
+msgstr "Místní"
 
 #: actions/siteadminpanel.php:256
 msgid "Default timezone"
-msgstr ""
+msgstr "Výchozí časové pásmo"
 
 #: actions/siteadminpanel.php:257
 msgid "Default timezone for the site; usually UTC."
-msgstr ""
+msgstr "Výchozí časové pásmo pro web, obvykle UTC."
 
 #: actions/siteadminpanel.php:262
 msgid "Default language"
-msgstr ""
+msgstr "Výchozí jazyk"
 
 #: actions/siteadminpanel.php:263
 msgid "Site language when autodetection from browser settings is not available"
-msgstr ""
+msgstr "Jazyk stránky když není k dispozici autodetekce z nastavení prohlížeče"
 
 #: actions/siteadminpanel.php:271
 msgid "Limits"
-msgstr ""
+msgstr "Omezení"
 
 #: actions/siteadminpanel.php:274
 msgid "Text limit"
-msgstr ""
+msgstr "Omezení textu"
 
 #: actions/siteadminpanel.php:274
 msgid "Maximum number of characters for notices."
-msgstr ""
+msgstr "Maximální počet znaků v oznámení."
 
 #: actions/siteadminpanel.php:278
 msgid "Dupe limit"
-msgstr ""
+msgstr "Limit duplikace"
 
 #: actions/siteadminpanel.php:278
 msgid "How long users must wait (in seconds) to post the same thing again."
 msgstr ""
+"Jak dlouho uživatel musí čekat (v sekundách) než může poslat totéž znovu."
 
 #: actions/sitenoticeadminpanel.php:56
 msgid "Site Notice"
-msgstr "Sdělení"
+msgstr "Oznámení stránky"
 
 #: actions/sitenoticeadminpanel.php:67
 msgid "Edit site-wide message"
-msgstr ""
+msgstr "Upravit celo-webovou zprávu"
+
+#: actions/sitenoticeadminpanel.php:103
+msgid "Unable to save site notice."
+msgstr "Problém při ukládání sdělení stránky"
 
 #: actions/sitenoticeadminpanel.php:113
 msgid "Max length for the site-wide notice is 255 chars."
-msgstr ""
+msgstr "Max délka pro celo-webové oznámení je 255 znaků."
+
+#: actions/sitenoticeadminpanel.php:176
+msgid "Site notice text"
+msgstr "Text sdělení stránky"
 
 #: actions/sitenoticeadminpanel.php:178
 msgid "Site-wide notice text (255 chars max; HTML okay)"
-msgstr ""
+msgstr "Celo-webové sdělení (255 znaků max., s HTML)"
+
+#: actions/sitenoticeadminpanel.php:198
+msgid "Save site notice"
+msgstr "Uložit oznámení stránky"
 
 #. TRANS: Title for SMS settings.
 #: actions/smssettings.php:59
 msgid "SMS settings"
-msgstr "Nastavené Profilu"
+msgstr "nastavení SMS"
 
 #. TRANS: SMS settings page instructions.
 #. TRANS: %%site.name%% is the name of the site.
 #: actions/smssettings.php:74
 #, php-format
 msgid "You can receive SMS messages through email from %%site.name%%."
-msgstr ""
+msgstr "Z %%site.name%% můžete přijímat SMS e-mailem."
 
 #. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
 #: actions/smssettings.php:97
 msgid "SMS is not available."
-msgstr ""
+msgstr "SMS není k dispozici."
+
+#. TRANS: Form legend for SMS settings form.
+#: actions/smssettings.php:111
+msgid "SMS address"
+msgstr "SMS adresa"
 
 #. TRANS: Form guide in SMS settings form.
 #: actions/smssettings.php:120
 msgid "Current confirmed SMS-enabled phone number."
-msgstr ""
+msgstr "Aktuální potvrzené SMS-schopné telefonní číslo."
 
 #. TRANS: Form guide in IM settings form.
 #: actions/smssettings.php:133
 msgid "Awaiting confirmation on this phone number."
-msgstr ""
+msgstr "Čeká na potvrzení na tomto telefonním čísle."
+
+#. TRANS: Field label for SMS address input in SMS settings form.
+#: actions/smssettings.php:142
+msgid "Confirmation code"
+msgstr "Potvrzovací kód"
 
 #. TRANS: Form field instructions in SMS settings form.
 #: actions/smssettings.php:144
 msgid "Enter the code you received on your phone."
-msgstr ""
+msgstr "Zadejte kód, který jste obdrželi na telefonu."
+
+#. TRANS: Button label to confirm SMS confirmation code in SMS settings.
+#: actions/smssettings.php:148
+msgctxt "BUTTON"
+msgid "Confirm"
+msgstr "Potvrdit"
+
+#. TRANS: Field label for SMS phone number input in SMS settings form.
+#: actions/smssettings.php:153
+msgid "SMS phone number"
+msgstr "SMS telefonní číslo"
+
+#. TRANS: SMS phone number input field instructions in SMS settings form.
+#: actions/smssettings.php:156
+msgid "Phone number, no punctuation or spaces, with area code"
+msgstr "Telefonní číslo, Nepoužívej interpunkci nebo mezery, s předčíslím"
 
 #. TRANS: Form legend for SMS preferences form.
 #: actions/smssettings.php:195
 msgid "SMS preferences"
-msgstr "Nastavení uloženo"
+msgstr "Nastavení SMS"
 
 #. TRANS: Checkbox label in SMS preferences form.
 #: actions/smssettings.php:201
@@ -2856,35 +4177,73 @@ msgid ""
 "Send me notices through SMS; I understand I may incur exorbitant charges "
 "from my carrier."
 msgstr ""
+"Posílejte mi oznámení prostřednictvím SMS. Chápu že mi můj telefonní "
+"provider může naůčtovat nesmyslně vysoké částky."
+
+#. TRANS: Confirmation message for successful SMS preferences save.
+#: actions/smssettings.php:315
+msgid "SMS preferences saved."
+msgstr "Nastavení SMS uloženo."
 
 #. TRANS: Message given saving SMS phone number without having provided one.
 #: actions/smssettings.php:338
 msgid "No phone number."
 msgstr "Žádné telefonní číslo."
 
+#. TRANS: Message given saving SMS phone number without having selected a carrier.
+#: actions/smssettings.php:344
+msgid "No carrier selected."
+msgstr "Nevybrán poskytovatel."
+
+#. TRANS: Message given saving SMS phone number that is already set.
+#: actions/smssettings.php:352
+msgid "That is already your phone number."
+msgstr "Toto je již vaše telefonní číslo."
+
+#. TRANS: Message given saving SMS phone number that is already set for another user.
+#: actions/smssettings.php:356
+msgid "That phone number already belongs to another user."
+msgstr "Toto telefonní číslo již patří jinému uživateli"
+
 #. TRANS: Message given saving valid SMS phone number that is to be confirmed.
 #: actions/smssettings.php:384
 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 ""
-"Ověřující kód byl poslán na vloženou IM adresu. Musíte prokázat %s pro "
-"posílání zpráv."
+"Ověřující kód byl poslán na vložené telefonní číslo, s instrukcemi jak ho "
+"použít."
+
+#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number.
+#: actions/smssettings.php:413
+msgid "That is the wrong confirmation number."
+msgstr "Toto je špatné ověřovací číslo."
 
 #. TRANS: Message given after successfully canceling SMS phone number confirmation.
 #: actions/smssettings.php:427
 msgid "SMS confirmation cancelled."
-msgstr "Žádný potvrzující kód."
+msgstr "SMS potvrzení zrušeno."
+
+#. TRANS: Message given trying to remove an SMS phone number that is not
+#. TRANS: registered for the active user.
+#: actions/smssettings.php:448
+msgid "That is not your phone number."
+msgstr "To není vaše telefonní číslo."
+
+#. TRANS: Message given after successfully removing a registered SMS phone number.
+#: actions/smssettings.php:470
+msgid "The SMS phone number was removed."
+msgstr "SMS Telefonní číslo bylo odstraněno."
 
 #. TRANS: Label for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:511
 msgid "Mobile carrier"
-msgstr ""
+msgstr "Mobilní operátor"
 
 #. TRANS: Default option for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:516
 msgid "Select a carrier"
-msgstr ""
+msgstr "Vyberte operátora"
 
 #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings.
 #. TRANS: %s is an administrative contact's e-mail address.
@@ -2894,94 +4253,129 @@ 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 ""
+"Mobilní operátor vášeho telefonu. Pokud znáte operátora, který přijímá SMS "
+"přes e-mail, ale zde není uveden, pošlete e-mail a dejte nám vědět na% s."
+
+#. TRANS: Message given saving SMS phone number confirmation code without having provided one.
+#: actions/smssettings.php:548
+msgid "No code entered"
+msgstr "Nezadán kód"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
-msgstr ""
+msgstr "Snímky (snapshoty)"
 
 #: actions/snapshotadminpanel.php:65
 msgid "Manage snapshot configuration"
-msgstr "Potvrzení emailové adresy"
+msgstr "Konfigurace snímků"
+
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr "Neplatná hodnota run. (kdy provádět snapshoty)"
 
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
-msgstr ""
+msgstr "Frekvence snímků musí být číslo."
 
 #: actions/snapshotadminpanel.php:144
 msgid "Invalid snapshot report URL."
-msgstr ""
+msgstr "Neplatná URL na reportování snímků"
 
 #: actions/snapshotadminpanel.php:200
 msgid "Randomly during web hit"
-msgstr ""
+msgstr "Náhodně při dodávání stránek"
 
 #: actions/snapshotadminpanel.php:201
 msgid "In a scheduled job"
-msgstr ""
+msgstr "V naplánovaném úkolu"
 
 #: actions/snapshotadminpanel.php:206
 msgid "Data snapshots"
-msgstr ""
+msgstr "Snímky dat"
 
 #: actions/snapshotadminpanel.php:208
 msgid "When to send statistical data to status.net servers"
-msgstr ""
+msgstr "Kdy posílat statistická data na status.net servery"
 
 #: actions/snapshotadminpanel.php:217
 msgid "Frequency"
-msgstr ""
+msgstr "Frekvence"
 
 #: actions/snapshotadminpanel.php:218
 msgid "Snapshots will be sent once every N web hits"
-msgstr ""
+msgstr "Snímky budou odeslány jednou za N web hitů"
 
 #: actions/snapshotadminpanel.php:226
 msgid "Report URL"
-msgstr ""
+msgstr "Reportovací URL"
 
 #: actions/snapshotadminpanel.php:227
 msgid "Snapshots will be sent to this URL"
-msgstr ""
+msgstr "Na tuto adresu budou poslány snímky"
+
+#: actions/snapshotadminpanel.php:248
+msgid "Save snapshot settings"
+msgstr "Uložit nastavení snímkování"
+
+#: actions/subedit.php:70
+msgid "You are not subscribed to that profile."
+msgstr "Nejste přihlášen k tomuto profilu."
 
 #. TRANS: Exception thrown when a subscription could not be stored on the server.
 #: actions/subedit.php:83 classes/Subscription.php:136
 msgid "Could not save subscription."
-msgstr "Nelze vložit odebírání"
+msgstr "Nelze uložit odebírání"
 
 #: actions/subscribe.php:77
 msgid "This action only accepts POST requests."
-msgstr ""
+msgstr "Tato akce přijímá pouze POST požadavky."
+
+#: actions/subscribe.php:107
+msgid "No such profile."
+msgstr "Žádný takový profil."
 
 #: actions/subscribe.php:117
 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
 msgstr ""
+"Touto akcí se nemůžete se přihlásit k odběru vzdáleného OMB 0.1 profilu."
+
+#: actions/subscribe.php:145
+msgid "Subscribed"
+msgstr "Prihlášen"
 
 #: actions/subscribers.php:50
 #, php-format
 msgid "%s subscribers"
-msgstr "Všichni odběratelé"
+msgstr "Odběratelé %s"
+
+#: actions/subscribers.php:52
+#, php-format
+msgid "%1$s subscribers, page %2$d"
+msgstr "odběratelé %1$s, strana %2$d"
 
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
-msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením "
+msgstr "Toto jsou lidé, kteří naslouchají vašim sdělením."
 
 #: actions/subscribers.php:67
 #, php-format
 msgid "These are the people who listen to %s's notices."
-msgstr "Toto jsou lidé, kteří naslouchají %s sdělením"
+msgstr "Toto jsou lidé, kteří naslouchají sdělením od %s."
 
 #: actions/subscribers.php:108
 msgid ""
 "You have no subscribers. Try subscribing to people you know and they might "
 "return the favor"
 msgstr ""
+"Nemáte žádné sledovatele. Zkuste začít sledovat lidi, které znáte, a oni by "
+"vám tu laskavost mohli vrátit"
 
 #: actions/subscribers.php:110
 #, php-format
 msgid "%s has no subscribers. Want to be the first?"
-msgstr ""
+msgstr "Uživatele %s nikdo nesleduje. Chcete být první?"
 
 #: actions/subscribers.php:114
 #, php-format
@@ -2989,6 +4383,18 @@ msgid ""
 "%s has no subscribers. Why not [register an account](%%%%action.register%%%"
 "%) and be the first?"
 msgstr ""
+"Uživatele %s nikdo nesleduje. Proč ne [zaregistrovat účet](%%action.register%"
+"%) a nebýt první?"
+
+#: actions/subscriptions.php:52
+#, php-format
+msgid "%s subscriptions"
+msgstr "Odběry uživatele %s"
+
+#: actions/subscriptions.php:54
+#, php-format
+msgid "%1$s subscriptions, page %2$d"
+msgstr "Odběry uživatele %1$s, strana %2$d"
 
 #: actions/subscriptions.php:65
 msgid "These are the people whose notices you listen to."
@@ -2997,7 +4403,7 @@ msgstr "Toto jsou lidé, jejiž sdělením nasloucháte"
 #: actions/subscriptions.php:69
 #, php-format
 msgid "These are the people whose notices %s listens to."
-msgstr "Toto jsou lidé, jejiž sdělením %s naslouchá"
+msgstr "Toto jsou lidé, jejímž sdělením %s naslouchá"
 
 #: actions/subscriptions.php:126
 #, php-format
@@ -3008,95 +4414,145 @@ msgid ""
 "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can "
 "automatically subscribe to people you already follow there."
 msgstr ""
+"Momentálně nenasloucháte níčím oznámením, zkuste se přihlásit k lidem které "
+"znáte. Zkuste [Vyhledávání lidí](%%action.peoplesearch%%), podívejte se po "
+"členech skupin které vás zajímají a do [nejlepších uživatelú](%%action."
+"featured%%). Pokud jste uživatelem [Twitteru](%%action.twittersettings%%), "
+"můžete se automaticky přihlásit k lidem které už tam sledujete."
+
+#: actions/subscriptions.php:128 actions/subscriptions.php:132
+#, php-format
+msgid "%s is not listening to anyone."
+msgstr "%s nikoho nesleduje."
+
+#: actions/subscriptions.php:208
+msgid "Jabber"
+msgstr "Jabber"
 
 #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115
 msgid "SMS"
-msgstr ""
+msgstr "SMS"
 
 #: actions/tag.php:69
 #, php-format
 msgid "Notices tagged with %1$s, page %2$d"
-msgstr ""
+msgstr "Oznámení označená %1$s, strana %2$d"
 
 #: actions/tag.php:87
 #, php-format
 msgid "Notice feed for tag %s (RSS 1.0)"
-msgstr ""
+msgstr "Feed oznámení označených %s (RSS 1.0)"
 
 #: actions/tag.php:93
 #, php-format
 msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
+msgstr "Feed oznámení označených %s (RSS 2.0)"
+
+#: actions/tag.php:99
+#, php-format
+msgid "Notice feed for tag %s (Atom)"
+msgstr "Feed oznámení označených %s (Atom)"
 
 #: actions/tagother.php:39
 msgid "No ID argument."
-msgstr ""
+msgstr "Žádný argument ID."
 
 #: actions/tagother.php:65
 #, php-format
 msgid "Tag %s"
-msgstr ""
+msgstr "Otagujte %s"
+
+#: actions/tagother.php:77 lib/userprofile.php:76
+msgid "User profile"
+msgstr "Uživatelský profil"
 
 #: actions/tagother.php:81 actions/userauthorization.php:132
 #: lib/userprofile.php:103
 msgid "Photo"
-msgstr ""
+msgstr "Fotka"
 
 #: actions/tagother.php:141
 msgid "Tag user"
-msgstr ""
+msgstr "Otagujte uživatele"
 
 #: actions/tagother.php:151
 msgid ""
 "Tags for this user (letters, numbers, -, ., and _), comma- or space- "
 "separated"
 msgstr ""
+"Tagy pro tohoto uživatele (písmena, číslice, -,., a _), oddělené čárkou nebo "
+"mezerou"
 
 #: actions/tagother.php:193
 msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
 msgstr ""
+"Můžete označovat pouze lidi, ke kterým jste přihlášen nebo kteří jsou "
+"přihlášeni k vám."
 
 #: actions/tagother.php:200
 msgid "Could not save tags."
-msgstr "Nelze uložit profil"
+msgstr "Nelze uložit nálepky"
 
 #: actions/tagother.php:236
 msgid "Use this form to add tags to your subscribers or subscriptions."
 msgstr ""
+"Použijte tento formulář k přidání nálepek na vaše posluchače nebo ty které "
+"posloucháte."
+
+#: actions/tagrss.php:35
+msgid "No such tag."
+msgstr "Žádná taková nálepka."
+
+#: actions/unblock.php:59
+msgid "You haven't blocked that user."
+msgstr "Nemáte zablokováno tohoto uživatele."
+
+#: actions/unsandbox.php:72
+msgid "User is not sandboxed."
+msgstr "Uživatel není sandboxován."
+
+#: actions/unsilence.php:72
+msgid "User is not silenced."
+msgstr "Uživatel není umlčen."
 
 #: actions/unsubscribe.php:77
 msgid "No profile ID in request."
-msgstr "Žádné potvrení!"
+msgstr "CHybí ID profilu v žádosti."
+
+#: actions/unsubscribe.php:98
+msgid "Unsubscribed"
+msgstr "Odhlášeno"
 
 #: actions/updateprofile.php:64 actions/userauthorization.php:337
 #, php-format
 msgid ""
 "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’."
 msgstr ""
+"Licence naslouchaného '%1$s' není kompatibilní s licencí stránky '%2$s'."
 
 #. TRANS: User admin panel title
 #: actions/useradminpanel.php:59
 msgctxt "TITLE"
 msgid "User"
-msgstr ""
+msgstr "Uživatel"
 
 #: actions/useradminpanel.php:70
 msgid "User settings for this StatusNet site."
-msgstr ""
+msgstr "Nastavení uživatelů pro tuto stránku StatusNet."
 
 #: actions/useradminpanel.php:149
 msgid "Invalid bio limit. Must be numeric."
-msgstr ""
+msgstr "Neplatný bio limit. Musí být číslo."
 
 #: actions/useradminpanel.php:155
 msgid "Invalid welcome text. Max length is 255 characters."
-msgstr ""
+msgstr "Neplatné uvítací text. Max délka je 255 znaků."
 
 #: actions/useradminpanel.php:165
 #, php-format
 msgid "Invalid default subscripton: '%1$s' is not user."
-msgstr ""
+msgstr "Neplatné výchozí přihlášení: '%1$s' není uživatel."
 
 #. TRANS: Link description in user account settings menu.
 #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111
@@ -3106,39 +4562,47 @@ msgstr "Profil"
 
 #: actions/useradminpanel.php:222
 msgid "Bio Limit"
-msgstr ""
+msgstr "Limit Bia"
 
 #: actions/useradminpanel.php:223
 msgid "Maximum length of a profile bio in characters."
-msgstr ""
+msgstr "Maximální počet znaků bia profilu."
 
 #: actions/useradminpanel.php:231
 msgid "New users"
-msgstr ""
+msgstr "Noví uživatelé"
 
 #: actions/useradminpanel.php:235
 msgid "New user welcome"
-msgstr ""
+msgstr "Uvítání nového uživatele"
 
 #: actions/useradminpanel.php:236
 msgid "Welcome text for new users (Max 255 chars)."
-msgstr ""
+msgstr "Uvítání nových uživatel (Max 255 znaků)."
+
+#: actions/useradminpanel.php:241
+msgid "Default subscription"
+msgstr "Výchozí odběr"
+
+#: actions/useradminpanel.php:242
+msgid "Automatically subscribe new users to this user."
+msgstr "Automaticky přihlásit nové uživatele k tomuto uživateli."
 
 #: actions/useradminpanel.php:251
 msgid "Invitations"
-msgstr ""
+msgstr "Pozvánky"
 
 #: actions/useradminpanel.php:256
 msgid "Invitations enabled"
-msgstr ""
+msgstr "Pozvánky povoleny"
 
 #: actions/useradminpanel.php:258
 msgid "Whether to allow users to invite new users."
-msgstr ""
+msgstr "Zda chcete uživatelům umožnit pozvat nové uživatele."
 
 #: actions/userauthorization.php:105
 msgid "Authorize subscription"
-msgstr "Autorizovaný odběr"
+msgstr "Autorizujte přihlášení"
 
 #: actions/userauthorization.php:110
 msgid ""
@@ -3146,6 +4610,9 @@ msgid ""
 "user’s notices. If you didn’t just ask to subscribe to someone’s notices, "
 "click “Reject”."
 msgstr ""
+"Prosím zkontrolujte tyto detailu, a ujistěte se že opravdu chcete odebírat "
+"sdělení tohoto uživatele. Pokud jste právě nepožádali o přihlášení k tomuto "
+"uživteli, klikněte na \"Zrušit\""
 
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
@@ -3158,7 +4625,7 @@ msgstr "Přijmout"
 #: actions/userauthorization.php:218 lib/subscribeform.php:115
 #: lib/subscribeform.php:139
 msgid "Subscribe to this user"
-msgstr "Neodeslal jste nám profil"
+msgstr "Přihlásit se k tomuto uživateli"
 
 #: actions/userauthorization.php:219
 msgid "Reject"
@@ -3166,11 +4633,11 @@ msgstr "Odmítnout"
 
 #: actions/userauthorization.php:220
 msgid "Reject this subscription"
-msgstr "Autorizovaný odběr"
+msgstr "Odmítnout toto přihlášení"
 
 #: actions/userauthorization.php:232
 msgid "No authorization request!"
-msgstr "Žádné potvrení!"
+msgstr "Žádná Å¾Ã¡dost o autorizaci!"
 
 #: actions/userauthorization.php:254
 msgid "Subscription authorized"
@@ -3182,6 +4649,9 @@ msgid ""
 "with the site’s instructions for details on how to authorize the "
 "subscription. Your subscription token is:"
 msgstr ""
+"Odběr byl autorizován, ale nepřišla žádná callback adresa. Zkontrolujte v "
+"nápovědě jak správně postupovat při autorizování odběru. Váš řetězec odběru "
+"je:"
 
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
@@ -3193,66 +4663,80 @@ msgid ""
 "with the site’s instructions for details on how to fully reject the "
 "subscription."
 msgstr ""
+"Odebírání bylo zamítnuto, ale nepřišla žádná callback adresa. Zkontrolujte v "
+"nápovědě jak správně postupovat pro plné zamítnutí odběru."
 
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
-msgstr ""
+msgstr "Naslouchací URI ‘%s’ zde nebyl nalezen."
 
 #: actions/userauthorization.php:308
 #, php-format
 msgid "Listenee URI ‘%s’ is too long."
-msgstr ""
+msgstr "Naslouchací URI ‘%s’ je příliš dlouhý."
 
 #: actions/userauthorization.php:314
 #, php-format
 msgid "Listenee URI ‘%s’ is a local user."
-msgstr ""
+msgstr "Naslouchací URI ‘%s’ je místní uživatel."
 
 #: actions/userauthorization.php:329
 #, php-format
 msgid "Profile URL ‘%s’ is for a local user."
-msgstr ""
+msgstr "URL profilu '%s' je pro místního uživatele."
 
 #: actions/userauthorization.php:345
 #, php-format
 msgid "Avatar URL ‘%s’ is not valid."
-msgstr ""
+msgstr "URL avataru ‘%s’ není platný."
 
 #: actions/userauthorization.php:350
 #, php-format
 msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
+msgstr "Nelze načíst avatara z URL '%s'"
 
 #: actions/userauthorization.php:355
 #, php-format
 msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
+msgstr "Špatný typ obrázku na URL '%s'"
+
+#: actions/userdesignsettings.php:76 lib/designsettings.php:65
+msgid "Profile design"
+msgstr "Vzhled profilu"
 
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
 "palette of your choice."
 msgstr ""
+"Přizpůsobit vzhled vašeho profilu obrázkem na pozadí a barevnou paletou "
+"vašeho výběru."
 
 #: actions/userdesignsettings.php:282
 msgid "Enjoy your hotdog!"
-msgstr ""
+msgstr "Užijte si svůj párek v rohlíku!"
 
 #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
 #: actions/usergroups.php:66
 #, php-format
 msgid "%1$s groups, page %2$d"
-msgstr ""
+msgstr "skupiny uživatele %1$s, strana %2$d"
 
 #: actions/usergroups.php:132
 msgid "Search for more groups"
-msgstr ""
+msgstr "Vyhledat další skupiny"
+
+#: actions/usergroups.php:159
+#, php-format
+msgid "%s is not a member of any group."
+msgstr "%s není členem žádné skupiny."
 
 #: actions/usergroups.php:164
 #, php-format
 msgid "Try [searching for groups](%%action.groupsearch%%) and joining them."
 msgstr ""
+"Zkuste [vyhledávat skupiny](%%action.groupsearch%%) a připojit se k nim."
 
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #. TRANS: Message is used as a subtitle in atom group notice feed.
@@ -3263,7 +4747,12 @@ msgstr ""
 #: lib/atomusernoticefeed.php:76
 #, php-format
 msgid "Updates from %1$s on %2$s!"
-msgstr ""
+msgstr "Oznámení od %1$s na %2$s!"
+
+#: actions/version.php:75
+#, php-format
+msgid "StatusNet %s"
+msgstr "StatusNet %s"
 
 #: actions/version.php:155
 #, php-format
@@ -3271,10 +4760,12 @@ msgid ""
 "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, "
 "Inc. and contributors."
 msgstr ""
+"Tato webová stránka je poháněna a běží na programu %1$S verze %2$s, "
+"Copyright 2008-2010 StatusNet, Inc a přispěvatelé."
 
 #: actions/version.php:163
 msgid "Contributors"
-msgstr ""
+msgstr "Přispěvatelé"
 
 #: actions/version.php:170
 msgid ""
@@ -3283,6 +4774,10 @@ msgid ""
 "Software Foundation, either version 3 of the License, or (at your option) "
 "any later version. "
 msgstr ""
+"StatusNet je svobodný software: můžete jej šířit a / nebo modifikovat podle "
+"podmínek GNU Affero General Public License, vydávané Free Software "
+"Foundation, a to buď ve verzi 3 této licence anebo (podle vašeho uvážení) "
+"kterékoli pozdější verze. "
 
 #: actions/version.php:176
 msgid ""
@@ -3291,6 +4786,10 @@ msgid ""
 "FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License "
 "for more details. "
 msgstr ""
+"Tento program je rozšiřován v naději, že bude užitečný, avšak BEZ JAKÉKOLI "
+"ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO "
+"URČITÝ ÚČEL. Podívejte se na GNU Affero General Public License pro bližší "
+"informace. "
 
 #: actions/version.php:182
 #, php-format
@@ -3298,25 +4797,32 @@ msgid ""
 "You should have received a copy of the GNU Affero General Public License "
 "along with this program.  If not, see %s."
 msgstr ""
+"Měli byste obdržet kopii GNU Affero General Public License spolu s tímto "
+"programem. Pokud ne, jděte na %s."
 
 #: actions/version.php:191
 msgid "Plugins"
-msgstr ""
+msgstr "Pluginy"
+
+#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site.
+#: actions/version.php:198 lib/action.php:805
+msgid "Version"
+msgstr "Verze"
 
 #: actions/version.php:199
 msgid "Author(s)"
-msgstr ""
+msgstr "Autoři"
 
 #. TRANS: Server exception thrown when a URL cannot be processed.
 #: classes/File.php:143
 #, php-format
 msgid "Cannot process URL '%s'"
-msgstr ""
+msgstr "Nemůžu zpracovat URL '%s'"
 
 #. TRANS: Server exception thrown when... Robin thinks something is impossible!
 #: classes/File.php:175
 msgid "Robin thinks something is impossible."
-msgstr ""
+msgstr "Robin si myslí, že je něco nemožné."
 
 #. TRANS: Message given if an upload is larger than the configured maximum.
 #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
@@ -3326,49 +4832,105 @@ msgid ""
 "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
 "Try to upload a smaller version."
 msgstr ""
+"Žádný soubor nesmí být větší než %1$d bajtů a soubor, který jste poslal měl %"
+"2$d bajtů. Zkuste nahrát menší verzi."
 
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
 #: classes/File.php:202
 #, php-format
 msgid "A file this large would exceed your user quota of %d bytes."
-msgstr ""
+msgstr "Takto velký soubor by překročil vaši uživatelskou kvótu %d bajtů."
 
 #. TRANS: Message given id an upload would exceed a user's monthly quota.
 #. TRANS: $d (number) is the monthly user quota in bytes.
 #: classes/File.php:211
 #, php-format
 msgid "A file this large would exceed your monthly quota of %d bytes."
-msgstr ""
+msgstr "Takto velký soubor by překročil vaši měsíční kvótu %d bajtů."
 
-#. TRANS: Exception thrown when database name or Data Source Name could not be found.
-#: classes/Memcached_DataObject.php:533
+#. TRANS: Client exception thrown if a file upload does not have a valid name.
+#: classes/File.php:248 classes/File.php:263
+msgid "Invalid filename."
+msgstr "Neplatné jméno souboru."
+
+#. TRANS: Exception thrown when joining a group fails.
+#: classes/Group_member.php:42
+msgid "Group join failed."
+msgstr "Nepodařilo se připojit ke skupině."
+
+#. TRANS: Exception thrown when trying to leave a group the user is not a member of.
+#: classes/Group_member.php:55
+msgid "Not part of group."
+msgstr "Není součástí skupiny."
+
+#. TRANS: Exception thrown when trying to leave a group fails.
+#: classes/Group_member.php:63
+msgid "Group leave failed."
+msgstr "Nepodařilo se opustit skupinu."
+
+#. TRANS: Server exception thrown when updating a local group fails.
+#: classes/Local_group.php:42
+msgid "Could not update local group."
+msgstr "Nelze aktualizovat místní skupinu."
+
+#. TRANS: Exception thrown when trying creating a login token failed.
+#. TRANS: %s is the user nickname for which token creation failed.
+#: classes/Login_token.php:78
+#, php-format
+msgid "Could not create login token for %s"
+msgstr "Nelze vytvořit přihlašovací token pro %s"
+
+#. TRANS: Exception thrown when database name or Data Source Name could not be found.
+#: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
-msgstr ""
+msgstr "Nenalezeno jméno databáze ani DSN."
 
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
 msgid "You are banned from sending direct messages."
-msgstr ""
+msgstr "Nemůžete posílat přímé zprávy (banned)"
+
+#. TRANS: Message given when a message could not be stored on the server.
+#: classes/Message.php:63
+msgid "Could not insert message."
+msgstr "Nemohu vložit zprávu."
+
+#. TRANS: Message given when a message could not be updated on the server.
+#: classes/Message.php:74
+msgid "Could not update message with new URI."
+msgstr "Nelze aktualizovat zprávu novým URI."
 
 #. TRANS: Server exception thrown when a user profile for a notice cannot be found.
 #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
 #: classes/Notice.php:98
 #, php-format
 msgid "No such profile (%1$d) for notice (%2$d)."
-msgstr ""
+msgstr "Nenalezen profil (%1$d) pro oznámení (%2$d)."
 
 #. TRANS: Server exception. %s are the error details.
 #: classes/Notice.php:193
 #, php-format
 msgid "Database error inserting hashtag: %s"
-msgstr "Chyba při kládání obrázku"
+msgstr "Chyba databáze při vkládání nálepky: %s"
+
+#. TRANS: Client exception thrown if a notice contains too many characters.
+#: classes/Notice.php:265
+msgid "Problem saving notice. Too long."
+msgstr "Problém ukládání sdělení. Příliš dlouhé."
+
+#. TRANS: Client exception thrown when trying to save a notice for an unknown user.
+#: classes/Notice.php:270
+msgid "Problem saving notice. Unknown user."
+msgstr "Problém při ukládání sdělení. Neznámý uživatel."
 
 #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame.
 #: classes/Notice.php:276
 msgid ""
 "Too many notices too fast; take a breather and post again in a few minutes."
 msgstr ""
+"Příliš mnoho oznámení příliš rychle, odpočiňte si a zkuste to znovu za "
+"několik minut."
 
 #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame.
 #: classes/Notice.php:283
@@ -3376,11 +4938,13 @@ msgid ""
 "Too many duplicate messages too quickly; take a breather and post again in a "
 "few minutes."
 msgstr ""
+"Příliš mnoho stejných zpráv příliš rychle, odpočiňte si a zkuste to znovu za "
+"několik minut."
 
 #. TRANS: Client exception thrown when a user tries to post while being banned.
 #: classes/Notice.php:291
 msgid "You are banned from posting notices on this site."
-msgstr ""
+msgstr "Máte zakázáno (banned) posílat upozornění na tomto webu."
 
 #. TRANS: Server exception thrown when a notice cannot be saved.
 #. TRANS: Server exception thrown when a notice cannot be updated.
@@ -3389,163 +4953,248 @@ msgid "Problem saving notice."
 msgstr "Problém při ukládání sdělení"
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
-msgstr ""
+msgstr "saveKnownGroups obdrželo špatný typ."
+
+#. TRANS: Server exception thrown when an update for a group inbox fails.
+#: classes/Notice.php:998
+msgid "Problem saving group inbox."
+msgstr "Problém při ukládání skupinového inboxu"
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
-msgstr ""
+msgstr "RT @%1$s %2$s"
 
 #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
 #: classes/Profile.php:737
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
-msgstr ""
+msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, neexistuje."
 
 #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
 #: classes/Profile.php:746
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
-msgstr ""
+msgstr "Nelze zrušit roli \"%1$s\" pro uživatele #%2$d, chyba databáze."
+
+#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
+#: classes/Remote_profile.php:54
+msgid "Missing profile."
+msgstr "Chybějící profil."
+
+#. TRANS: Exception thrown when a tag cannot be saved.
+#: classes/Status_network.php:339
+msgid "Unable to save tag."
+msgstr "Nelze uložit tag."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
-msgstr ""
+msgstr "Byl jste vykázán (banned) z přihlašování se."
+
+#. TRANS: Exception thrown when trying to subscribe while already subscribed.
+#: classes/Subscription.php:80
+msgid "Already subscribed!"
+msgstr "Již přihlášen!"
+
+#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user.
+#: classes/Subscription.php:85
+msgid "User has blocked you."
+msgstr "Uživatel vás zablokoval."
+
+#. TRANS: Exception thrown when trying to unsibscribe without a subscription.
+#: classes/Subscription.php:171
+msgid "Not subscribed!"
+msgstr "Nepřihlášen!"
 
 #. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
 #: classes/Subscription.php:178
 msgid "Could not delete self-subscription."
-msgstr "Nelze vložit odebírání"
+msgstr "Nelze smazat odebírání sebe sama"
 
 #. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
 #: classes/Subscription.php:206
 msgid "Could not delete subscription OMB token."
-msgstr "Nelze vložit odebírání"
+msgstr "Nelze smazat OMB token přihlášení."
 
 #. TRANS: Exception thrown when a subscription could not be deleted on the server.
 #: classes/Subscription.php:218
 msgid "Could not delete subscription."
-msgstr "Nelze vložit odebírání"
+msgstr "Nelze smazat odebírání"
 
 #. TRANS: Notice given on user registration.
 #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname.
 #: classes/User.php:365
 #, php-format
 msgid "Welcome to %1$s, @%2$s!"
-msgstr ""
+msgstr "Vítejte na %1$s, @%2$s!"
 
 #. TRANS: Server exception thrown when creating a group failed.
 #: classes/User_group.php:496
 msgid "Could not create group."
-msgstr "Nelze aktualizovat uživatele"
+msgstr "Nelze vytvořit skupinu."
 
 #. TRANS: Server exception thrown when updating a group URI failed.
 #: classes/User_group.php:506
 msgid "Could not set group URI."
-msgstr "Nelze uložit profil"
+msgstr "Nelze nastavit URI skupiny."
 
 #. TRANS: Server exception thrown when setting group membership failed.
 #: classes/User_group.php:529
 msgid "Could not set group membership."
-msgstr "Nelze aktualizovat uživatele"
+msgstr "Nelze nastavit členství ve skupině."
 
 #. TRANS: Server exception thrown when saving local group information failed.
 #: classes/User_group.php:544
 msgid "Could not save local group info."
-msgstr "Nelze uložit profil"
+msgstr "Nelze uložit místní info skupiny."
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:109
+msgid "Change your profile settings"
+msgstr "Změňte nastavení profilu"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:116
+msgid "Upload an avatar"
+msgstr "Nahrát avatar"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:123
+msgid "Change your password"
+msgstr "Změňte své heslo"
 
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:130
 msgid "Change email handling"
-msgstr ""
+msgstr "Změnit manipulaci emailu"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:137
+msgid "Design your profile"
+msgstr "Změňte vzhled svého profilu"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr "Další možnosti"
 
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
-msgstr ""
+msgstr "Jiné"
+
+#. TRANS: Page title. %1$s is the title, %2$s is the site name.
+#: lib/action.php:148
+#, php-format
+msgid "%1$s - %2$s"
+msgstr "%1$s - %2$s"
 
 #. TRANS: Page title for a page without a title set.
 #: lib/action.php:164
 msgid "Untitled page"
-msgstr ""
+msgstr "stránka bez názvu"
 
 #. TRANS: DT element for primary navigation menu. String is hidden in default CSS.
 #: lib/action.php:449
 msgid "Primary site navigation"
-msgstr ""
+msgstr "Primární navigace na webu"
 
 #. TRANS: Tooltip for main menu option "Personal"
 #: lib/action.php:455
 msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
-msgstr ""
+msgstr "Osobní profil a časová osa přátel"
+
+#. TRANS: Main menu option when logged in for access to personal profile and friends timeline
+#: lib/action.php:458
+msgctxt "MENU"
+msgid "Personal"
+msgstr "Osobní"
 
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
 msgid "Change your email, avatar, password, profile"
-msgstr ""
+msgstr "Změňte svůj e-mail, avatar, heslo, profil"
 
 #. TRANS: Tooltip for main menu option "Services"
 #: lib/action.php:465
 msgctxt "TOOLTIP"
 msgid "Connect to services"
-msgstr ""
+msgstr "Připojení ke službám"
 
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "Připojit"
 
+#. TRANS: Tooltip for menu option "Admin"
+#: lib/action.php:471
+msgctxt "TOOLTIP"
+msgid "Change site configuration"
+msgstr "Změna konfigurace webu"
+
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
-msgstr ""
+msgstr "Admin"
 
 #. TRANS: Tooltip for main menu option "Invite"
 #: lib/action.php:478
 #, php-format
 msgctxt "TOOLTIP"
 msgid "Invite friends and colleagues to join you on %s"
-msgstr ""
+msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s"
 
 #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
 #: lib/action.php:481
 msgctxt "MENU"
 msgid "Invite"
-msgstr ""
+msgstr "Pozvat"
 
 #. TRANS: Tooltip for main menu option "Logout"
 #: lib/action.php:487
 msgctxt "TOOLTIP"
 msgid "Logout from the site"
-msgstr ""
+msgstr "Odhlášení z webu"
 
 #. TRANS: Main menu option when logged in to log out the current user
 #: lib/action.php:490
 msgctxt "MENU"
 msgid "Logout"
-msgstr "Logo"
+msgstr "Odhlásit se"
 
 #. TRANS: Tooltip for main menu option "Register"
 #: lib/action.php:495
 msgctxt "TOOLTIP"
 msgid "Create an account"
-msgstr ""
+msgstr "Zaregistrujte se"
+
+#. TRANS: Main menu option when not logged in to register a new account
+#: lib/action.php:498
+msgctxt "MENU"
+msgid "Register"
+msgstr "Registrovat"
 
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
 msgid "Login to the site"
-msgstr ""
+msgstr "Přihlásit se na stránky"
+
+#: lib/action.php:504
+msgctxt "MENU"
+msgid "Login"
+msgstr "Přihlásit"
 
 #. TRANS: Tooltip for main menu option "Help"
 #: lib/action.php:507
@@ -3553,21 +5202,42 @@ msgctxt "TOOLTIP"
 msgid "Help me!"
 msgstr "Nápověda"
 
+#: lib/action.php:510
+msgctxt "MENU"
+msgid "Help"
+msgstr "Nápověda"
+
 #. TRANS: Tooltip for main menu option "Search"
 #: lib/action.php:513
 msgctxt "TOOLTIP"
 msgid "Search for people or text"
-msgstr ""
+msgstr "Vyhledávání osob nebo textu"
+
+#: lib/action.php:516
+msgctxt "MENU"
+msgid "Search"
+msgstr "Hledat"
+
+#. TRANS: DT element for site notice. String is hidden in default CSS.
+#. TRANS: Menu item for site administration
+#: lib/action.php:538 lib/adminpanelaction.php:387
+msgid "Site notice"
+msgstr "Sdělení"
 
 #. TRANS: DT element for local views block. String is hidden in default CSS.
 #: lib/action.php:605
 msgid "Local views"
-msgstr ""
+msgstr "Místní zobrazení"
+
+#. TRANS: DT element for page notice. String is hidden in default CSS.
+#: lib/action.php:675
+msgid "Page notice"
+msgstr "Sdělení stránky"
 
 #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
 #: lib/action.php:778
 msgid "Secondary site navigation"
-msgstr ""
+msgstr "Sekundární navigace na webu"
 
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
@@ -3587,7 +5257,7 @@ msgstr "FAQ"
 #. TRANS: Secondary navigation menu option leading to Terms of Service.
 #: lib/action.php:795
 msgid "TOS"
-msgstr ""
+msgstr "TOS (pravidla použití služby)"
 
 #. TRANS: Secondary navigation menu option leading to privacy policy.
 #: lib/action.php:799
@@ -3606,278 +5276,431 @@ msgstr "Kontakt"
 
 #: lib/action.php:810
 msgid "Badge"
-msgstr ""
+msgstr "Odznak"
 
 #. TRANS: DT element for StatusNet software license.
 #: lib/action.php:839
 msgid "StatusNet software license"
-msgstr ""
+msgstr "Licence softwaru StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
 "broughtby%%](%%site.broughtbyurl%%)."
 msgstr ""
+"**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site."
+"broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** je služba mikroblogů."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
 "s, available under the [GNU Affero General Public License](http://www.fsf."
 "org/licensing/licenses/agpl-3.0.html)."
 msgstr ""
-"Běží na [StatusNet](http://status.net/) mikroblogovací program, verze %s, "
-"dostupná pod [GNU Affero General Public License](http://www.fsf.org/"
+"Běží na mikroblogovacím programu [StatusNet](http://status.net/), verze %s, "
+"dostupném pod [GNU Affero General Public License](http://www.fsf.org/"
 "licensing/licenses/agpl-3.0.html)."
 
+#. TRANS: DT element for StatusNet site content license.
+#: lib/action.php:872
+msgid "Site content license"
+msgstr "Licence k obsahu stránek"
+
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
-msgstr ""
+msgstr "Obsah a data z %1$S jsou soukromé a důvěrné."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
-msgstr ""
+msgstr "Obsah a data copyright %1$s. Všechna práva vyhrazena."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
-msgstr ""
+msgstr "Obsah a data copyright přispěvatelů. Všechna práva vyhrazena."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
-msgstr ""
+msgstr "Všechen obsah a data %1$s jsou k dispozici v rámci licence %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
-msgstr ""
+msgstr "Stránkování"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
-msgstr ""
+msgstr "Po"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
-msgstr ""
+msgstr "Před"
 
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
-msgstr ""
+msgstr "Očekávám kořenový element feedu, ale dostal jsem celý XML dokument."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
-msgstr ""
+msgstr "Ještě neumí zpracovat vzdálený obsah."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
-msgstr ""
+msgstr "Neumí zacházet s vloženým XML obsahem."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
-msgstr ""
+msgstr "Neumí zacházet s vloženým Base64 obsahem."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
-msgstr ""
+msgstr "Nemůžete provádět změny na této stránce."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
-msgstr ""
+msgstr "Změny, tohoto panelu nejsou povoleny."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
-msgstr ""
+msgstr "showForm () není implementována."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
-msgstr ""
+msgstr "saveSettings () není implementována."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
-msgstr ""
+msgstr "Nelze smazat nastavení vzhledu."
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:337
+msgid "Basic site configuration"
+msgstr "Základní konfigurace webu"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
-msgstr ""
+msgstr "Stránky"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:345
+msgid "Design configuration"
+msgstr "Nastavení vzhledu"
+
+#. TRANS: Menu item for site administration
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
+msgctxt "MENU"
+msgid "Design"
+msgstr "Vzhled"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Akce uživatele"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
-msgstr ""
+msgstr "Uživatel"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:361
+msgid "Access configuration"
+msgstr "Nastavení přístupu"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:369
+msgid "Paths configuration"
+msgstr "Naastavení cest"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:377
+msgid "Sessions configuration"
+msgstr "Nastavení sessions"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:385
+msgid "Edit site notice"
+msgstr "Upravit oznámení stránky"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:393
+msgid "Snapshots configuration"
+msgstr "Konfigurace snímků"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
+"API droj vyžaduje přístup pro čtení a zápis, ale vy máte přístup pouze pro "
+"čtení."
+
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr "Upravit aplikaci"
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr "Ikona pro tuto aplikaci"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:200
+#, php-format
+msgid "Describe your application in %d characters"
+msgstr "Popište vaši aplikaci v %d znacích"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
-msgstr ""
+msgstr "Popište vaši aplikaci"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:215
+msgid "URL of the homepage of this application"
+msgstr "URL domovské stránky této aplikace"
+
+#. TRANS: Form input field label.
+#: lib/applicationeditform.php:217
+msgid "Source URL"
+msgstr "Zdrojové URL"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
+msgstr "Organizace odpovědná za tuto aplikaci"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
-msgstr ""
+msgstr "URL homepage organizace"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
-msgstr ""
+msgstr "URL pro přesměrování po autentikaci"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
-msgstr ""
+msgstr "Prohlížeč"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
-msgstr ""
+msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
-msgstr ""
+msgstr "Typ aplikace, prohlížeč nebo desktop"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
-msgstr ""
+msgstr "pouze pro čtení"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
-msgstr ""
+msgstr "čtení a zápis"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
-msgstr ""
+msgstr "Výchozí přístup pro tuto aplikaci: pouze pro čtení, nebo číst-psát"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Zrušit"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
-msgstr ""
+msgstr "číst-psát"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
-msgstr ""
+msgstr "pouze pro čtení"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
-msgstr ""
+msgstr "Schváleno %1$s - přístup \"%2$s\""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Obnovit"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr "Přílohy"
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
-msgstr ""
+msgstr "Autor"
 
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:279
 msgid "Provider"
 msgstr "Poskytovatel"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
-msgstr ""
+msgstr "Notices where this attachment appears"
+
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr "Označení této přílohy"
+
+#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
+msgid "Password changing failed"
+msgstr "Změna hesla se nezdařila"
 
 #: lib/authenticationplugin.php:236
 msgid "Password changing is not allowed"
-msgstr ""
+msgstr "Změna hesla není povolena"
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokovat"
+
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
+msgstr "Výsledky příkazu"
 
 #: lib/channel.php:229 lib/mailhandler.php:142
 msgid "Command complete"
-msgstr ""
+msgstr "Příkaz dokončen"
 
 #: lib/channel.php:240
 msgid "Command failed"
-msgstr ""
+msgstr "Příkaz selhal"
 
 #. TRANS: Command exception text shown when a notice ID is requested that does not exist.
 #: lib/command.php:84 lib/command.php:108
 msgid "Notice with that id does not exist."
-msgstr ""
+msgstr "Oznámení s tímto id neexistuje."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "Uživatel nemá žádné poslední oznámení"
 
 #. TRANS: Message given requesting a profile for a non-existing user.
 #. TRANS: %s is the nickname of the user for which the profile could not be found.
 #: lib/command.php:130
 #, php-format
 msgid "Could not find a user with nickname %s."
-msgstr ""
+msgstr "Nelze nalézt uživatele s přezdívkou %s"
 
 #. TRANS: Message given getting a non-existing user.
 #. TRANS: %s is the nickname of the user that could not be found.
 #: lib/command.php:150
 #, php-format
 msgid "Could not find a local user with nickname %s."
-msgstr ""
+msgstr "Nelze nalézt místního uživatele s přezdívkou %s"
 
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
-msgstr ""
+msgstr "Je nám líto, ale tento příkaz dosud nebyl implementován."
 
 #. TRANS: Command exception text shown when a user tries to nudge themselves.
 #: lib/command.php:231
 msgid "It does not make a lot of sense to nudge yourself!"
-msgstr ""
+msgstr "To nemá moc smyslu postrkovat sám sebe!"
 
 #. TRANS: Message given having nudged another user.
 #. TRANS: %s is the nickname of the user that was nudged.
 #: lib/command.php:240
 #, php-format
 msgid "Nudge sent to %s."
-msgstr ""
+msgstr "Šťouchnutí posláno %s."
 
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
@@ -3890,18 +5713,54 @@ msgid ""
 "Subscribers: %2$s\n"
 "Notices: %3$s"
 msgstr ""
+"Odbírám: %1$s \n"
+"Odběratelé: %2$s \n"
+"Hlášky: %3$s"
 
 #. TRANS: Text shown when a notice has been marked as favourite successfully.
 #: lib/command.php:314
 msgid "Notice marked as fave."
-msgstr ""
+msgstr "Oznámení označené jako oblíbené."
 
 #. TRANS: Message given having added a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
 #: lib/command.php:360
 #, php-format
 msgid "%1$s joined group %2$s."
-msgstr ""
+msgstr "%1$s se připojil(a) ke skupině %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s opustil(a) skupinu %2$s."
+
+#. TRANS: Whois output. %s is the full name of the queried user.
+#: lib/command.php:434
+#, php-format
+msgid "Fullname: %s"
+msgstr "Celé jméno %s"
+
+#. TRANS: Whois output. %s is the location of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:438 lib/mail.php:268
+#, php-format
+msgid "Location: %s"
+msgstr "Poloha: %s"
+
+#. TRANS: Whois output. %s is the homepage of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:442 lib/mail.php:271
+#, php-format
+msgid "Homepage: %s"
+msgstr "Domovská stránka: %s"
+
+#. TRANS: Whois output. %s is the bio information of the queried user.
+#: lib/command.php:446
+#, php-format
+msgid "About: %s"
+msgstr "O uživateli: %s"
 
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
@@ -3910,13 +5769,27 @@ msgid ""
 "%s is a remote profile; you can only send direct messages to users on the "
 "same server."
 msgstr ""
+"%s je vzdálený profil, přímé zprávy můžete odesílat pouze pro uživatele na "
+"stejném serveru."
 
 #. TRANS: Message given if content is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
 #: lib/command.php:491 lib/xmppmanager.php:403
 #, php-format
 msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
+msgstr "Zpráva je příliš dlouhá - maximum je %1$d znaků, poslal jsi %2$d."
+
+#. TRANS: Error text shown sending a direct message fails with an unknown reason.
+#: lib/command.php:517
+msgid "Error sending direct message."
+msgstr "Chyba při odesílání přímé zprávy."
+
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "Oznámení od %s opakováno."
 
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
@@ -3928,77 +5801,143 @@ msgstr "Chyba nastavení uživatele"
 #: lib/command.php:592
 #, php-format
 msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
+msgstr "Oznámení je příliš dlouhé - maximum je %1$d znaků, poslal jsi %2$d."
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "Odpověď %s odeslána."
+
+#. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
+#: lib/command.php:606
+msgid "Error saving notice."
+msgstr "Problém při ukládání sdělení."
 
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "Uveďte jméno uživatele ke kterému se přihlásit."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
-msgstr ""
+msgstr "Nelze se přihlásit k odběru OMB profilů příkazem."
+
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "Přihlášeno k %s."
 
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
-msgstr ""
+msgstr "Uveďte jméno uživatele od kterého se odhlásit."
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "Odhlášeno od %s."
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
 msgid "Command not yet implemented."
-msgstr ""
+msgstr "Příkaz ještě nebyl implementován."
+
+#. TRANS: Text shown when issuing the command "off" successfully.
+#: lib/command.php:728
+msgid "Notification off."
+msgstr "Oznámení vypnuta."
 
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
 #: lib/command.php:731
 msgid "Can't turn off notification."
-msgstr ""
+msgstr "Nelze vypnout oznámení."
+
+#. TRANS: Text shown when issuing the command "on" successfully.
+#: lib/command.php:754
+msgid "Notification on."
+msgstr "Oznámení zapnuta."
+
+#. TRANS: Error text shown when the command "on" fails for an unknown reason.
+#: lib/command.php:757
+msgid "Can't turn on notification."
+msgstr "Nelze zapnout oznámení."
 
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
-msgstr ""
+msgstr "Příkaz login je vypnut."
 
 #. TRANS: Text shown after issuing the login command successfully.
 #. TRANS: %s is a logon link..
 #: lib/command.php:784
 #, php-format
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
-msgstr ""
+msgstr "Tento odkaz je použitelný pouze jednou a je platný pouze 2 minuty: %s."
+
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "%s odhlášen."
+
+#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
+#: lib/command.php:831
+msgid "You are not subscribed to anyone."
+msgstr "Nejste přihlášen k nikomu."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
 msgid_plural "You are subscribed to these people:"
-msgstr[0] "Neodeslal jste nám profil"
-msgstr[1] "Neodeslal jste nám profil"
-msgstr[2] ""
+msgstr[0] "Jste přihlášeni k této osobě:"
+msgstr[1] "Jste přihlášeni k těmto lidem:"
+msgstr[2] "Jste přihlášeni k těmto lidem:"
+
+#. TRANS: Text shown after requesting other users that are subscribed to a user
+#. TRANS: (followers) without having any subscribers.
+#: lib/command.php:858
+msgid "No one is subscribed to you."
+msgstr "Nikdo k vám není přihlášen."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
 msgid_plural "These people are subscribed to you:"
-msgstr[0] "Vzdálený odběr"
-msgstr[1] "Vzdálený odběr"
-msgstr[2] ""
+msgstr[0] "Tato osoba je k vám přihlášena:"
+msgstr[1] "Tito lidé jsou k vám přihlášeni:"
+msgstr[2] "Tito lidé jsou k vám přihlášeni:"
+
+#. TRANS: Text shown after requesting groups a user is subscribed to without having
+#. TRANS: any group subscriptions.
+#: lib/command.php:885
+msgid "You are not a member of any groups."
+msgstr "Nejste členem žádné skupiny."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
-msgstr[0] "Neodeslal jste nám profil"
-msgstr[1] "Neodeslal jste nám profil"
+msgstr[0] "Jste členem této skupiny:"
+msgstr[1] "Jste členem těchto skupin:"
 msgstr[2] ""
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4040,127 +5979,270 @@ msgid ""
 "tracks - not yet implemented.\n"
 "tracking - not yet implemented.\n"
 msgstr ""
+"Příkazy:\n"
+"on - zapnout oznámení\n"
+"off - vypnout oznámení\n"
+"help - zobrazí tuto nápovědu\n"
+"follow <nickname> - Přihlásit se k uživatel\n"
+"groups - seznam skupin, ke kterým jste připojen\n"
+"subscriptions - seznam lidí, které sledujete\n"
+"subscribers - seznam osob, které vás sledují\n"
+"leave <přezdívka> - Odhlásit se od uživatele\n"
+"d <přezdívka> <text> - Přímá zpráva uživateli\n"
+"get <přezdívka> - Dostanete poslední upozornění od uživatele\n"
+"whois <přezdívka> - Získat informace o profilu uživatele\n"
+"lose <přezdívka> - Donutit uživatele přestat vás sledovat\n"
+"fav <přezdívka> - Přidejte uživatelovo poslední oznámení jako 'Oblíbené'\n"
+"fav #<notice_id> - Přidat upozornění s daným id jako 'Oblíbené'\n"
+"repeat #<notice_id> - Opakovat oznámení s daným id\n"
+"repeat <přezdívka> - Opakovat poslední oznámení od uživatele\n"
+"reply #<notice_id> - Odpověď na oznámení s daným id\n"
+"reply <přezdívka> - Odpověď na poslední oznámení od uživatele\n"
+"join <skupina> - Připojit se ke skupině\n"
+"login - Získat odkaz pro přihlášení k webovému rozhraní\n"
+"drop <skupina> - Opustit skupinu\n"
+"stats - získejte Vaše statistiky\n"
+"stop - stejné jako 'off'\n"
+"quit - stejné jako 'off'\n"
+"sub <přezdívka> - Stejné jako 'follow'\n"
+"unsub <přezdívka> - Stejné jako 'leave'\n"
+"last <přezdívka> - Stejné jako 'get'\n"
+"on <přezdívka> - Dosud neimplementován.\n"
+"off <přezdívka> - Dosud neimplementován.\n"
+"nudge <přezdívka> - Připomenout uživateli aby něco poslal.\n"
+"invite <telefonní číslo> - Dosud neimplementován.\n"
+"track <word> - Dosud neimplementován.\n"
+"untrack <word> -Dosud neimplementován.\n"
+"track off - Dosud neimplementován.\n"
+"untrack all - Dosud neimplementován.\n"
+"tracks -  Dosud neimplementován.\n"
+"tracking - Dosud neimplementován.\n"
+
+#: lib/common.php:135
+msgid "No configuration file found. "
+msgstr "Žádný konfigurační soubor nalezen. "
 
 #: lib/common.php:136
 msgid "I looked for configuration files in the following places: "
-msgstr ""
+msgstr "Díval jsem se po konfiguračních souborech na těchto místech: "
 
 #: lib/common.php:138
 msgid "You may wish to run the installer to fix this."
-msgstr ""
+msgstr "Možná budete chtít spustit instalační program abyste to vyřešili."
 
 #: lib/common.php:139
 msgid "Go to the installer."
-msgstr ""
+msgstr "Jdi na instalaci."
 
 #: lib/connectsettingsaction.php:110
 msgid "IM"
-msgstr ""
+msgstr "IM"
 
 #: lib/connectsettingsaction.php:111
 msgid "Updates by instant messenger (IM)"
-msgstr ""
+msgstr "Aktualizace z a na instant messenger (IM)"
 
 #: lib/connectsettingsaction.php:116
 msgid "Updates by SMS"
-msgstr ""
+msgstr "Aktualizace z a na SMS"
+
+#: lib/connectsettingsaction.php:120
+msgid "Connections"
+msgstr "Připojení"
+
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr "Autorizované propojené aplikace"
 
 #: lib/dberroraction.php:60
 msgid "Database error"
+msgstr "Chyba databáze"
+
+#: lib/designsettings.php:105
+msgid "Upload file"
+msgstr "Nahrát soubor"
+
+#: lib/designsettings.php:109
+msgid ""
+"You can upload your personal background image. The maximum file size is 2MB."
 msgstr ""
+"Můžete nahrát váš osobní obrázek na pozadí. Maximální velikost souboru je 2 "
+"MB."
 
 #: lib/designsettings.php:418
 msgid "Design defaults restored."
-msgstr ""
+msgstr "Obnoveno výchozí nastavení vzhledu."
+
+#: lib/disfavorform.php:114 lib/disfavorform.php:140
+msgid "Disfavor this notice"
+msgstr "Odebrat toto oznámení z oblíbených"
 
 #: lib/favorform.php:114 lib/favorform.php:140
 msgid "Favor this notice"
-msgstr "Odstranit toto oznámení"
+msgstr "Přidat toto oznámení do oblíbených"
+
+#: lib/favorform.php:140
+msgid "Favor"
+msgstr "Oblíbit"
 
 #: lib/feed.php:85
 msgid "RSS 1.0"
-msgstr ""
+msgstr "RSS 1.0"
 
 #: lib/feed.php:87
 msgid "RSS 2.0"
-msgstr ""
+msgstr "RSS 2.0"
 
 #: lib/feed.php:89
 msgid "Atom"
-msgstr ""
+msgstr "Atom"
 
 #: lib/feed.php:91
 msgid "FOAF"
-msgstr ""
+msgstr "FOAF"
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "Exportovat data"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
-msgstr ""
+msgstr "Filtrovat tagy"
 
 #: lib/galleryaction.php:131
 msgid "All"
-msgstr ""
+msgstr "Všechny"
 
 #: lib/galleryaction.php:139
 msgid "Select tag to filter"
-msgstr ""
+msgstr "Zvolte značku k filtrování"
 
 #: lib/galleryaction.php:140
 msgid "Tag"
-msgstr ""
+msgstr "Značka"
 
 #: lib/galleryaction.php:141
 msgid "Choose a tag to narrow list"
-msgstr ""
+msgstr "Vyberte si značku k zúžení seznamu"
 
 #: lib/galleryaction.php:143
 msgid "Go"
-msgstr ""
+msgstr "Jdi"
 
 #: lib/grantroleform.php:91
 #, php-format
 msgid "Grant this user the \"%s\" role"
-msgstr ""
+msgstr "Dát tomuto uživateli roli \"%s\""
+
+#: lib/groupeditform.php:163
+msgid "URL of the homepage or blog of the group or topic"
+msgstr "URL domovské stránky nebo blogu skupiny nebo tématu"
 
 #: lib/groupeditform.php:168
 msgid "Describe the group or topic"
+msgstr "Popište skupinu nebo téma"
+
+#: lib/groupeditform.php:170
+#, php-format
+msgid "Describe the group or topic in %d characters"
+msgstr "Popište skupinu nebo téma ve %d znacích"
+
+#: lib/groupeditform.php:179
+msgid ""
+"Location for the group, if any, like \"City, State (or Region), Country\""
 msgstr ""
+"Umístění skupiny, pokud je nějaké, ve stylu \"město, stát (nebo region), země"
+"\""
 
 #: lib/groupeditform.php:187
 #, php-format
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgstr "Další přezdívky pro skupinu, oddělené čárkou nebo mezerou, max %d"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
-msgstr ""
+msgstr "Skupiny s nejvíce členy"
 
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
-msgstr ""
+msgstr "Skupiny s nejvíce příspěvky"
 
 #: lib/grouptagcloudsection.php:56
 #, php-format
 msgid "Tags in %s group's notices"
-msgstr ""
+msgstr "Značky v oznámeních skupiny %s"
 
 #. TRANS: Client exception 406
 #: lib/htmloutputter.php:104
@@ -4171,11 +6253,17 @@ msgstr "Tato stránka není k dispozici v typu média která přijímáte."
 msgid "Unsupported image file format."
 msgstr "Nepodporovaný formát obrázku."
 
+#: lib/imagefile.php:88
+#, php-format
+msgid "That file is too big. The maximum file size is %s."
+msgstr "Ten soubor je příliš velký. Maximální velikost souboru je %s."
+
 #: lib/imagefile.php:93
 msgid "Partial upload."
 msgstr "Částečné náhrání."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Chyba systému při nahrávání souboru"
 
@@ -4183,35 +6271,47 @@ msgstr "Chyba systému při nahrávání souboru"
 msgid "Not an image or corrupt file."
 msgstr "Není obrázkem, nebo jde o poškozený soubor."
 
+#: lib/imagefile.php:122
+msgid "Lost our file."
+msgstr "Ztratili jsme náš soubor."
+
 #: lib/imagefile.php:163 lib/imagefile.php:224
 msgid "Unknown file type"
-msgstr ""
+msgstr "Neznámý typ souboru"
 
 #: lib/imagefile.php:244
 msgid "MB"
-msgstr ""
+msgstr "MB"
 
 #: lib/imagefile.php:246
 msgid "kB"
-msgstr ""
+msgstr "kB"
 
 #: lib/jabber.php:387
 #, php-format
 msgid "[%s]"
-msgstr ""
+msgstr "[%s]"
 
 #: lib/jabber.php:567
 #, php-format
 msgid "Unknown inbox source %d."
-msgstr ""
+msgstr "Neznámý zdroj inboxu %d."
 
 #: lib/joinform.php:114
 msgid "Join"
-msgstr "Přidat se"
+msgstr "Připojit se"
+
+#: lib/leaveform.php:114
+msgid "Leave"
+msgstr "Opustit"
+
+#: lib/logingroupnav.php:80
+msgid "Login with a username and password"
+msgstr "Přihlásit se pomocí svého uživatelského jména a hesla."
 
 #: lib/logingroupnav.php:86
 msgid "Sign up for a new account"
-msgstr ""
+msgstr "Vytvořit nový účet"
 
 #. TRANS: Subject for address confirmation email
 #: lib/mail.php:174
@@ -4235,12 +6335,25 @@ msgid ""
 "Thanks for your time, \n"
 "%s\n"
 msgstr ""
+"Ahoj,% s.\n"
+"\n"
+"Někdo právě vložil tuto e-mailovou adresu na %s.\n"
+"\n"
+"Pokud jsi to byl ty, a chceš potvrdit své zadání, použij níže uvedenou "
+"adresu:\n"
+"\n"
+"%s\n"
+"\n"
+"Pokud ne, tak tuto zprávu ignoruj.\n"
+"\n"
+"Díky za tvůj čas,\n"
+"%s\n"
 
 #. TRANS: Subject of new-subscriber notification e-mail
 #: lib/mail.php:243
 #, php-format
 msgid "%1$s is now listening to your notices on %2$s."
-msgstr "%1 od teď naslouchá tvým sdělením v %2"
+msgstr "%1$s od teď naslouchá tvým sdělením na %2$s."
 
 #: lib/mail.php:248
 #, php-format
@@ -4248,6 +6361,8 @@ msgid ""
 "If you believe this account is being used abusively, you can block them from "
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
+"Pokud si myslíte, že tento účet je zneužíván, můžete ho zablokovat ze svého "
+"seznamu přihlášených a reportovat jako spam adminům na %s"
 
 #. TRANS: Main body of new-subscriber notification e-mail
 #: lib/mail.php:254
@@ -4264,6 +6379,28 @@ msgid ""
 "----\n"
 "Change your email address or notification options at %8$s\n"
 msgstr ""
+"%1$s nyní naslouchá vasim oznámením na %2$s.\n"
+"\n"
+"%3$s\n"
+"\n"
+"%4$s%5$s%6$s\n"
+"Váš,\n"
+"%7$s.\n"
+"\n"
+"----\n"
+"Zmeňte vaší e-mailovouadresu nebo nastavení upozornění na %8$s\n"
+
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/mail.php:274
+#, php-format
+msgid "Bio: %s"
+msgstr "O: %s"
+
+#. TRANS: Subject of notification mail for new posting email address
+#: lib/mail.php:304
+#, php-format
+msgid "New email address for posting to %s"
+msgstr "Nová e-mailová adresa pro psaní na %s"
 
 #. TRANS: Body of notification mail for new posting email address
 #: lib/mail.php:308
@@ -4278,18 +6415,37 @@ msgid ""
 "Faithfully yours,\n"
 "%4$s"
 msgstr ""
+"Máte novou posílací aadresu na %1$s.\n"
+"\n"
+"K poslání nového oznámení pošlete e-mail na %2$s.\n"
+"\n"
+"Instrukce naleznete na %3$s.\n"
+"\n"
+"Váš,\n"
+"%4$s"
+
+#. TRANS: Subject line for SMS-by-email notification messages
+#: lib/mail.php:433
+#, php-format
+msgid "%s status"
+msgstr "status %s"
+
+#. TRANS: Subject line for SMS-by-email address confirmation message
+#: lib/mail.php:460
+msgid "SMS confirmation"
+msgstr "SMS potvrzení"
 
 #. TRANS: Main body heading for SMS-by-email address confirmation message
 #: lib/mail.php:463
 #, php-format
 msgid "%s: confirm you own this phone number with this code:"
-msgstr ""
+msgstr "%s: potvrďte že vlastníte toto telefonní číslo tímto kódem:"
 
 #. TRANS: Subject for 'nudge' notification email
 #: lib/mail.php:484
 #, php-format
 msgid "You've been nudged by %s"
-msgstr ""
+msgstr "%s Vás pošťouchl"
 
 #. TRANS: Body for 'nudge' notification email
 #: lib/mail.php:489
@@ -4307,12 +6463,23 @@ msgid ""
 "With kind regards,\n"
 "%4$s\n"
 msgstr ""
+"%1$s (%2$s) by zajímalo, co poslední dobou děláte a poštouchl vás, abyste "
+"poslali nějaké novinky.\n"
+"\n"
+"Takže šup na stránky a něco pošlete :)\n"
+"\n"
+"%3$s\n"
+"\n"
+"Neodpovídejte na tento e-mail, nedostane se k nim.\n"
+"\n"
+"S pozdravem,\n"
+"%4$s\n"
 
 #. TRANS: Subject for direct-message notification email
 #: lib/mail.php:536
 #, php-format
 msgid "New private message from %s"
-msgstr ""
+msgstr "Nová soukromá zpráva od %s"
 
 #. TRANS: Body for direct-message notification email
 #: lib/mail.php:541
@@ -4333,12 +6500,26 @@ msgid ""
 "With kind regards,\n"
 "%5$s\n"
 msgstr ""
+"%1$s (%2$s) vám poslal soukromou zprávu:\n"
+"\n"
+"-------------------------------------------------- ----\n"
+"%3$s\n"
+"-------------------------------------------------- ----\n"
+"\n"
+"Můžete odpovědět zde:\n"
+"\n"
+"%4$s\n"
+"\n"
+"Neodpovídejte na tento e-mail, nedostane se k nim.\n"
+"\n"
+"S pozdravem\n"
+"%5$s\n"
 
 #. TRANS: Subject for favorite notification email
 #: lib/mail.php:589
 #, php-format
 msgid "%s (@%s) added your notice as a favorite"
-msgstr ""
+msgstr "%s (@%s) přidal vaše oznámení jako oblíbené"
 
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
@@ -4361,6 +6542,23 @@ msgid ""
 "Faithfully yours,\n"
 "%6$s\n"
 msgstr ""
+"%1$s (@%7$s) právě přidal vaše oznámení z %2$s jako jedno ze svých "
+"oblíbených. \n"
+"\n"
+" URL Vašeho oznámení je: \n"
+"\n"
+" %3$s \n"
+"\n"
+" Text Vašeho oznámení je: \n"
+"\n"
+" %4$s \n"
+"\n"
+" Můžete vidět seznam %1$S oblíbených zde: \n"
+"\n"
+" %5$s \n"
+"\n"
+" Váš, \n"
+" %6$s \n"
 
 #. TRANS: Line in @-reply notification e-mail. %s is conversation URL.
 #: lib/mail.php:651
@@ -4370,11 +6568,14 @@ msgid ""
 "\n"
 "\t%s"
 msgstr ""
+"Celý rozhovor si můžete přečíst zde: \n"
+"\n"
+" %s"
 
 #: lib/mail.php:657
 #, php-format
 msgid "%s (@%s) sent a notice to your attention"
-msgstr ""
+msgstr "%s (@%s) poslal oznámení žádající o vaši pozornost"
 
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
@@ -4403,174 +6604,275 @@ msgid ""
 "\n"
 "P.S. You can turn off these email notifications here: %8$s\n"
 msgstr ""
+"%1$s (@%9$s) právě poslal oznámení žádající o vaši pozornost ('@-odpověď') "
+"na %2$s.\n"
+"\n"
+"Oznámení je zde:\n"
+"\n"
+"%3$s\n"
+"\n"
+"Stojí v něm:\n"
+"\n"
+"%4$s\n"
+"\n"
+"%5$smůžete odpověďet zde:\n"
+"\n"
+"%6$s\n"
+"\n"
+"Seznam všech @-odpovědí pro vás je zde:\n"
+"\n"
+"%7$s\n"
+"\n"
+"Váš,\n"
+"%2$s\n"
+"\n"
+"P.S. Tato upozornění můžete vypnout zde: %8$s\n"
 
 #: lib/mailbox.php:89
 msgid "Only the user can read their own mailboxes."
-msgstr ""
+msgstr "Pouze uživatel může přečíst své vlastní schránky."
 
 #: lib/mailbox.php:139
 msgid ""
 "You have no private messages. You can send private message to engage other "
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
+"Nemáte žádné soukromé zprávy. Můžete poslat soukromou zprávu, aby se "
+"zapojili ostatní uživatelé v rozhovoru. Lidé mohou posílat zprávy jen pro "
+"vaše oči."
 
 #: lib/mailbox.php:228 lib/noticelist.php:506
 msgid "from"
-msgstr ""
+msgstr "od"
+
+#: lib/mailhandler.php:37
+msgid "Could not parse message."
+msgstr "Nelze zpracovat zprávu."
 
 #: lib/mailhandler.php:42
 msgid "Not a registered user."
 msgstr "Není registrovaný uživatel."
 
+#: lib/mailhandler.php:46
+msgid "Sorry, that is not your incoming email address."
+msgstr "Je nám líto, toto není vaše příchozí e-mailová adresa."
+
 #: lib/mailhandler.php:50
 msgid "Sorry, no incoming email allowed."
-msgstr ""
+msgstr "Je nám líto, žádný příchozí e-mail není dovolen."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#: lib/mailhandler.php:228
+#, php-format
+msgid "Unsupported message type: %s"
+msgstr "Nepodporovaný typ zprávy: %s"
+
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
-msgstr ""
+msgstr "Nastala chyba v databázi při ukládání souboru. Prosím zkuste to znovu."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
+"Velkost uploadovaného souboru překračuje upload_max_filesize limit v php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
+"Velkost uploadovaného souboru překračuje MAX_FILE_SIZE limit, které bylo "
+"uvedeno v HTML formuláři."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
-msgstr ""
+msgstr "Nahrávaný soubor byl nahrán pouze částečně."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
-msgstr ""
+msgstr "Chybí dočasný adresář."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
-msgstr ""
+msgstr "Nepodařilo se zapsat soubor na disk."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
-msgstr ""
+msgstr "Nahrávání souboru zastaveno rozšířením PHP."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
-msgstr ""
+msgstr "Soubor překračuje kvótu uživatele."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
-msgstr ""
+msgstr "Soubor nemohl být přesunut do cílového adresáře."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
-msgstr "Nelze smazat oblíbenou položku."
+msgstr "Nelze určit typ MIME souboru."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
-msgstr ""
+msgstr "Pošlete přímou zprávu"
 
 #: lib/messageform.php:146
 msgid "To"
-msgstr ""
+msgstr "Komu:"
+
+#: lib/messageform.php:159 lib/noticeform.php:186
+msgid "Available characters"
+msgstr "Zbývá znaků"
 
 #: lib/messageform.php:178 lib/noticeform.php:237
 msgctxt "Send button for sending notice"
 msgid "Send"
-msgstr ""
+msgstr "Odeslat"
+
+#: lib/noticeform.php:160
+msgid "Send a notice"
+msgstr "Poslat oznámení"
 
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
-msgstr "Co se děje %s?"
+msgstr "Co se děje, %s?"
 
 #: lib/noticeform.php:193
 msgid "Attach"
-msgstr ""
+msgstr "Připojit"
 
 #: lib/noticeform.php:197
 msgid "Attach a file"
-msgstr ""
+msgstr "Přiložit soubor"
 
 #: lib/noticeform.php:213
 msgid "Share my location"
-msgstr ""
+msgstr "Sdílet mé umístění"
+
+#: lib/noticeform.php:216
+msgid "Do not share my location"
+msgstr "Nesdílet moje umístění"
 
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
+"Je nám líto, načítání vaší geo lokace trvá déle, než se očekávalo, zkuste to "
+"prosím znovu později"
+
+#. TRANS: Used in coordinates as abbreviation of north
+#: lib/noticelist.php:436
+msgid "N"
+msgstr "S"
 
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
-msgstr ""
+msgstr "J"
 
 #. TRANS: Used in coordinates as abbreviation of east
 #: lib/noticelist.php:440
 msgid "E"
-msgstr ""
+msgstr "V"
 
 #. TRANS: Used in coordinates as abbreviation of west
 #: lib/noticelist.php:442
 msgid "W"
-msgstr ""
+msgstr "Z"
 
 #: lib/noticelist.php:444
 #, php-format
 msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
-msgstr ""
+msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
 
 #: lib/noticelist.php:453
 msgid "at"
-msgstr ""
+msgstr "v"
 
 #: lib/noticelist.php:502
 msgid "web"
-msgstr ""
+msgstr "web"
+
+#: lib/noticelist.php:568
+msgid "in context"
+msgstr "v kontextu"
+
+#: lib/noticelist.php:603
+msgid "Repeated by"
+msgstr "Opakováno"
+
+#: lib/noticelist.php:630
+msgid "Reply to this notice"
+msgstr "Odpovědět na toto oznámení"
 
 #: lib/noticelist.php:631
 msgid "Reply"
-msgstr "Odpovědi"
+msgstr "Odpovědět"
+
+#: lib/noticelist.php:675
+msgid "Notice repeated"
+msgstr "Sdělení opakováno"
+
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr "Pošťuchovat tohoto uživatele"
 
 #: lib/nudgeform.php:128
 msgid "Nudge"
-msgstr ""
+msgstr "Pošťouchnout"
+
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr "Poslat pošťouchnutí tomuto uživateli"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Chyba při vkládání nového profilu"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Chyba při kládání obrázku"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Chyba při aktualizaci vzdáleného profilu"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Chyba při vkládaní vzdáleného profilu"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Odstranit toto oznámení"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Nelze vložit odebírání"
 
@@ -4588,28 +6890,29 @@ msgstr "Oblíbené"
 
 #: lib/personalgroupnav.php:125
 msgid "Inbox"
-msgstr ""
+msgstr "Doručená pošta"
 
 #: lib/personalgroupnav.php:126
 msgid "Your incoming messages"
-msgstr ""
+msgstr "Vaše příchozí zprávy"
 
 #: lib/personalgroupnav.php:130
 msgid "Outbox"
-msgstr ""
+msgstr "Odeslaná pošta"
 
 #: lib/personalgroupnav.php:131
 msgid "Your sent messages"
-msgstr ""
+msgstr "Vaše odeslané zprávy"
 
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
-msgstr ""
+msgstr "Značky v oznámeních %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
-msgstr ""
+msgstr "Neznámé"
 
 #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82
 msgid "Subscriptions"
@@ -4629,7 +6932,7 @@ msgstr "Všichni odběratelé"
 
 #: lib/profileaction.php:191
 msgid "User ID"
-msgstr ""
+msgstr "ID uživatele"
 
 #: lib/profileaction.php:196
 msgid "Member since"
@@ -4638,147 +6941,232 @@ msgstr "Členem od"
 #. TRANS: Average count of posts made per day since account registration
 #: lib/profileaction.php:235
 msgid "Daily average"
-msgstr ""
+msgstr "Denní průměr"
+
+#: lib/profileaction.php:264
+msgid "All groups"
+msgstr "Všechny skupiny"
 
 #: lib/profileformaction.php:123
 msgid "Unimplemented method."
-msgstr ""
+msgstr "Neimplementovaná metoda."
 
 #: lib/publicgroupnav.php:78
 msgid "Public"
 msgstr "Veřejné"
 
+#: lib/publicgroupnav.php:82
+msgid "User groups"
+msgstr "Skupin uživatel"
+
 #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
 msgid "Recent tags"
-msgstr ""
+msgstr "Nedávné značky"
+
+#: lib/publicgroupnav.php:88
+msgid "Featured"
+msgstr "Doporučení"
+
+#: lib/publicgroupnav.php:92
+msgid "Popular"
+msgstr "Populární"
 
 #: lib/redirectingaction.php:95
 msgid "No return-to arguments."
-msgstr ""
+msgstr "Chybí argument return-to."
+
+#: lib/repeatform.php:107
+msgid "Repeat this notice?"
+msgstr "Opakovat toto oznámení?"
 
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr "Ano"
 
+#: lib/repeatform.php:132
+msgid "Repeat this notice"
+msgstr "Opakovat toto oznámení"
+
+#: lib/revokeroleform.php:91
+#, php-format
+msgid "Revoke the \"%s\" role from this user"
+msgstr "Odebrat uživateli roli \"%s\""
+
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
-msgstr ""
+msgstr "Nenastaven uživatel pro jednouživatelský mód"
 
 #: lib/sandboxform.php:67
 msgid "Sandbox"
-msgstr ""
+msgstr "Sandbox"
 
 #: lib/sandboxform.php:78
 msgid "Sandbox this user"
-msgstr "Zablokovat tohoto uživatele"
+msgstr "Sandboxovat tohoto uživatele"
+
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
+msgid "Search site"
+msgstr "Prohledat stránky"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
-msgstr ""
+msgstr "Klíčová slova"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Hledat"
+msgstr ""
+
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
+msgid "Search help"
+msgstr "Nápověda k hledání"
+
+#: lib/searchgroupnav.php:80
+msgid "People"
+msgstr "Lidé"
 
 #: lib/searchgroupnav.php:81
 msgid "Find people on this site"
-msgstr ""
+msgstr "Najít lidi na této stránce"
 
 #: lib/searchgroupnav.php:83
 msgid "Find content of notices"
-msgstr ""
+msgstr "Najít v obsahu oznámení"
 
 #: lib/searchgroupnav.php:85
 msgid "Find groups on this site"
-msgstr ""
+msgstr "Najít skupiny na této stránce"
 
 #: lib/section.php:89
 msgid "Untitled section"
-msgstr ""
+msgstr "Oddíl bez názvu"
 
 #: lib/section.php:106
 msgid "More..."
-msgstr ""
+msgstr "Další…"
 
 #: lib/silenceform.php:67
 msgid "Silence"
-msgstr ""
+msgstr "Uťišit"
 
 #: lib/silenceform.php:78
 msgid "Silence this user"
-msgstr "Odstranit tohoto uživatele"
+msgstr "Utišit tohoto uživatele"
+
+#: lib/subgroupnav.php:83
+#, php-format
+msgid "People %s subscribes to"
+msgstr "Lidé ke kterým je %s přihlášen"
+
+#: lib/subgroupnav.php:91
+#, php-format
+msgid "People subscribed to %s"
+msgstr "Lidé přihlášení k %s"
 
 #: lib/subgroupnav.php:99
 #, php-format
 msgid "Groups %s is a member of"
-msgstr ""
+msgstr "Skupiny kterých je %s členem"
 
 #: lib/subgroupnav.php:105
 msgid "Invite"
-msgstr ""
+msgstr "Pozvat"
 
 #: lib/subgroupnav.php:106
 #, php-format
 msgid "Invite friends and colleagues to join you on %s"
-msgstr ""
+msgstr "Pozvěte přátele a kolegy, aby se k vám připojili na %s"
 
 #: lib/subscriberspeopleselftagcloudsection.php:48
 #: lib/subscriptionspeopleselftagcloudsection.php:48
 msgid "People Tagcloud as self-tagged"
-msgstr ""
+msgstr "Mrak štítků kterými se uživatelé sami označili"
 
 #: lib/subscriberspeopletagcloudsection.php:48
 #: lib/subscriptionspeopletagcloudsection.php:48
 msgid "People Tagcloud as tagged"
-msgstr ""
+msgstr "Mrak štítků kterými jsou uživatelé označeni"
+
+#: lib/tagcloudsection.php:56
+msgid "None"
+msgstr "Nic"
 
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
-msgstr ""
+msgstr "Tento server nemůže zpracovat nahrání tématu bez podpory ZIP."
 
 #: lib/themeuploader.php:58 lib/themeuploader.php:61
 msgid "The theme file is missing or the upload failed."
-msgstr ""
+msgstr "Chybí soubor tématu nebo se nepodařilo nahrání."
+
+#: lib/themeuploader.php:91 lib/themeuploader.php:102
+#: lib/themeuploader.php:278 lib/themeuploader.php:282
+#: lib/themeuploader.php:290 lib/themeuploader.php:297
+msgid "Failed saving theme."
+msgstr "Chyba při ukládání tématu."
 
 #: lib/themeuploader.php:147
 msgid "Invalid theme: bad directory structure."
-msgstr ""
+msgstr "Neplatné téma: špatná adresářová struktura."
 
 #: lib/themeuploader.php:166
 #, php-format
 msgid "Uploaded theme is too large; must be less than %d bytes uncompressed."
 msgstr ""
+"Nahrané téma je příliš velké, nezkomprimované musí být menší než %d bajtů."
 
 #: lib/themeuploader.php:178
 msgid "Invalid theme archive: missing file css/display.css"
-msgstr ""
+msgstr "Neplatný archiv tématu: chybí soubor css/display.css"
 
 #: lib/themeuploader.php:218
 msgid ""
 "Theme contains invalid file or folder name. Stick with ASCII letters, "
 "digits, underscore, and minus sign."
 msgstr ""
+"Téma obsahuje neplatné jméno souboru nebo složky. Zůstaňte u písmen ASCII, "
+"číslic, podtržítka a mínusu."
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Téma obsahuje nebezpečné přípony souborů, může být nebezpečné."
 
 #: lib/themeuploader.php:241
 #, php-format
 msgid "Theme contains file of type '.%s', which is not allowed."
-msgstr ""
+msgstr "Téma obsahuje soubor typu '.%s', což není povoleno."
+
+#: lib/themeuploader.php:259
+msgid "Error opening theme archive."
+msgstr "Chyba při otevírání archivu tématu."
 
 #: lib/topposterssection.php:74
 msgid "Top posters"
-msgstr ""
+msgstr "Nejlepší pisálci"
+
+#: lib/unsandboxform.php:69
+msgid "Unsandbox"
+msgstr "Odsandboxovat"
 
 #: lib/unsandboxform.php:80
 msgid "Unsandbox this user"
-msgstr "Zablokovat tohoto uživatele"
+msgstr "Odsandboxovat tohoto uživatele"
+
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr "Zrušit utišení"
 
 #: lib/unsilenceform.php:78
 msgid "Unsilence this user"
-msgstr "Odstranit tohoto uživatele"
+msgstr "Zrušit utišení tohoto uživatele"
+
+#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
+msgid "Unsubscribe from this user"
+msgstr "Odhlásit se od tohoto uživatele"
 
 #: lib/unsubscribeform.php:137
 msgid "Unsubscribe"
@@ -4794,15 +7182,19 @@ msgstr "Akce uživatele"
 
 #: lib/userprofile.php:237
 msgid "User deletion in progress..."
-msgstr ""
+msgstr "Probíhá mazání uživatele..."
+
+#: lib/userprofile.php:263
+msgid "Edit profile settings"
+msgstr "Upravit nastavení profilu"
 
 #: lib/userprofile.php:264
 msgid "Edit"
-msgstr ""
+msgstr "Editovat"
 
 #: lib/userprofile.php:287
 msgid "Send a direct message to this user"
-msgstr ""
+msgstr "Odeslat přímou zprávu tomuto uživateli"
 
 #: lib/userprofile.php:288
 msgid "Message"
@@ -4810,73 +7202,94 @@ msgstr "Zpráva"
 
 #: lib/userprofile.php:326
 msgid "Moderate"
-msgstr ""
+msgstr "Moderovat"
+
+#: lib/userprofile.php:364
+msgid "User role"
+msgstr "Role uživatele"
 
 #: lib/userprofile.php:366
 msgctxt "role"
 msgid "Administrator"
-msgstr ""
+msgstr "Administrátor"
 
 #: lib/userprofile.php:367
 msgctxt "role"
 msgid "Moderator"
-msgstr ""
+msgstr "Moderátor"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "před pár sekundami"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "asi před minutou"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "asi před %d minutami"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "asi před hodinou"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "asi před %d hodinami"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "asi přede dnem"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "před %d dny"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "asi před měsícem"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "asi před %d mesíci"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "asi před rokem"
 
+#: lib/webcolor.php:82
+#, php-format
+msgid "%s is not a valid color!"
+msgstr "%s není platná barva!"
+
 #: lib/webcolor.php:123
 #, php-format
 msgid "%s is not a valid color! Use 3 or 6 hex chars."
-msgstr ""
+msgstr "%s není platná barva! Použijte 3 nebo 6 hex znaků."
index 8061c776e906ab3a540793f5b647f0d895cdf625..488347944e282fae0694b7a497515460cd10adea 100644 (file)
@@ -1,27 +1,30 @@
-# Translation of StatusNet to Danish
+# Translation of StatusNet - Core to Danish (Dansk)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Mstenbaek
+# Author: Brion
+# Author: Mstenbaek
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:42+0000\n"
-"Language-Team: Danish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:30+0000\n"
+"Language-Team: Danish <http://translatewiki.net/wiki/Portal:da>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: da\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Adgang"
 
@@ -74,10 +77,10 @@ msgstr "Gem adgangsindstillinger"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Gem"
@@ -90,15 +93,15 @@ msgstr "Siden findes ikke"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -198,16 +201,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Opdateringer fra %1$s og venner på %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -222,21 +225,23 @@ msgstr "Opdateringer fra %1$s og venner på %2$s!"
 msgid "API method not found."
 msgstr "API metode ikke fundet."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Denne metode kræver en POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -244,27 +249,27 @@ msgstr ""
 "Du skal angive en parameter med navnet 'device', med værdien sat til en af "
 "følgende: sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Kunne ikke opdatere brugeren."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Brugeren har ingen profil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Kunne ikke gemme profilen."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -276,30 +281,30 @@ msgstr ""
 "Serveren var ikke i stand til at håndtere så meget POST data (%s bytes) på "
 "grund af sin nuværende konfiguration."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Kunne ikke gemme dine design indstillinger."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Kunne ikke opdatere dit design."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Du kan ikke blokere dig selv!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blokering af bruger mislykkedes"
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Ophæv blokering af bruger mislykkedes."
 
@@ -323,59 +328,59 @@ msgstr "Direkte beskeder til %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle direkte beskeder, sendt til %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Ingen besked tekst!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Det er for langt. Maksimal besked størrelse er %d tegn."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Modtager bruger ikke fundet"
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Kan ikke sende direkte beskeder til brugere, som ikke din ven."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Ingen status fundet med dette ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Denne status er allerede en favorit."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Kunne ikke oprette favorit."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Denne status er ikke en favorit."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Kunne ikke slette favorit."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Kunne ikke følge bruger: bruger profil ikke fundet."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Kunne ikke følge bruger: %s er allerede på din liste."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Kunne ikke stoppe følgeskab af bruger: Bruger ikke fundet."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Du kan ikke ophæve følgeskab til dig selv."
 
@@ -391,101 +396,101 @@ msgstr "Kunne ikke finde kilde bruger"
 msgid "Could not find target user."
 msgstr "Kunne ikke finde mål bruger."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Kaldenavn må kun have små bogstaver og tal og ingen mellemrum."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Kaldenavn allerede er i brug. Prøv med et andet."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ikke et gyldigt kaldenavn"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Hjemmesiden er ikke en gyldig URL adresse."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Fulde navn er for langt (max 255 tegn)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Beskrivelse er for lang (max %d tegn)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Placering er for lang (max 255 tegn)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Alt for mange aliaser! Maksimum %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ugyldigt alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" er allerede i brug. Prøv med et andet."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias kan ikke være det samme som kaldenavn."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Gruppen blev ikke fundet."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Du er allerede medlem af denne gruppe."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Du er blevet blokeret fra denne gruppe af administratoren."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Kunne ikke tilslutte bruger %1$s til gruppe %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Du er ikke medlem af denne gruppe."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -515,7 +520,7 @@ msgstr "%s's grupper"
 msgid "groups on %s"
 msgstr "grupper på %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Upload mislykkedes."
 
@@ -529,9 +534,9 @@ msgstr "Ugyldigt token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -576,8 +581,8 @@ msgstr "Anmodnings-token %s er blevet afvist og trukket tilbage."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -641,18 +646,18 @@ msgstr "Denne metode kræver en POST eller DELETE."
 msgid "You may not delete another user's status."
 msgstr "Du kan ikke slette en anden brugers status."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ingen sådan meddelelse."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Kan ikke gentage din egen meddelelse."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Allerede gentaget denne medelelse."
 
@@ -664,21 +669,21 @@ msgstr "Status slettet."
 msgid "No status with that ID found."
 msgstr "Ingen status med dette ID fundet."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Klienten programmet skal give en \"status\" parameter med en værdi."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Det er for langt. Maksimal besked størrelse er %d tegn."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Ikke fundet."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Max meddelelse størrelse er %d tegn, inklusiv vedlagt URL."
@@ -879,7 +884,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloker denne bruger"
 
@@ -921,11 +928,13 @@ msgstr "En liste over brugere blokeret fra at deltage i denne gruppe."
 msgid "Unblock user from group"
 msgstr "Ophæv blokering af bruger fra gruppe"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Fjern blokering"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Fjern blokeringen af denne bruger"
 
@@ -964,9 +973,9 @@ msgstr "Denne adresse er allerede blevet bekræftet."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -974,7 +983,7 @@ msgstr "Kunne ikke opdatere brugeren."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Kunne ikke slette e-mail bekræftelse."
@@ -1010,9 +1019,10 @@ msgstr "Program ikke fundet."
 msgid "You are not the owner of this application."
 msgstr "Du er ikke ejer af dette program."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Der var et problem med din session token."
 
@@ -1045,7 +1055,7 @@ msgstr "Slet dette program"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Ikke logget ind"
@@ -1108,7 +1118,6 @@ msgstr "Slet denne bruger"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Design"
 
@@ -1229,13 +1238,13 @@ msgstr "Gendan standard indstillinger"
 msgid "Reset back to default"
 msgstr "Nulstil til standard værdier"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Gem"
@@ -1391,7 +1400,7 @@ msgstr "Nuværende bekræftet email-adresse."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1409,22 +1418,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Afbryd"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-mail adresse, som \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1432,111 +1445,111 @@ msgstr "Tilføj"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Indgående e-mail"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Send e-mail til denne adresse for at skrive nye bekendtgørelser."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Opret en ny e-mail adresse til postering af beskeder; annullerer den gamle."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Ny"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Email indstillinger"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Send mig meddelelser om nye abonnementer via e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Send mig email, når nogen har tilføjet min meddelelse som en favorit."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Send mig email, når nogen sender mig en privat besked."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Send mig email, når nogen sender mig et \"@-svar\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Tillad venner at puffe mig og at sende mig en e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Jeg ønsker at sende meddelelser via e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Udgiv et MicroID til min email adresse."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Email indstillinger gemt."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Ingen e-mail-adresse."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Kan ikke normalisere denne e-mail adresse"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Ikke en gyldig e-mail adresse."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Det er allerede din e-mail adresse."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Denne e-mail adresse tilhører allerede en anden bruger."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Kunne ikke indsætte bekræftelseskode."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1548,50 +1561,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ingen afventende bekræftelse at annullere."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Det er den forkerte e-mail adresse."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Email bekræftelse aflyst."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Det er ikke din e-mail adresse."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "E-mail adressen blev fjernet."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ingen indkommende e-mail adresse."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kunne ikke opdatere bruger oplysninger."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Indgående e-mail adresse fjernet."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Ny indkommende e-mail adresse tilføjet."
 
@@ -1710,7 +1723,7 @@ msgstr "Kunne ikke konvertere anmodnings-token til et adgangs-token."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Fjerntjenesten bruger en ukendt version af 0MB protokol."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Fejl ved opdatering af fjernbetjeningsprofil."
 
@@ -1767,7 +1780,7 @@ msgstr "Bruger er allerede blokeret fra gruppen."
 msgid "User is not a member of group."
 msgstr "Brugeren er ikke medlem af gruppen."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloker bruger fra gruppe"
 
@@ -1849,39 +1862,49 @@ msgstr "Logo opdateret."
 msgid "Failed updating logo."
 msgstr "Mislykket ajourføring af logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s gruppe medlemmer"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s gruppe medlemmer, side %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "En liste over brugerne i denne gruppe."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Bloker"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Gør bruger til administrator af gruppen"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Gør til administrator"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Gør denne bruger til administrator"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2021,7 +2044,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2031,63 +2057,63 @@ msgstr ""
 "sørge for at tilføje %s til din venneliste i din IM klient eller på GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Chat indstillinger"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Send mig meddelelser via Jabber / GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Send en note, når min Jabber / GTalk status ændringer."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Send mig svar gennem Jabber / GTalk fra folk, jeg ikke abonnerer på."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Udgiv et MicroID for min Jabber / GTalk adresse."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Indstillinger gemt."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Ingen Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Kan ikke normalisere denne Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Ikke et gyldigt Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Det er allerede din Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID tilhører allerede en anden bruger."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2097,28 +2123,28 @@ msgstr ""
 "godkende %s for at sende beskeder til dig."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Det er den forkerte IM-adresse."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Kunne ikke slette IM bekræftelse."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM bekræftelse afbrudt."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Det er ikke din Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "IM-adresse blev fjernet."
 
@@ -2281,77 +2307,277 @@ msgstr ""
 "Med venlig hilsen,\n"
 "%2$s\n"
 
+#: actions/joingroup.php:60
+msgid "You must be logged in to join a group."
+msgstr "Du skal være logget ind for at deltage i en gruppe."
+
+#: actions/joingroup.php:88 actions/leavegroup.php:88
+msgid "No nickname or ID."
+msgstr "Ingen brugernavn eller ID."
+
+#: actions/joingroup.php:141
+#, php-format
+msgid "%1$s joined group %2$s"
+msgstr "%1$s blev medlem af gruppe n %2$s"
+
+#: actions/leavegroup.php:60
+msgid "You must be logged in to leave a group."
+msgstr "Du skal være logget på for at forlade en gruppe."
+
+#. TRANS: Error text shown when trying to leave an existing group the user is not a member of.
+#: actions/leavegroup.php:100 lib/command.php:389
+msgid "You are not a member of that group."
+msgstr "Du er ikke medlem af denne gruppe."
+
+#: actions/leavegroup.php:137
+#, php-format
+msgid "%1$s left group %2$s"
+msgstr "%1$s forlod gruppe %2$s"
+
+#: actions/login.php:102 actions/otp.php:62 actions/register.php:144
+msgid "Already logged in."
+msgstr "Allerede logget ind"
+
 #: actions/login.php:148
 msgid "Incorrect username or password."
-msgstr ""
+msgstr "Forkert brugernavn eller password."
+
+#: actions/login.php:154 actions/otp.php:120
+msgid "Error setting user. You are probably not authorized."
+msgstr "Fejl ved indstilling af bruger. Du har sandsynligvis ikke tilladelse."
+
+#: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79
+msgid "Login"
+msgstr "Log ind"
 
 #: actions/login.php:249
 msgid "Login to site"
-msgstr ""
+msgstr "Login til webstedet"
 
 #: actions/login.php:258 actions/register.php:485
 msgid "Remember me"
-msgstr ""
+msgstr "Husk mig"
 
 #: actions/login.php:259 actions/register.php:487
 msgid "Automatically login in the future; not for shared computers!"
-msgstr ""
+msgstr "Automatisk login fremover, ikke for computere, der deles!"
 
 #: actions/login.php:269
 msgid "Lost or forgotten password?"
-msgstr ""
+msgstr "Mistet eller glemt password?"
 
 #: actions/login.php:288
 msgid ""
 "For security reasons, please re-enter your user name and password before "
 "changing your settings."
 msgstr ""
+"Af sikkerhedsmæssige årsager bedes du indtaste dit brugernavn og din "
+"adgangskode før du ændrer dine indstillinger."
 
 #: actions/login.php:292
 msgid "Login with your username and password."
-msgstr ""
+msgstr "Log ind med dit brugernavn og password."
 
 #: actions/login.php:295
 #, php-format
 msgid ""
 "Don't have a username yet? [Register](%%action.register%%) a new account."
 msgstr ""
+"Har du ikke et brugernavn endnu? [Register] (%% action.register%%) en ny "
+"konto."
+
+#: actions/makeadmin.php:92
+msgid "Only an admin can make another user an admin."
+msgstr "Kun en admin kan gøre en anden bruger til admin."
+
+#: actions/makeadmin.php:96
+#, php-format
+msgid "%1$s is already an admin for group \"%2$s\"."
+msgstr "%1$s er allerede administrator for gruppen «%2$s»."
 
 #: actions/makeadmin.php:133
 #, php-format
 msgid "Can't get membership record for %1$s in group %2$s."
+msgstr "Kan ikke finde medlemskab oplysninger for %1$s i gruppen %2$s."
+
+#: actions/makeadmin.php:146
+#, php-format
+msgid "Can't make %1$s an admin for group %2$s."
+msgstr "Kan ikke gøre %1$s til admin for gruppen %2$s."
+
+#: actions/microsummary.php:69
+msgid "No current status."
 msgstr ""
 
+#: actions/newapplication.php:52
+msgid "New Application"
+msgstr "Nyt program"
+
+#: actions/newapplication.php:64
+msgid "You must be logged in to register an application."
+msgstr "Du skal være logget ind for at registrere et program."
+
+#: actions/newapplication.php:143
+msgid "Use this form to register a new application."
+msgstr "Brug denne formular til at registrere et nyt program."
+
+#: actions/newapplication.php:176
+msgid "Source URL is required."
+msgstr "Kilde-URL er påkrævet."
+
+#: actions/newapplication.php:258 actions/newapplication.php:267
+msgid "Could not create application."
+msgstr "Kunne ikke oprette programmet."
+
+#: actions/newgroup.php:53
+msgid "New group"
+msgstr "Ny gruppe"
+
+#: actions/newgroup.php:110
+msgid "Use this form to create a new group."
+msgstr "Brug denne formular for at oprette en ny gruppe."
+
+#: actions/newmessage.php:71 actions/newmessage.php:231
+msgid "New message"
+msgstr "Ny besked"
+
+#. TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other).
+#: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:502
+msgid "You can't send a message to this user."
+msgstr "Du kan ikke sende en besked til denne bruger."
+
+#. TRANS: Command exception text shown when trying to send a direct message to another user without content.
+#. TRANS: Command exception text shown when trying to reply to a notice without providing content for the reply.
+#: actions/newmessage.php:144 actions/newnotice.php:138 lib/command.php:481
+#: lib/command.php:582
+msgid "No content!"
+msgstr "Ingen indhold!"
+
+#: actions/newmessage.php:158
+msgid "No recipient specified."
+msgstr "Ingen modtager specificeret."
+
 #. TRANS: Error text shown when trying to send a direct message to self.
 #: actions/newmessage.php:164 lib/command.php:506
 msgid ""
 "Don't send a message to yourself; just say it to yourself quietly instead."
 msgstr ""
+"Du kan ikke sende en besked til dig selv, bare sig det stille til dig selv i "
+"stedet."
+
+#: actions/newmessage.php:181
+msgid "Message sent"
+msgstr "Beskeden er sendt"
+
+#. TRANS: Message given have sent a direct message to another user.
+#. TRANS: %s is the name of the other user.
+#: actions/newmessage.php:185 lib/command.php:514
+#, php-format
+msgid "Direct message to %s sent."
+msgstr "Direkte besked til %s sendt."
 
 #: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189
 msgid "Ajax Error"
+msgstr "Ajax Fejl"
+
+#: actions/newnotice.php:69
+msgid "New notice"
+msgstr "Ny meddelelse"
+
+#: actions/newnotice.php:227
+msgid "Notice posted"
+msgstr "Meddelelse gemt"
+
+#: 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 ""
+"Søg efter indhold af meddelelser på %%site.name%%. Separer søgetermer med "
+"mellemrum, de skal være 3 karakterer eller derover."
+
+#: actions/noticesearch.php:78
+msgid "Text search"
+msgstr "Tekst søgning"
+
+#: actions/noticesearch.php:91
+#, php-format
+msgid "Search results for \"%1$s\" on %2$s"
+msgstr "Søgeresultater for \"%1$s\" på %2$s"
+
+#: actions/noticesearch.php:121
+#, php-format
+msgid ""
+"Be the first to [post on this topic](%%%%action.newnotice%%%%?"
+"status_textarea=%s)!"
+msgstr ""
+"Vær den første til at [skrive om dette emne] (%%%%action.newnotice%%%%?"
+"status_textarea=%s) !"
+
+#: actions/noticesearch.php:124
+#, php-format
+msgid ""
+"Why not [register an account](%%%%action.register%%%%) and be the first to "
+"[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
+"Hvorfor ikke [registrere en konto] (%%%%action.register%%%%) og vær den "
+"første til at [skrive om dette emne ] (%%%%action.newnotice%%%%?"
+"status_textarea=%s) !"
+
+#: actions/noticesearchrss.php:96
+#, php-format
+msgid "Updates with \"%s\""
+msgstr "Opdateringer med \"%s\""
+
+#: actions/noticesearchrss.php:98
+#, php-format
+msgid "Updates matching search term \"%1$s\" on %2$s!"
+msgstr "Opdateringer matcher søgeordet \"%1$s\" på %2$s!"
 
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
+"Denne bruger tillader ikke at blive puffet, eller har ikke bekræftet eller "
+"indstillet sin e-mail endnu."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
-msgstr ""
+msgstr "Puf sendt"
 
 #: actions/nudge.php:97
 msgid "Nudge sent!"
-msgstr ""
+msgstr "Puf sendt!"
+
+#: actions/oauthappssettings.php:59
+msgid "You must be logged in to list your applications."
+msgstr "Du skal være logget ind for at liste dine applikationer."
+
+#: actions/oauthappssettings.php:74
+msgid "OAuth applications"
+msgstr "OAuth programmer"
 
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
-msgstr ""
+msgstr "Programmer, du har registreret"
+
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr "Du har ikke registreret nogen programmer endnu."
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr "Tilsluttede programmer"
 
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
-msgstr ""
+msgstr "Du har tilladt følgende programmer at få adgang din konto."
+
+#: actions/oauthconnectionssettings.php:175
+msgid "You are not a user of that application."
+msgstr "Du er ikke bruger af dette program."
 
 #: actions/oauthconnectionssettings.php:186
 #, php-format
@@ -2378,6 +2604,10 @@ msgstr ""
 msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
+#: actions/opensearch.php:64
+msgid "People Search"
+msgstr ""
+
 #: actions/othersettings.php:71
 msgid "Manage various other options."
 msgstr ""
@@ -2410,14 +2640,45 @@ msgstr ""
 msgid "Login token expired."
 msgstr ""
 
+#: actions/outbox.php:58
+#, php-format
+msgid "Outbox for %1$s - page %2$d"
+msgstr ""
+
+#: actions/outbox.php:61
+#, php-format
+msgid "Outbox for %s"
+msgstr ""
+
+#: actions/outbox.php:116
+msgid "This is your outbox, which lists private messages you have sent."
+msgstr ""
+
+#: actions/passwordsettings.php:104
+msgid "Old password"
+msgstr "Gammel adgangskode"
+
+#: actions/passwordsettings.php:108 actions/recoverpassword.php:235
+msgid "New password"
+msgstr "Ny adgangskode"
+
 #: actions/passwordsettings.php:109
 msgid "6 or more characters"
 msgstr ""
 
+#: actions/passwordsettings.php:112 actions/recoverpassword.php:239
+#: actions/register.php:440
+msgid "Confirm"
+msgstr "Bekræft"
+
 #: actions/passwordsettings.php:113 actions/recoverpassword.php:240
 msgid "Same as password above"
 msgstr ""
 
+#: actions/passwordsettings.php:117
+msgid "Change"
+msgstr "Ændre"
+
 #: actions/passwordsettings.php:154 actions/register.php:237
 msgid "Password must be 6 or more characters."
 msgstr ""
@@ -2439,7 +2700,7 @@ msgid "Can't save new password."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -2488,7 +2749,7 @@ msgstr ""
 
 #: actions/pathsadminpanel.php:259
 msgid "Theme"
-msgstr ""
+msgstr "Tema"
 
 #: actions/pathsadminpanel.php:264
 msgid "Theme server"
@@ -2508,11 +2769,11 @@ msgstr ""
 
 #: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202
 msgid "Never"
-msgstr ""
+msgstr "Aldrig"
 
 #: actions/pathsadminpanel.php:325
 msgid "Always"
-msgstr ""
+msgstr "Altid"
 
 #: actions/pathsadminpanel.php:329
 msgid "Use SSL"
@@ -2534,6 +2795,17 @@ msgstr ""
 msgid "Save paths"
 msgstr ""
 
+#: 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 ""
+
+#: actions/peoplesearch.php:58
+msgid "People search"
+msgstr ""
+
 #: actions/postnotice.php:101
 #, php-format
 msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’."
@@ -2556,9 +2828,9 @@ msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
-msgstr ""
+msgstr "Hjemmeside"
 
 #: actions/profilesettings.php:117 actions/register.php:462
 msgid "URL of your homepage, blog, or profile on another site"
@@ -2577,6 +2849,13 @@ msgstr ""
 msgid "Bio"
 msgstr ""
 
+#: actions/profilesettings.php:132 actions/register.php:478
+#: actions/showgroup.php:265 actions/tagother.php:112
+#: actions/userauthorization.php:166 lib/groupeditform.php:177
+#: lib/userprofile.php:165
+msgid "Location"
+msgstr "Lokation"
+
 #: actions/profilesettings.php:134 actions/register.php:480
 msgid "Where you are, like \"City, State (or Region), Country\""
 msgstr ""
@@ -2699,6 +2978,10 @@ msgstr ""
 msgid "Your nickname on this server, or your registered email address."
 msgstr ""
 
+#: actions/recoverpassword.php:208
+msgid "Reset password"
+msgstr "Nulstil adgangskode"
+
 #: actions/recoverpassword.php:209
 msgid "Recover password"
 msgstr ""
@@ -2717,7 +3000,7 @@ msgstr ""
 
 #: actions/recoverpassword.php:243
 msgid "Reset"
-msgstr ""
+msgstr "Afbryd"
 
 #: actions/recoverpassword.php:282
 msgid "No user with that email address or username."
@@ -2888,6 +3171,11 @@ msgstr ""
 msgid "Only logged-in users can repeat notices."
 msgstr ""
 
+#: actions/replies.php:128
+#, php-format
+msgid "Replies to %1$s, page %2$d"
+msgstr ""
+
 #: actions/replies.php:204
 #, php-format
 msgid ""
@@ -2895,9 +3183,16 @@ msgid ""
 "[join groups](%%action.groups%%)."
 msgstr ""
 
+#: actions/replies.php:206
+#, php-format
+msgid ""
+"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
+"newnotice%%%%?status_textarea=%3$s)."
+msgstr ""
+
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2918,7 +3213,7 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
@@ -2988,7 +3283,7 @@ msgstr ""
 msgid "Aliases"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr ""
 
@@ -3025,16 +3320,32 @@ msgid ""
 "their life and interests. "
 msgstr ""
 
+#: actions/showgroup.php:489
+msgid "Admins"
+msgstr ""
+
 #: actions/showmessage.php:98
 msgid "Only the sender and recipient may read this message."
 msgstr ""
 
+#: actions/showstream.php:148
+#, php-format
+msgid "FOAF for %s"
+msgstr ""
+
 #: actions/showstream.php:205
 msgid ""
 "Seen anything interesting recently? You haven't posted any notices yet, now "
 "would be a good time to start :)"
 msgstr ""
 
+#: actions/showstream.php:207
+#, php-format
+msgid ""
+"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
+"%?status_textarea=%2$s)."
+msgstr ""
+
 #: actions/showstream.php:243
 #, php-format
 msgid ""
@@ -3198,7 +3509,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3308,6 +3619,10 @@ msgstr ""
 msgid "%s is not listening to anyone."
 msgstr ""
 
+#: actions/subscriptions.php:208
+msgid "Jabber"
+msgstr ""
+
 #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115
 msgid "SMS"
 msgstr ""
@@ -3388,6 +3703,14 @@ msgstr ""
 msgid "Default subscription"
 msgstr ""
 
+#: actions/useradminpanel.php:242
+msgid "Automatically subscribe new users to this user."
+msgstr ""
+
+#: actions/useradminpanel.php:256
+msgid "Invitations enabled"
+msgstr ""
+
 #: actions/useradminpanel.php:258
 msgid "Whether to allow users to invite new users."
 msgstr ""
@@ -3549,6 +3872,11 @@ msgstr ""
 msgid "A file this large would exceed your monthly quota of %d bytes."
 msgstr ""
 
+#. TRANS: Exception thrown when trying to leave a group fails.
+#: classes/Group_member.php:63
+msgid "Group leave failed."
+msgstr ""
+
 #. TRANS: Exception thrown when database name or Data Source Name could not be found.
 #: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
@@ -3596,15 +3924,22 @@ msgid "Problem saving notice."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
+#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
+#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
+#: classes/Notice.php:1759
+#, php-format
+msgid "RT @%1$s %2$s"
+msgstr ""
+
 #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
 #: classes/Profile.php:737
@@ -3656,6 +3991,12 @@ msgstr ""
 msgid "Other"
 msgstr ""
 
+#. TRANS: Page title. %1$s is the title, %2$s is the site name.
+#: lib/action.php:148
+#, php-format
+msgid "%1$s - %2$s"
+msgstr ""
+
 #. TRANS: Page title for a page without a title set.
 #: lib/action.php:164
 msgid "Untitled page"
@@ -3672,6 +4013,12 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
+#. TRANS: Main menu option when logged in for access to personal profile and friends timeline
+#: lib/action.php:458
+msgctxt "MENU"
+msgid "Personal"
+msgstr ""
+
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
@@ -3690,6 +4037,26 @@ msgctxt "TOOLTIP"
 msgid "Change site configuration"
 msgstr ""
 
+#. TRANS: Main menu option when logged in and site admin for access to site configuration
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
+msgctxt "MENU"
+msgid "Admin"
+msgstr ""
+
+#. TRANS: Tooltip for main menu option "Invite"
+#: lib/action.php:478
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Invite friends and colleagues to join you on %s"
+msgstr ""
+
+#. TRANS: Tooltip for main menu option "Register"
+#: lib/action.php:495
+msgctxt "TOOLTIP"
+msgid "Create an account"
+msgstr ""
+
 #. TRANS: Tooltip for main menu option "Help"
 #: lib/action.php:507
 msgctxt "TOOLTIP"
@@ -3747,7 +4114,10 @@ msgid "StatusNet software license"
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -3755,13 +4125,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3770,44 +4143,45 @@ msgid ""
 msgstr ""
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr ""
 
@@ -3816,121 +4190,155 @@ msgstr ""
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr ""
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
@@ -3940,7 +4348,8 @@ msgstr ""
 msgid "Author"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
@@ -3952,10 +4361,40 @@ msgstr ""
 msgid "Password changing is not allowed"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloker"
+
 #: lib/channel.php:229 lib/mailhandler.php:142
 msgid "Command complete"
 msgstr ""
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr ""
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr ""
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr ""
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -3985,6 +4424,20 @@ msgid ""
 "Notices: %3$s"
 msgstr ""
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4075,6 +4528,13 @@ msgstr ""
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4111,15 +4571,7 @@ msgstr ""
 msgid "No one is subscribed to you."
 msgstr ""
 
-#. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
-#. TRANS: hard coded space and a comma separated list of subscribing users.
-#: lib/command.php:863
-msgid "This person is subscribed to you:"
-msgid_plural "These people are subscribed to you:"
-msgstr[0] ""
-msgstr[1] ""
-
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4262,17 +4714,75 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4290,7 +4800,8 @@ msgstr ""
 msgid "This page is not available in a media type you accept"
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -4350,6 +4861,12 @@ msgid ""
 "%s\n"
 msgstr ""
 
+#. TRANS: Subject of new-subscriber notification e-mail
+#: lib/mail.php:243
+#, php-format
+msgid "%1$s is now listening to your notices on %2$s."
+msgstr ""
+
 #: lib/mail.php:248
 #, php-format
 msgid ""
@@ -4530,52 +5047,69 @@ msgstr ""
 msgid "Not a registered user."
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
@@ -4586,6 +5120,11 @@ msgstr ""
 msgid "Available characters"
 msgstr ""
 
+#: lib/messageform.php:178 lib/noticeform.php:237
+msgctxt "Send button for sending notice"
+msgid "Send"
+msgstr ""
+
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
@@ -4653,8 +5192,25 @@ msgstr ""
 msgid "Nudge"
 msgstr ""
 
+#: lib/oauthstore.php:283
+msgid "Error inserting new profile."
+msgstr ""
+
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
+msgid "Error inserting avatar."
+msgstr ""
+
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/personalgroupnav.php:99
+msgid "Personal"
 msgstr ""
 
 #: lib/personalgroupnav.php:104
@@ -4674,7 +5230,8 @@ msgstr ""
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -4727,15 +5284,24 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:162
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
+msgid "Search"
+msgstr ""
+
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr ""
 
@@ -4773,6 +5339,11 @@ msgstr ""
 msgid "People subscribed to %s"
 msgstr ""
 
+#: lib/subgroupnav.php:106
+#, php-format
+msgid "Invite friends and colleagues to join you on %s"
+msgstr ""
+
 #: lib/subscriberspeopleselftagcloudsection.php:48
 #: lib/subscriptionspeopleselftagcloudsection.php:48
 msgid "People Tagcloud as self-tagged"
@@ -4866,56 +5437,64 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr ""
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr ""
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr ""
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr ""
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr ""
 
index 5f4bef99150d8b814b2f11fa5b58f47b91180363..5664d6cd515742894cc37934ad7d4173a89c30fb 100644 (file)
@@ -1,37 +1,39 @@
-# Translation of StatusNet to German
+# Translation of StatusNet - Core to German (Deutsch)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Apmon
-# Author@translatewiki.net: Bavatar
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Kghbln
-# Author@translatewiki.net: Lutzgh
-# Author@translatewiki.net: March
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Michael
-# Author@translatewiki.net: Michi
-# Author@translatewiki.net: The Evil IP address
-# Author@translatewiki.net: Umherirrender
+# Author: Apmon
+# Author: Bavatar
+# Author: Brion
+# Author: Kghbln
+# Author: Lutzgh
+# Author: March
+# Author: McDutchie
+# Author: Michael
+# Author: Michi
+# Author: The Evil IP address
+# Author: Umherirrender
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:46+0000\n"
-"Language-Team: German\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:32+0000\n"
+"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: de\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Zugang"
 
@@ -85,10 +87,10 @@ msgstr "Zugangs-Einstellungen speichern"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Speichern"
@@ -101,15 +103,15 @@ msgstr "Seite nicht vorhanden"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -209,16 +211,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -233,21 +235,23 @@ msgstr "Aktualisierungen von %1$s und Freunden auf %2$s!"
 msgid "API method not found."
 msgstr "API-Methode nicht gefunden."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Diese Methode benötigt ein POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -255,27 +259,27 @@ msgstr ""
 "Du musst einen Parameter mit Namen „device“ übergeben. Mögliche Werte sind: "
 "sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Konnte Benutzerdaten nicht aktualisieren."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Benutzer hat kein Profil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Konnte Profil nicht speichern."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -287,30 +291,30 @@ msgstr ""
 "Der Server kann so große POST Abfragen (%s bytes) aufgrund der Konfiguration "
 "nicht verarbeiten."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Konnte Twitter-Einstellungen nicht speichern."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Konnte Benutzerdesign nicht aktualisieren."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Du kannst dich nicht selbst sperren!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blockieren des Benutzers fehlgeschlagen."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Freigeben des Benutzers fehlgeschlagen."
 
@@ -334,62 +338,62 @@ msgstr "Direkte Nachrichten an %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle an %s gesendeten direkten Nachrichten"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Fehlender Nachrichtentext!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 "Die Nachricht ist zu lang. Die maximale Nachrichtenlänge ist %d Zeichen."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Empfänger nicht gefunden."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Es können keine direkten Nachrichten an Benutzer geschickt werden mit denen "
 "du nicht befreundet bist."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Keine Nachricht mit dieser ID gefunden."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Diese Nachricht ist bereits ein Favorit!"
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Konnte keinen Favoriten erstellen."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Diese Nachricht ist kein Favorit!"
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Konnte Favoriten nicht löschen."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Konnte Nutzer nicht folgen: Profil nicht gefunden"
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Kann Nutzer %s nicht folgen: schon in deiner Kontaktliste eingetragen"
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Kann Benutzer nicht entfolgen: Benutzer nicht gefunden."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Du kannst dich nicht selbst entfolgen!"
 
@@ -405,27 +409,27 @@ msgstr "Konnte öffentlichen Stream nicht abrufen."
 msgid "Could not find target user."
 msgstr "Konnte keine Statusmeldungen finden."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
-"Der Nutzername darf nur aus Kleinbuchstaben und Ziffern bestehen. "
-"Leerzeichen sind nicht erlaubt."
+"Der Nutzername darf nur aus Kleinbuchstaben und Zahlen bestehen. Leerzeichen "
+"sind nicht erlaubt."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ungültiger Nutzername."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
@@ -433,76 +437,76 @@ msgid "Homepage is not a valid URL."
 msgstr ""
 "Homepage ist keine gültige URL. URLs müssen ein Präfix wie http enthalten."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Zu viele Pseudonyme! Maximale Anzahl ist %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ungültiges Alias: „%s“"
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Nutzername „%s“ wird bereits verwendet. Suche dir einen anderen aus."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias kann nicht das gleiche wie der Spitzname sein."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Gruppe nicht gefunden!"
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Du bist bereits Mitglied dieser Gruppe"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Der Admin dieser Gruppe hat dich gesperrt."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Konnte Benutzer %1$s nicht der Gruppe %2$s hinzufügen."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Du bist kein Mitglied dieser Gruppe."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -532,7 +536,7 @@ msgstr "%s Gruppen"
 msgid "groups on %s"
 msgstr "Gruppen von %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Hochladen fehlgeschlagen."
 
@@ -546,9 +550,9 @@ msgstr "Ungültiges Token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -593,8 +597,8 @@ msgstr "Die Anfrage %s wurde gesperrt und widerrufen."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -658,18 +662,18 @@ msgstr "Diese Methode benötigt ein POST oder DELETE."
 msgid "You may not delete another user's status."
 msgstr "Du kannst den Status eines anderen Benutzers nicht löschen."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Unbekannte Nachricht."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Du kannst deine eigenen Nachrichten nicht wiederholen."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Nachricht bereits wiederholt"
 
@@ -681,24 +685,24 @@ msgstr "Status gelöscht."
 msgid "No status with that ID found."
 msgstr "Keine Nachricht mit dieser ID gefunden."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 "Der Client muss einen „status“-Parameter mit einen Wert zur Verfügung "
 "stellen."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr ""
 "Das war zu lang. Die Länge einer Nachricht ist auf %d Zeichen beschränkt."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Nicht gefunden."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -902,7 +906,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Diesen Benutzer blockieren"
 
@@ -944,11 +950,13 @@ msgstr "Liste der blockierten Benutzer in dieser Gruppe."
 msgid "Unblock user from group"
 msgstr "Sperrung des Nutzers für die Gruppe aufheben."
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Freigeben"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Diesen Benutzer freigeben"
 
@@ -987,9 +995,9 @@ msgstr "Diese Adresse wurde bereits bestätigt."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -997,7 +1005,7 @@ msgstr "Konnte Benutzerdaten nicht aktualisieren."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Konnte E-Mail-Bestätigung nicht löschen."
@@ -1033,9 +1041,10 @@ msgstr "Programm nicht gefunden."
 msgid "You are not the owner of this application."
 msgstr "Du bist Besitzer dieses Programms"
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Es gab ein Problem mit deinem Sessiontoken."
 
@@ -1068,7 +1077,7 @@ msgstr "Programm löschen"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Nicht angemeldet."
@@ -1131,7 +1140,6 @@ msgstr "Diesen Benutzer löschen"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Design"
 
@@ -1252,13 +1260,13 @@ msgstr "Standard-Design wiederherstellen"
 msgid "Reset back to default"
 msgstr "Standard wiederherstellen"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Speichern"
@@ -1415,7 +1423,7 @@ msgstr "Aktuelle bestätigte E-Mail-Adresse."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1433,22 +1441,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-Mail-Adresse, beispielsweise „Benutzername@example.org“"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1456,19 +1468,19 @@ msgstr "Hinzufügen"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Eingehende E-Mail"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Schicke eine E-Mail an diese Adresse um eine Nachricht zu posten."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Neue E-Mail-Adresse für Postings aktivieren; die alte wird automatisch "
@@ -1476,94 +1488,94 @@ msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Neu"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-Mail Einstellungen"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Informiere mich über neues Abonnements per E-Mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Mir eine E-Mail schicken, wenn jemand meine Nachricht als Favorit speichert."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "Mir eine E-Mail schicken, wenn mir jemand eine private Nachricht schickt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Schick mir eine E-Mail, wenn mir jemand eine @Nachricht schickt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Erlaube Freunden mich zu stupsen und mir E-Mails zu senden."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Ich möchte Einträge per E-Mail veröffentlichen."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "MicroID für meine E-Mail-Adresse veröffentlichen."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "E-Mail-Einstellungen gespeichert."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Keine E-Mail-Adresse."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Konnte diese E-Mail-Adresse nicht normalisieren"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Ungültige E-Mail-Adresse."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Dies ist bereits deine E-Mail-Adresse."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Diese E-Mail-Adresse gehört einem anderen Nutzer."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Konnte keinen Bestätigungscode einfügen."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1575,50 +1587,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Keine ausstehende Bestätigung, die abgebrochen werden kann."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Dies ist die falsche E-Mail Adresse"
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "E-Mail-Bestätigung abgebrochen."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Dies ist nicht deine E-Mail-Adresse."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Die E-Mail-Adresse wurde entfernt."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Keine Eingangs-E-Mail-Adresse."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Konnte Nutzereintrag nicht schreiben"
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Eingehende E-Mail-Adresse entfernt"
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Neue Eingangs-E-Mail-Adresse hinzugefügt."
 
@@ -1737,7 +1749,7 @@ msgstr "Konnte Anfrage-Token nicht in Zugriffs-Token umwandeln."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Service nutzt unbekannte OMB-Protokollversion."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Fehler beim Aktualisieren des entfernten Profils."
 
@@ -1794,7 +1806,7 @@ msgstr "Dieser Nutzer ist bereits von der Gruppe gesperrt"
 msgid "User is not a member of group."
 msgstr "Nutzer ist kein Mitglied dieser Gruppe."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Benutzerzugang zu der Gruppe blockieren"
 
@@ -1876,39 +1888,49 @@ msgstr "Logo aktualisiert."
 msgid "Failed updating logo."
 msgstr "Aktualisierung des Logos fehlgeschlagen."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s Gruppen-Mitglieder"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s Gruppen-Mitglieder, Seite %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Liste der Benutzer in dieser Gruppe."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Admin"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Blockieren"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Benutzer zu einem Admin dieser Gruppe ernennen"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Zum Admin ernennen"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Diesen Benutzer zu einem Admin ernennen"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2049,7 +2071,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2060,65 +2085,65 @@ msgstr ""
 "Programm oder GTalk aufgenommen hast."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM-Einstellungen"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Schicke mir Nachrichten mittels Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Schicke eine Nachricht, wenn sich mein Jabber/GTalk-Status verändert."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Schicke mir Antworten von Leuten, die ich nicht abonniert habe, mit Jabber/"
 "GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "MicroID für meine Jabber/GTalk-Adresse veröffentlichen."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Einstellungen gesichert."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Keine Jabber-ID"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Konnte diese Jabber-ID nicht normalisieren"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Ungültige Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Diese Jabber-ID hast du schon angegeben."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Diese Jabber-ID wird bereits von einem anderen Benutzer verwendet."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2128,28 +2153,28 @@ msgstr ""
 "hast. Du musst zulassen, dass %s dir Nachrichten schicken darf."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Das ist die falsche IM-Adresse."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Konnte die IM-Bestätigung nicht löschen."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM-Bestätigung abgebrochen."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Dies ist nicht deine Jabber-ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Die IM-Adresse wurde entfernt."
 
@@ -2628,8 +2653,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Bitte nur %s URLs über einfaches HTTP."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Kein unterstütztes Datenformat."
 
@@ -2770,7 +2795,7 @@ msgid "Password saved."
 msgstr "Passwort gespeichert."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Pfad"
 
@@ -2974,7 +2999,7 @@ msgstr "Profilinformation"
 
 #: actions/profilesettings.php:108 lib/groupeditform.php:154
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
-msgstr "1-64 Kleinbuchstaben oder Ziffern, keine Sonder- oder Leerzeichen"
+msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen"
 
 #: actions/profilesettings.php:111 actions/register.php:455
 #: actions/showgroup.php:256 actions/tagother.php:104
@@ -2984,7 +3009,7 @@ msgstr "Vollständiger Name"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Homepage"
 
@@ -3092,7 +3117,7 @@ msgid "Couldn't save tags."
 msgstr "Konnte Tags nicht speichern."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Einstellungen gespeichert."
 
@@ -3347,7 +3372,7 @@ msgstr "Registrieren"
 
 #: actions/register.php:142
 msgid "Registration not allowed."
-msgstr "Registrierung nicht gestattet"
+msgstr "Registrierung nicht erlaubt"
 
 #: actions/register.php:205
 msgid "You can't register if you don't agree to the license."
@@ -3373,8 +3398,7 @@ msgstr ""
 #: actions/register.php:432
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
 msgstr ""
-"1-64 kleingeschriebene Buchstaben oder Zahlen, keine Satz- oder Leerzeichen. "
-"Pflicht."
+"1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen. Pflicht."
 
 #: actions/register.php:437
 msgid "6 or more characters. Required."
@@ -3635,7 +3659,7 @@ msgstr "Benutzer ist schon blockiert."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sitzung"
 
@@ -3673,24 +3697,24 @@ msgid "Application profile"
 msgstr "Anwendungsprofil"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Symbol"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Name"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisation"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beschreibung"
 
@@ -3805,7 +3829,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Dies ist ein Weg, Dinge zu teilen, die dir gefallen."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s Gruppe"
@@ -3857,7 +3881,7 @@ msgstr "Nachrichtenfeed der Gruppe %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Postausgang von %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Mitglieder"
 
@@ -4314,7 +4338,7 @@ msgstr "Kein Code eingegeben"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Snapshots"
 
@@ -5008,19 +5032,19 @@ msgid "Problem saving notice."
 msgstr "Problem bei Speichern der Nachricht."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 "Der Methode saveKnownGroups wurde ein schlechter Wert zur Verfügung gestellt"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problem bei Speichern der Nachricht."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5054,7 +5078,7 @@ msgid "Unable to save tag."
 msgstr "Konnte Seitenbenachrichtigung nicht speichern."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Dieser Benutzer erlaubt dir nicht ihn zu abonnieren."
 
@@ -5197,7 +5221,8 @@ msgid "Change site configuration"
 msgstr "Seiteneinstellung ändern"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrator"
@@ -5231,7 +5256,7 @@ msgstr "Abmelden"
 #: lib/action.php:495
 msgctxt "TOOLTIP"
 msgid "Create an account"
-msgstr "Neues Konto erstellen"
+msgstr "Neues Benutzerkonto erstellen"
 
 #. TRANS: Main menu option when not logged in to register a new account
 #: lib/action.php:498
@@ -5274,7 +5299,7 @@ msgstr "Suchen"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Seitennachricht"
 
@@ -5338,7 +5363,10 @@ msgid "StatusNet software license"
 msgstr "StatusNet-Software-Lizenz"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5348,13 +5376,16 @@ msgstr ""
 "site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** ist ein Microbloggingdienst."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5366,20 +5397,20 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "StatusNet-Software-Lizenz"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Inhalte und Daten von %1$s sind privat und vertraulich."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5387,32 +5418,33 @@ msgstr ""
 "vorbehalten."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Urheberrecht von Inhalt und Daten liegt bei den Beteiligten. Alle Rechte "
 "vorbehalten."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Alle Inhalte und Daten von %1$s sind unter der %2$s Lizenz verfügbar."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Seitenerstellung"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Später"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Vorher"
 
@@ -5421,207 +5453,242 @@ msgstr "Vorher"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Root-Element eines Feeds erwartet, aber ganzes XML-Dokument erhalten."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Fremdinhalt kann noch nicht eingebunden werden."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Kann eingebundenen XML-Inhalt nicht verarbeiten."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Eingebundener Base64-Inhalt kann noch nicht verarbeitet werden."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Du kannst keine Änderungen an dieser Seite vornehmen."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Änderungen an dieser Seite sind nicht erlaubt."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() noch nicht implementiert."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() noch nicht implementiert."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Konnte die Design-Einstellungen nicht löschen."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Basis-Seiteneinstellungen"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Seite"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Motiv-Konfiguration"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Design"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Benutzereinstellung"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Benutzer"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Zugangskonfiguration"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Pfadkonfiguration"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Sitzungseinstellungen"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Seitennachricht bearbeiten"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Snapshot-Konfiguration"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr "API-Ressource erfordert lesen/schreib Zugriff; du hast nur Leserechte."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Programm bearbeiten"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Programmsymbol"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Beschreibe dein Programm in %d Zeichen"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Beschreibe dein Programm"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "Adresse der Homepage dieses Programms"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Quelladresse"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Für diese Anwendung verantwortliche Organisation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "Homepage der Gruppe oder des Themas"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "aufzurufende Adresse nach der Authentifizierung"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Browser"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Arbeitsfläche"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Typ der Anwendung, Browser oder Arbeitsfläche"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Schreibgeschützt"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lese/Schreibzugriff"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Standardeinstellung dieses Programms: Schreibgeschützt oder Lese/"
 "Schreibzugriff"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Abbrechen"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "Lese/Schreibzugriff"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "Schreibgeschützt"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Genehmigte %1$s - „%2$s“ Zugriff."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Widerrufen"
@@ -5641,11 +5708,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Anbieter"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Nachrichten in denen dieser Anhang erscheint"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Stichworte für diesen Anhang"
 
@@ -5657,6 +5726,11 @@ msgstr "Passwort konnte nicht geändert werden"
 msgid "Password changing is not allowed"
 msgstr "Passwort kann nicht geändert werden"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blockieren"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Befehl-Ergebnisse"
@@ -5907,7 +5981,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Du hast niemanden abonniert."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5922,7 +5996,7 @@ msgid "No one is subscribed to you."
 msgstr "Niemand hat dich abonniert."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5937,7 +6011,7 @@ msgid "You are not a member of any groups."
 msgstr "Du bist in keiner Gruppe Mitglied."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5945,6 +6019,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Du bist Mitglied dieser Gruppe:"
 msgstr[1] "Du bist Mitglied dieser Gruppen:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6166,37 +6241,77 @@ msgstr ""
 "Zusätzliche Spitznamen für die Gruppe, Komma oder Leerzeichen getrennt, max %"
 "d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Gruppe"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Blockiert"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "in %s blockierte Nutzer"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "%s Gruppeneinstellungen bearbeiten"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "%s Logo hinzufügen oder bearbeiten"
+msgstr "%s-Logo hinzufügen oder bearbeiten"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "%s Design hinzufügen oder bearbeiten"
+msgstr "%s-Design hinzufügen oder bearbeiten"
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6229,7 +6344,8 @@ msgstr "Du kannst ein Logo für deine Gruppe hochladen."
 msgid "Partial upload."
 msgstr "Unvollständiges Hochladen."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Systemfehler beim Hochladen der Datei."
 
@@ -6630,19 +6746,22 @@ msgstr "Sorry, keinen eingehenden E-Mails gestattet."
 msgid "Unsupported message type: %s"
 msgstr "Nachrichten-Typ %s wird nicht unterstützt."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Beim Speichern der Datei trat ein Datenbankfehler auf. Bitte versuche es "
 "noch einmal."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "Die Größe der hochgeladenen Datei überschreitet die upload_max_filesize "
 "Angabe in der php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6650,43 +6769,61 @@ msgstr ""
 "Die Größe der hochgeladenen Datei überschreitet die MAX_FILE_SIZE Angabe, "
 "die im HTML-Formular angegeben wurde."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Die Datei wurde nur teilweise auf den Server geladen."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Kein temporäres Verzeichnis gefunden."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Konnte die Datei nicht auf die Festplatte schreiben."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Upload der Datei wurde wegen der Dateiendung gestoppt."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Dateigröße liegt über dem Benutzerlimit"
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Datei konnte nicht in das Zielverzeichnis verschoben werden."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Konnte den MIME-Typ nicht feststellen."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Versuche ein anderes %s Format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"„%1$s“ ist kein unterstütztes Dateiformat auf diesem Server. Versuche es mit "
+"einem anderen %2$s-Format."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s ist kein unterstütztes Dateiformat auf diesem Server."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6804,26 +6941,23 @@ msgid "Send a nudge to this user"
 msgstr "Sende diesem Benutzer einen Stups"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Neues Profil konnte nicht angelegt werden"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Fehler beim Einfügen des Avatars"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Fehler beim Aktualisieren des entfernten Profils"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Fehler beim Einfügen des entfernten Profils"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Doppelte Nachricht"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Konnte neues Abonnement nicht eintragen."
 
@@ -6860,7 +6994,8 @@ msgstr "Deine gesendeten Nachrichten"
 msgid "Tags in %s's notices"
 msgstr "Stichworte in %ss Nachrichten"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Unbekannter Befehl"
 
@@ -6954,19 +7089,24 @@ msgstr "Spielwiese"
 msgid "Sandbox this user"
 msgstr "Diesen Nutzer auf die Spielwiese setzen"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Site durchsuchen"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Suchbegriff"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Suchen"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Hilfe suchen"
 
@@ -7077,7 +7217,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Theme enthält unsichere Dateierweiterungen; könnte unsicher sein."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7163,56 +7303,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "vor wenigen Sekunden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "vor einer Minute"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "vor %d Minuten"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "vor ca. einer Minute"
+msgstr[1] "vor ca. %d Minuten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "vor einer Stunde"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "vor %d Stunden"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "vor ca. einer Stunde"
+msgstr[1] "vor ca. %d Stunden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "vor einem Tag"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "vor %d Tagen"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "vor ca. einem Tag"
+msgstr[1] "vor ca. %d Tagen"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "vor einem Monat"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "vor %d Monaten"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "vor ca. einem Monat"
+msgstr[1] "vor ca. %d Monaten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "vor einem Jahr"
 
index 0289904359951b95284294d4fcae647c73549558..5543c1f24cebd453685208725a42f27c8bdfa549 100644 (file)
@@ -1,29 +1,31 @@
-# Translation of StatusNet to Greek
+# Translation of StatusNet - Core to Greek (Ελληνικά)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Crazymadlover
-# Author@translatewiki.net: Dead3y3
-# Author@translatewiki.net: Omnipaedista
+# Author: Crazymadlover
+# Author: Dead3y3
+# Author: Omnipaedista
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:50+0000\n"
-"Language-Team: Greek\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:34+0000\n"
+"Language-Team: Greek <http://translatewiki.net/wiki/Portal:el>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: el\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Πρόσβαση"
 
@@ -77,10 +79,10 @@ msgstr "Αποθήκευση ρυθμίσεων πρόσβασης"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Αποθήκευση"
@@ -93,15 +95,15 @@ msgstr "Κανένας τέτοιος χρήστης."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -188,29 +190,31 @@ msgstr ""
 msgid "You and friends"
 msgstr "Εσείς και οι φίλοι σας"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -220,21 +224,25 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Δεν μπορείτε να κάνετε φραγή στον εαυτό σας!"
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockcreate.php:127
+msgid "Block user failed."
+msgstr ""
+
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr ""
 
@@ -258,49 +266,49 @@ msgstr ""
 msgid "All the direct messages sent to %s"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr ""
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr ""
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr ""
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr ""
 "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr ""
 "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Δε μπορώ να ακολουθήσω το χρήστη: ο χρήστης %s είναι ήδη στη λίστα σου."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Δεν μπορείτε να κάνετε φραγή στον εαυτό σας!"
 
@@ -312,75 +320,81 @@ msgstr ""
 msgid "Could not find target user."
 msgstr "Απέτυχε η ενημέρωση του χρήστη."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Το ψευδώνυμο πρέπει να έχει μόνο πεζούς χαρακτήρες και χωρίς κενά."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
+#: actions/newgroup.php:133 actions/profilesettings.php:218
+#: actions/register.php:217
+msgid "Not a valid nickname."
+msgstr ""
+
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
-#, php-format
-msgid "Invalid alias: \"%s\"."
-msgstr ""
-
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Η μέθοδος του ΑΡΙ δε βρέθηκε!"
 
+#. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -392,12 +406,6 @@ msgstr "Δεν ήταν δυνατή η δημιουργία ομάδας."
 msgid "%s's groups"
 msgstr "ομάδες των χρηστών %s"
 
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
-msgstr ""
-
 #: actions/apigrouplistall.php:96
 #, php-format
 msgid "groups on %s"
@@ -407,15 +415,11 @@ msgstr "ομάδες του χρήστη %s"
 msgid "No oauth_token parameter provided."
 msgstr ""
 
-#: actions/apioauthauthorize.php:106
-msgid "Invalid token."
-msgstr ""
-
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -433,14 +437,6 @@ msgstr ""
 msgid "Invalid nickname / password!"
 msgstr ""
 
-#: actions/apioauthauthorize.php:159
-msgid "Database error deleting OAuth application user."
-msgstr ""
-
-#: actions/apioauthauthorize.php:185
-msgid "Database error inserting OAuth application user."
-msgstr ""
-
 #: actions/apioauthauthorize.php:214
 #, php-format
 msgid ""
@@ -458,8 +454,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -528,11 +524,21 @@ msgstr "Η κατάσταση διεγράφη."
 msgid "No status with that ID found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
+#: lib/mailhandler.php:60
+#, php-format
+msgid "That's too long. Max notice size is %d chars."
+msgstr ""
+
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
+msgid "Not found."
+msgstr ""
+
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -541,6 +547,11 @@ msgstr ""
 msgid "Unsupported format."
 msgstr ""
 
+#: actions/apitimelinefavorites.php:110
+#, php-format
+msgid "%1$s / Favorites from %2$s"
+msgstr ""
+
 #: actions/apitimelinefavorites.php:119
 #, php-format
 msgid "%1$s updates favorited by %2$s / %2$s."
@@ -580,10 +591,20 @@ msgstr ""
 msgid "API method under construction."
 msgstr "Η μέθοδος του ΑΡΙ είναι υπό κατασκευή."
 
+#: actions/avatarbynickname.php:64
+msgid "No size."
+msgstr ""
+
 #: actions/avatarbynickname.php:69
 msgid "Invalid size."
 msgstr ""
 
+#. TRANS: Link description in user account settings menu.
+#: actions/avatarsettings.php:67 actions/showgroup.php:230
+#: lib/accountsettingsaction.php:118
+msgid "Avatar"
+msgstr ""
+
 #: actions/avatarsettings.php:78
 #, php-format
 msgid "You can upload your personal avatar. The maximum file size is %s."
@@ -615,6 +636,10 @@ msgstr ""
 msgid "Delete"
 msgstr "Διαγραφή"
 
+#: actions/avatarsettings.php:166 actions/grouplogo.php:236
+msgid "Upload"
+msgstr ""
+
 #: actions/avatarsettings.php:305
 msgid "No file uploaded."
 msgstr ""
@@ -623,6 +648,14 @@ msgstr ""
 msgid "Pick a square area of the image to be your avatar"
 msgstr ""
 
+#: actions/avatarsettings.php:347 actions/grouplogo.php:380
+msgid "Lost our file data."
+msgstr ""
+
+#: actions/avatarsettings.php:370
+msgid "Avatar updated."
+msgstr ""
+
 #: actions/avatarsettings.php:373
 msgid "Failed updating avatar."
 msgstr ""
@@ -694,7 +727,8 @@ msgstr ""
 msgid "Unblock user from group"
 msgstr ""
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr ""
 
@@ -714,9 +748,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -724,7 +758,7 @@ msgstr "Απέτυχε η ενημέρωση του χρήστη."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Απέτυχε η διαγραφή email επιβεβαίωσης."
@@ -742,9 +776,15 @@ msgstr ""
 msgid "Conversation"
 msgstr "Συζήτηση"
 
+#: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87
+#: lib/profileaction.php:229 lib/searchgroupnav.php:82
+msgid "Notices"
+msgstr ""
+
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -805,7 +845,6 @@ msgstr "Διαγράψτε αυτόν τον χρήστη"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -817,27 +856,18 @@ msgstr ""
 msgid "Invalid logo URL."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "Αλλαγή χρωμάτων"
 
-#: actions/designadminpanel.php:460
-msgid "Site theme"
+#: actions/designadminpanel.php:431
+msgid "Site logo"
 msgstr ""
 
 #: actions/designadminpanel.php:461
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -916,6 +946,10 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr ""
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
 msgstr ""
@@ -929,6 +963,10 @@ msgstr ""
 msgid "No such document \"%s\""
 msgstr ""
 
+#: actions/editapplication.php:66
+msgid "You must be logged in to edit an application."
+msgstr ""
+
 #: actions/editapplication.php:161
 msgid "Use this form to edit your application."
 msgstr ""
@@ -1015,7 +1053,7 @@ msgstr "Τρέχουσα επιβεβαιωμένη email διεύθυνση."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1031,95 +1069,90 @@ msgstr ""
 "προσθέσατε. Ελέγξτε τα εισερχόμενα (και τον φάκελο ανεπιθύμητης "
 "αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε."
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Διεύθυνση email, π.χ: \"UserName@example.org\""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Εισερχόμενο email"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr ""
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Διευθύνσεις email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Θέλω να δημοσιεύω ενημερώσεις μέσω email"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Αδυναμία κανονικοποίησης αυτής της email διεύθυνσης"
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Απέτυχε η εισαγωγή κωδικού επιβεβαίωσης."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1129,19 +1162,19 @@ msgstr ""
 "αλληλογραφίας) για τον κωδικό και για το πως να τον χρησιμοποιήσετε."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Επιβεβαίωση διεύθυνσης email"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Απέτυχε η ενημέρωση εγγραφής του χρήστη."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Η διεύθυνση του εισερχόμενου email αφαιρέθηκε."
 
@@ -1153,6 +1186,11 @@ msgstr ""
 msgid "Disfavor favorite"
 msgstr ""
 
+#: actions/favorited.php:67
+#, php-format
+msgid "Popular notices, page %d"
+msgstr ""
+
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
 msgstr ""
@@ -1174,11 +1212,22 @@ msgid ""
 "notice to your favorites!"
 msgstr ""
 
+#: actions/favoritesrss.php:111 actions/showfavorites.php:77
+#: lib/personalgroupnav.php:115
+#, php-format
+msgid "%s's favorite notices"
+msgstr ""
+
 #: actions/favoritesrss.php:115
 #, php-format
 msgid "Updates favored by %1$s on %2$s!"
 msgstr ""
 
+#: actions/featured.php:71
+#, php-format
+msgid "Featured users, page %d"
+msgstr ""
+
 #: actions/featured.php:99
 #, php-format
 msgid "A selection of some great users on %s"
@@ -1212,10 +1261,6 @@ msgstr ""
 msgid "You are not authorized."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:118
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
@@ -1228,18 +1273,10 @@ msgstr "Κανένας τέτοιος χρήστης."
 msgid "Cannot read file."
 msgstr "Απέτυχε η αποθήκευση του προφίλ."
 
-#: actions/grantrole.php:62 actions/revokerole.php:62
-msgid "Invalid role."
-msgstr ""
-
 #: actions/grantrole.php:66 actions/revokerole.php:66
 msgid "This role is reserved and cannot be set."
 msgstr ""
 
-#: actions/grantrole.php:75
-msgid "You cannot grant user roles on this site."
-msgstr ""
-
 #: actions/grantrole.php:82
 msgid "User already has this role."
 msgstr ""
@@ -1269,7 +1306,7 @@ msgstr ""
 msgid "User is already blocked from group."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr ""
 
@@ -1281,6 +1318,11 @@ msgid ""
 "the group in the future."
 msgstr ""
 
+#. TRANS: Submit button title for 'No' when blocking a user from a group.
+#: actions/groupblock.php:182
+msgid "Do not block this user from this group"
+msgstr ""
+
 #. TRANS: Submit button title for 'Yes' when blocking a user from a group.
 #: actions/groupblock.php:189
 msgid "Block this user from this group"
@@ -1322,23 +1364,33 @@ msgstr ""
 msgid "Failed updating logo."
 msgstr ""
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Διαχειριστής"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
+
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1357,6 +1409,11 @@ msgstr "χρονοδιάγραμμα του χρήστη %s"
 msgid "Updates from members of %1$s on %2$s!"
 msgstr ""
 
+#: actions/groups.php:64
+#, php-format
+msgid "Groups, page %d"
+msgstr ""
+
 #: actions/groups.php:90
 #, php-format
 msgid ""
@@ -1367,10 +1424,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
 #: actions/groupsearch.php:52
 #, php-format
 msgid ""
@@ -1428,11 +1481,6 @@ msgid ""
 "doc.im%%). Configure your address and settings below."
 msgstr ""
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1445,7 +1493,10 @@ msgstr "Τρέχουσα επιβεβαιωμένη Jabber/GTalk διεύθυν
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1453,43 +1504,48 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Οι προτιμήσεις αποθηκεύτηκαν"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Οι προτιμήσεις αποθηκεύτηκαν"
 
+#. TRANS: Message given saving IM address without having provided one.
+#: actions/imsettings.php:312
+msgid "No Jabber ID."
+msgstr ""
+
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Αδυναμία κανονικοποίησης του Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr ""
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1499,16 +1555,21 @@ msgstr ""
 "Πρέπει να αποδεχτείτε τον/την %s για αποστολή μηνυμάτων προς εσας. "
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr ""
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr ""
 
+#: actions/inbox.php:59
+#, php-format
+msgid "Inbox for %1$s - page %2$d"
+msgstr ""
+
 #: actions/inbox.php:62
 #, php-format
 msgid "Inbox for %s"
@@ -1522,9 +1583,11 @@ msgstr ""
 msgid "Invites have been disabled."
 msgstr ""
 
-#: actions/invite.php:41
+#. TRANS: Whois output.
+#. TRANS: %1$s nickname of the queried user, %2$s is their profile URL.
+#: actions/invite.php:131 actions/invite.php:139 lib/command.php:430
 #, php-format
-msgid "You must be logged in to invite other users to use %s."
+msgid "%1$s (%2$s)"
 msgstr ""
 
 #: actions/invite.php:136
@@ -1606,10 +1669,20 @@ msgstr ""
 msgid "No nickname or ID."
 msgstr "Ψευδώνυμο"
 
+#: actions/joingroup.php:141
+#, php-format
+msgid "%1$s joined group %2$s"
+msgstr ""
+
 #: actions/leavegroup.php:60
 msgid "You must be logged in to leave a group."
 msgstr ""
 
+#: actions/leavegroup.php:137
+#, php-format
+msgid "%1$s left group %2$s"
+msgstr ""
+
 #: actions/login.php:102 actions/otp.php:62 actions/register.php:144
 msgid "Already logged in."
 msgstr "Ήδη συνδεδεμένος."
@@ -1646,12 +1719,6 @@ msgstr ""
 "Για λόγους ασφαλείας, παρακαλώ εισάγετε ξανά το όνομα χρήστη και τον κωδικό "
 "σας, πριν αλλάξετε τις ρυθμίσεις σας."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
@@ -1661,15 +1728,14 @@ msgstr ""
 msgid "%1$s is already an admin for group \"%2$s\"."
 msgstr ""
 
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
 #: actions/microsummary.php:69
 msgid "No current status."
 msgstr ""
 
+#: actions/newapplication.php:64
+msgid "You must be logged in to register an application."
+msgstr ""
+
 #: actions/newapplication.php:143
 msgid "Use this form to register a new application."
 msgstr ""
@@ -1707,6 +1773,10 @@ msgstr ""
 msgid "Ajax Error"
 msgstr ""
 
+#: actions/newnotice.php:227
+msgid "Notice posted"
+msgstr ""
+
 #: actions/noticesearch.php:68
 #, php-format
 msgid ""
@@ -1718,11 +1788,6 @@ msgstr ""
 msgid "Text search"
 msgstr ""
 
-#: actions/noticesearch.php:91
-#, php-format
-msgid "Search results for \"%1$s\" on %2$s"
-msgstr ""
-
 #: actions/noticesearch.php:121
 #, php-format
 msgid ""
@@ -1742,11 +1807,6 @@ msgstr ""
 msgid "Updates with \"%s\""
 msgstr ""
 
-#: actions/noticesearchrss.php:98
-#, php-format
-msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr ""
-
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
@@ -1764,10 +1824,23 @@ msgstr ""
 msgid "You must be logged in to list your applications."
 msgstr ""
 
+#: actions/oauthappssettings.php:74
+msgid "OAuth applications"
+msgstr ""
+
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1785,12 +1858,6 @@ msgstr ""
 msgid "Developers can edit the registration settings for their applications "
 msgstr ""
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1798,8 +1865,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr ""
 
@@ -1823,30 +1890,27 @@ msgstr ""
 msgid "Shorten URLs with"
 msgstr ""
 
-#: actions/othersettings.php:123
-msgid "Show or hide profile designs."
+#: actions/othersettings.php:117
+msgid "Automatic shortening service to use."
 msgstr ""
 
-#: actions/otp.php:69
-msgid "No user ID specified."
-msgstr ""
-
-#: actions/otp.php:83
-msgid "No login token specified."
+#: actions/othersettings.php:123
+msgid "Show or hide profile designs."
 msgstr ""
 
 #: actions/otp.php:90
 msgid "No login token requested."
 msgstr ""
 
-#: actions/otp.php:95
-msgid "Invalid login token specified."
-msgstr ""
-
 #: actions/otp.php:104
 msgid "Login token expired."
 msgstr ""
 
+#: actions/outbox.php:58
+#, php-format
+msgid "Outbox for %1$s - page %2$d"
+msgstr ""
+
 #: actions/outbox.php:61
 #, php-format
 msgid "Outbox for %s"
@@ -1906,7 +1970,7 @@ msgid "Password saved."
 msgstr "Ο κωδικός αποθηκεύτηκε."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1914,26 +1978,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -1942,10 +1986,6 @@ msgstr ""
 msgid "Site"
 msgstr ""
 
-#: actions/pathsadminpanel.php:238
-msgid "Server"
-msgstr ""
-
 #: actions/pathsadminpanel.php:238
 msgid "Site's server hostname."
 msgstr ""
@@ -1954,6 +1994,10 @@ msgstr ""
 msgid "Path"
 msgstr ""
 
+#: actions/pathsadminpanel.php:242
+msgid "Site path"
+msgstr ""
+
 #: actions/pathsadminpanel.php:246
 msgid "Path to locales"
 msgstr ""
@@ -2002,6 +2046,10 @@ msgstr "Ρυθμίσεις του άβαταρ"
 msgid "Backgrounds"
 msgstr ""
 
+#: actions/pathsadminpanel.php:305
+msgid "Background server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:309
 msgid "Background path"
 msgstr ""
@@ -2055,10 +2103,6 @@ msgstr ""
 msgid "Users self-tagged with %1$s - page %2$d"
 msgstr ""
 
-#: actions/postnotice.php:95
-msgid "Invalid notice content."
-msgstr ""
-
 #: actions/postnotice.php:101
 #, php-format
 msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’."
@@ -2085,7 +2129,7 @@ msgstr "Ονοματεπώνυμο"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Αρχική σελίδα"
 
@@ -2188,10 +2232,6 @@ msgstr ""
 msgid "Public Stream Feed (RSS 2.0)"
 msgstr ""
 
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:191
 msgid "Be the first to post!"
 msgstr ""
@@ -2284,6 +2324,10 @@ msgstr ""
 msgid "6 or more characters, and don't forget it!"
 msgstr "6 ή περισσότεροι χαρακτήρες και μην το ξεχάσετε!"
 
+#: actions/recoverpassword.php:243
+msgid "Reset"
+msgstr ""
+
 #: actions/recoverpassword.php:252
 msgid "Enter a nickname or email address."
 msgstr "Εισάγετε ψευδώνυμο ή διεύθυνση email."
@@ -2389,33 +2433,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2456,10 +2473,6 @@ msgstr ""
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
 msgstr ""
@@ -2468,10 +2481,6 @@ msgstr ""
 msgid "You can't repeat your own notice."
 msgstr ""
 
-#: actions/repeat.php:90
-msgid "You already repeated that notice."
-msgstr ""
-
 #: actions/repeat.php:114 lib/noticelist.php:676
 msgid "Repeated"
 msgstr "Επαναλαμβάνεται από"
@@ -2480,6 +2489,17 @@ msgstr "Επαναλαμβάνεται από"
 msgid "Repeated!"
 msgstr "Επαναλαμβάνεται από"
 
+#: actions/replies.php:126 actions/repliesrss.php:68
+#: lib/personalgroupnav.php:105
+#, php-format
+msgid "Replies to %s"
+msgstr ""
+
+#: actions/replies.php:128
+#, php-format
+msgid "Replies to %1$s, page %2$d"
+msgstr ""
+
 #: actions/replies.php:145
 #, php-format
 msgid "Replies feed for %s (RSS 1.0)"
@@ -2514,10 +2534,6 @@ msgstr ""
 msgid "Replies to %1$s on %2$s!"
 msgstr ""
 
-#: actions/revokerole.php:75
-msgid "You cannot revoke user roles on this site."
-msgstr ""
-
 #: actions/revokerole.php:82
 msgid "User doesn't have this role."
 msgstr ""
@@ -2536,7 +2552,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2565,21 +2581,30 @@ msgstr ""
 msgid "Save site settings"
 msgstr "Αποθήκευση ρυθμίσεων πρόσβασης"
 
+#: actions/showapplication.php:82
+msgid "You must be logged in to view an application."
+msgstr ""
+
 #: actions/showapplication.php:157
 msgid "Application profile"
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Περιγραφή"
 
+#: actions/showapplication.php:192 actions/showgroup.php:436
+#: lib/profileaction.php:187
+msgid "Statistics"
+msgstr ""
+
 #: actions/showapplication.php:203
 #, php-format
 msgid "Created by %1$s - %2$s access by default - %3$d users"
@@ -2686,12 +2711,7 @@ msgstr ""
 msgid "Aliases"
 msgstr ""
 
-#: actions/showgroup.php:355
-#, php-format
-msgid "FOAF for %s group"
-msgstr ""
-
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Μέλη"
 
@@ -2790,6 +2810,10 @@ msgid ""
 "[StatusNet](http://status.net/) tool. "
 msgstr ""
 
+#: actions/silence.php:65 actions/unsilence.php:65
+msgid "You cannot silence users on this site."
+msgstr ""
+
 #: actions/silence.php:72
 msgid "User is already silenced."
 msgstr ""
@@ -2891,6 +2915,10 @@ msgstr ""
 msgid "Edit site-wide message"
 msgstr ""
 
+#: actions/sitenoticeadminpanel.php:103
+msgid "Unable to save site notice."
+msgstr ""
+
 #: actions/sitenoticeadminpanel.php:113
 msgid "Max length for the site-wide notice is 255 chars."
 msgstr ""
@@ -2915,11 +2943,6 @@ msgstr "Ρυθμίσεις του άβαταρ"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr ""
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -2957,6 +2980,11 @@ msgid ""
 "from my carrier."
 msgstr ""
 
+#. TRANS: Message given saving SMS phone number without having selected a carrier.
+#: actions/smssettings.php:344
+msgid "No carrier selected."
+msgstr ""
+
 #. TRANS: Message given saving SMS phone number that is already set.
 #: actions/smssettings.php:352
 msgid "That is already your phone number."
@@ -3001,9 +3029,14 @@ msgid ""
 "email but isn't listed here, send email to let us know at %s."
 msgstr ""
 
+#. TRANS: Message given saving SMS phone number confirmation code without having provided one.
+#: actions/smssettings.php:548
+msgid "No code entered"
+msgstr ""
+
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3027,6 +3060,10 @@ msgstr ""
 msgid "In a scheduled job"
 msgstr ""
 
+#: actions/snapshotadminpanel.php:206
+msgid "Data snapshots"
+msgstr ""
+
 #: actions/snapshotadminpanel.php:208
 msgid "When to send statistical data to status.net servers"
 msgstr ""
@@ -3142,6 +3179,11 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
+#: actions/tag.php:69
+#, php-format
+msgid "Notices tagged with %1$s, page %2$d"
+msgstr ""
+
 #: actions/tag.php:93
 #, php-format
 msgid "Notice feed for tag %s (RSS 2.0)"
@@ -3386,6 +3428,11 @@ msgstr ""
 msgid "Updates from %1$s on %2$s!"
 msgstr ""
 
+#: actions/version.php:75
+#, php-format
+msgid "StatusNet %s"
+msgstr ""
+
 #: actions/version.php:155
 #, php-format
 msgid ""
@@ -3462,11 +3509,6 @@ msgstr ""
 msgid "A file this large would exceed your monthly quota of %d bytes."
 msgstr ""
 
-#. TRANS: Client exception thrown if a file upload does not have a valid name.
-#: classes/File.php:248 classes/File.php:263
-msgid "Invalid filename."
-msgstr ""
-
 #. TRANS: Server exception thrown when updating a local group fails.
 #: classes/Local_group.php:42
 msgid "Could not update local group."
@@ -3496,12 +3538,6 @@ msgstr ""
 msgid "No such profile (%1$d) for notice (%2$d)."
 msgstr ""
 
-#. TRANS: Server exception. %s are the error details.
-#: classes/Notice.php:193
-#, php-format
-msgid "Database error inserting hashtag: %s"
-msgstr ""
-
 #. TRANS: Client exception thrown if a notice contains too many characters.
 #: classes/Notice.php:265
 msgid "Problem saving notice. Too long."
@@ -3537,18 +3573,18 @@ msgid "Problem saving notice."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr ""
@@ -3568,7 +3604,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3644,11 +3680,22 @@ msgstr ""
 msgid "Design your profile"
 msgstr "Σχεδιάστε το προφίλ σας"
 
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr ""
+
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
 msgstr ""
 
+#. TRANS: Page title. %1$s is the title, %2$s is the site name.
+#: lib/action.php:148
+#, php-format
+msgid "%1$s - %2$s"
+msgstr ""
+
 #. TRANS: DT element for primary navigation menu. String is hidden in default CSS.
 #: lib/action.php:449
 msgid "Primary site navigation"
@@ -3660,23 +3707,11 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "Σύνδεση"
 
-#. TRANS: Tooltip for menu option "Admin"
-#: lib/action.php:471
-msgctxt "TOOLTIP"
-msgid "Change site configuration"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
 #: lib/action.php:481
 msgctxt "MENU"
@@ -3695,12 +3730,6 @@ msgctxt "MENU"
 msgid "Logout"
 msgstr "Λογότυπο"
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
 #. TRANS: Main menu option when not logged in to register a new account
 #: lib/action.php:498
 msgctxt "MENU"
@@ -3774,23 +3803,18 @@ msgstr ""
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου)."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3799,44 +3823,45 @@ msgid ""
 msgstr ""
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr ""
 
@@ -3845,144 +3870,188 @@ msgstr ""
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
-#. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
-msgid "User configuration"
+msgid "Site"
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr ""
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Περιγράψτε την ομάδα ή το θέμα χρησιμοποιώντας μέχρι %d χαρακτήρες"
 
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:215
+msgid "URL of the homepage of this application"
+msgstr ""
+
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Ακύρωση"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr ""
@@ -4002,16 +4071,23 @@ msgstr ""
 msgid "Provider"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr ""
+
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
 msgstr ""
 
 #: lib/channel.php:229 lib/mailhandler.php:142
@@ -4029,6 +4105,13 @@ msgstr ""
 msgid "User has no last notice."
 msgstr ""
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4063,6 +4146,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr ""
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
 #, php-format
@@ -4083,6 +4180,11 @@ msgstr ""
 msgid "Error sending direct message."
 msgstr ""
 
+#. TRANS: Error text shown when repeating a notice fails with an unknown reason.
+#: lib/command.php:557
+msgid "Error repeating notice."
+msgstr ""
+
 #. TRANS: Message given if content of a notice for a reply is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
 #: lib/command.php:592
@@ -4097,6 +4199,11 @@ msgstr ""
 msgid "Reply to %s sent."
 msgstr ""
 
+#. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
+#: lib/command.php:606
+msgid "Error saving notice."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
@@ -4107,6 +4214,13 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
@@ -4158,8 +4272,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4168,7 +4289,7 @@ msgstr[0] "Δεν επιτρέπεται να κάνεις συνδρομητέ
 msgstr[1] "Δεν επιτρέπεται να κάνεις συνδρομητές του λογαριασμού σου άλλους."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4183,7 +4304,7 @@ msgid "You are not a member of any groups."
 msgstr "Δεν είστε μέλος καμίας ομάδας."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4191,6 +4312,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Ομάδες με τα περισσότερα μέλη"
 msgstr[1] "Ομάδες με τα περισσότερα μέλη"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4257,6 +4379,10 @@ msgstr ""
 msgid "Updates by SMS"
 msgstr ""
 
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr ""
+
 #: lib/dberroraction.php:60
 msgid "Database error"
 msgstr ""
@@ -4274,6 +4400,14 @@ msgstr ""
 msgid "Design defaults restored."
 msgstr ""
 
+#: lib/disfavorform.php:114 lib/disfavorform.php:140
+msgid "Disfavor this notice"
+msgstr ""
+
+#: lib/favorform.php:114 lib/favorform.php:140
+msgid "Favor this notice"
+msgstr ""
+
 #: lib/favorform.php:140
 msgid "Favor"
 msgstr ""
@@ -4346,23 +4480,77 @@ msgstr "Τοποθεσία της ομάδας (εάν υπάρχει), πχ: \"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Ομάδα"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Επεξεργασία ιδιοτήτων της ομάδας %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Λογότυπο"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Προσθήκη ή επεξεργασία λογότυπου για την ομάδα %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -4390,7 +4578,8 @@ msgstr ""
 msgid "Partial upload."
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -4674,56 +4863,69 @@ msgstr ""
 msgid "Unsupported message type: %s"
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
-msgid "Could not determine file's MIME type."
-msgstr ""
-
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
@@ -4752,16 +4954,17 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
 
+#. TRANS: Used in coordinates as abbreviation of north
+#: lib/noticelist.php:436
+msgid "N"
+msgstr ""
+
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
@@ -4807,22 +5010,23 @@ msgid "Nudge"
 msgstr ""
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
+msgid "Error inserting new profile."
 msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
+msgid "Error inserting avatar."
 msgstr ""
 
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
 msgstr ""
 
-#: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
 msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Απέτυχε η εισαγωγή νέας συνδρομής."
 
@@ -4859,7 +5063,8 @@ msgstr ""
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -4937,19 +5142,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr "Γίνε συνδρομητής αυτού του χρήστη"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr ""
 
@@ -5038,22 +5248,30 @@ msgstr ""
 msgid "Theme contains file of type '.%s', which is not allowed."
 msgstr ""
 
-#: lib/themeuploader.php:259
-msgid "Error opening theme archive."
-msgstr ""
-
 #: lib/topposterssection.php:74
 msgid "Top posters"
 msgstr "Κορυφαίοι δημοσιευτές"
 
+#: lib/unsandboxform.php:69
+msgid "Unsandbox"
+msgstr ""
+
 #: lib/unsandboxform.php:80
 msgid "Unsandbox this user"
 msgstr "Γίνε συνδρομητής αυτού του χρήστη"
 
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr ""
+
 #: lib/unsilenceform.php:78
 msgid "Unsilence this user"
 msgstr "Διαγράψτε αυτόν τον χρήστη"
 
+#: lib/userprofile.php:117
+msgid "Edit Avatar"
+msgstr ""
+
 #: lib/userprofile.php:237
 msgid "User deletion in progress..."
 msgstr ""
@@ -5085,56 +5303,64 @@ msgid "Moderator"
 msgstr "Συντονιστής"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr ""
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr ""
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr ""
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr ""
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr ""
 
index d3ffb4dedbb7bdd1eee167955f5d4e47560fac7e..b0b3d9454172245895dbccc801452563c92b861f 100644 (file)
@@ -1,30 +1,32 @@
-# Translation of StatusNet to British English
+# Translation of StatusNet - Core to British English (British English)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Bruce89
-# Author@translatewiki.net: CiaranG
-# Author@translatewiki.net: Reedy
+# Author: Brion
+# Author: Bruce89
+# Author: CiaranG
+# Author: Reedy
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:59+0000\n"
-"Language-Team: British English\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:38+0000\n"
+"Language-Team: British English <http://translatewiki.net/wiki/Portal:en-gb>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: en-gb\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Access"
 
@@ -77,10 +79,10 @@ msgstr "Save access settings"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Save"
@@ -93,15 +95,15 @@ msgstr "No such page."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -200,16 +202,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Updates from %1$s and friends on %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -224,21 +226,23 @@ msgstr "Updates from %1$s and friends on %2$s!"
 msgid "API method not found."
 msgstr "API method not found."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "This method requires a POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -246,19 +250,19 @@ msgstr ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "User has no profile."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -270,30 +274,30 @@ msgstr ""
 "The server was unable to handle that much POST data (%s bytes) due to its "
 "current configuration."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Unable to save your design settings!"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Could not update your design."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "You cannot block yourself!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Block user failed."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Unblock user failed."
 
@@ -317,59 +321,59 @@ msgstr "Direct messages to %s"
 msgid "All the direct messages sent to %s"
 msgstr "All the direct messages sent to %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "No message text!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "That's too long. Max message size is %d chars."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Recipient user not found."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Can't send direct messages to users who aren't your friend."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "No status found with that ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "This status is already a favourite."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Could not create favourite."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "That status is not a favourite."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Could not delete favourite."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Could not follow user: profile not found."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Could not follow user: %s is already on your list."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Could not unfollow user: User not found."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "You cannot unfollow yourself."
 
@@ -385,101 +389,101 @@ msgstr "Could not determine source user."
 msgid "Could not find target user."
 msgstr "Could not find target user."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Nickname must have only lowercase letters and numbers, and no spaces."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Nickname already in use. Try another one."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Not a valid nickname."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Homepage is not a valid URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Full name is too long (max 255 chars)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Description is too long (max %d chars)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Location is too long (max 255 chars)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Too many aliases! Maximum %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Invalid alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" already in use. Try another one."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias can't be the same as nickname."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Group not found."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "You are already a member of that group."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "You have been blocked from that group by the admin."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Could not join user %1$s to group %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "You are not a member of this group."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -519,9 +523,9 @@ msgstr "Invalid token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -566,8 +570,8 @@ msgstr "The request token %s has been denied and revoked."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -631,18 +635,18 @@ msgstr "This method requires a POST or DELETE."
 msgid "You may not delete another user's status."
 msgstr "You may not delete another user's status."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "No such notice."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Cannot repeat your own notice."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Already repeated that notice."
 
@@ -654,21 +658,21 @@ msgstr "Status deleted."
 msgid "No status with that ID found."
 msgstr "No status with that ID found."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "That's too long. Max notice size is %d chars."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Not found."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Max notice size is %d chars, including attachment URL."
@@ -868,7 +872,9 @@ msgid "Yes"
 msgstr "Yes"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Block this user"
 
@@ -910,11 +916,13 @@ msgstr "A list of the users blocked from joining this group."
 msgid "Unblock user from group"
 msgstr "Unblock user from group"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Unblock"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Unblock this user"
 
@@ -953,9 +961,9 @@ msgstr "That address has already been confirmed."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -963,7 +971,7 @@ msgstr "Couldn't update user."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Couldn't delete e-mail confirmation."
@@ -999,9 +1007,10 @@ msgstr "Application not found."
 msgid "You are not the owner of this application."
 msgstr "You are not the owner of this application."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "There was a problem with your session token."
 
@@ -1035,7 +1044,7 @@ msgstr "Delete this application"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Not logged in."
@@ -1098,7 +1107,6 @@ msgstr "Delete this user"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Design"
 
@@ -1215,13 +1223,13 @@ msgstr "Restore default designs"
 msgid "Reset back to default"
 msgstr "Reset back to default"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Save"
@@ -1377,7 +1385,7 @@ msgstr "Current confirmed e-mail address."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1395,22 +1403,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancel"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-mail address, like \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1418,110 +1430,110 @@ msgstr "Add"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Incoming e-mail"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Send e-mail to this address to post new notices."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Make a new e-mail address for posting to - cancels the old one."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "New"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Email preferences"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Send me notices of new subscriptions through e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Send me e-mail when someone adds my notice as a favourite."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Send me e-mail when someone sends me a private message."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Send me e-mail when someone sends me an \"@-reply\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Allow friends to nudge me and send me an e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "I want to post notices by e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publish a MicroID for my e-mail address."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Email preferences saved."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "No e-mail address."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Cannot normalise that e-mail address"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Not a valid e-mail address."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "That is already your e-mail address."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "That e-mail address already belongs to another user."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Couldn't insert confirmation code."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1532,50 +1544,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "No pending confirmation to cancel."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "That is the wrong email address."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Email confirmation cancelled."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "That is not your e-mail address."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "The email address was removed."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "No incoming e-mail address."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Couldn't update user record."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Incoming e-mail address removed."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "New incoming e-mail address added."
 
@@ -1693,7 +1705,7 @@ msgstr "Couldn't convert request tokens to access tokens."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Remote service uses unknown version of OMB protocol."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Error updating remote profile."
 
@@ -1750,7 +1762,7 @@ msgstr "User is already blocked from group."
 msgid "User is not a member of group."
 msgstr "User is not a member of group."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Block user from group"
 
@@ -1831,39 +1843,49 @@ msgstr "Logo updated."
 msgid "Failed updating logo."
 msgstr "Failed updating logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s group members"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s group members, page %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "A list of the users in this group."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Admin"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Block"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Make user an admin of the group"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Make admin"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Make this user an admin"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2002,7 +2024,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2012,64 +2037,64 @@ msgstr ""
 "add %s to your buddy list in your IM client or on GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM preferences"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Send me notices through Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Post a notice when my Jabber/GTalk status changes."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publish a MicroID for my Jabber/GTalk address."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferences saved."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "No Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Cannot normalise Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Not a valid Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "That is already your Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID already belongs to another user."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2079,28 +2104,28 @@ msgstr ""
 "s for sending messages to you."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "That is the wrong IM address."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Couldn't delete IM confirmation."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM confirmation cancelled."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "That is not your Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "The IM address was removed."
 
@@ -2557,8 +2582,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Not a supported data format."
 
@@ -2694,7 +2719,7 @@ msgid "Password saved."
 msgstr "Password saved."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -2868,7 +2893,7 @@ msgstr "Full name"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Homepage"
 
@@ -2973,7 +2998,7 @@ msgid "Couldn't save tags."
 msgstr "Couldn't save tags."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Settings saved."
 
@@ -3503,24 +3528,24 @@ msgid "Application profile"
 msgstr "Application profile"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Name"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organization"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Description"
 
@@ -3624,7 +3649,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s group"
@@ -3676,7 +3701,7 @@ msgstr "Notice feed for %s group (Atom)"
 msgid "FOAF for %s group"
 msgstr "Outbox for %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Members"
 
@@ -4103,7 +4128,7 @@ msgstr "No code entered"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4195,6 +4220,11 @@ msgstr ""
 "You have no subscribers. Try subscribing to people you know and they might "
 "return the favour"
 
+#: actions/subscribers.php:110
+#, php-format
+msgid "%s has no subscribers. Want to be the first?"
+msgstr ""
+
 #: actions/subscribers.php:114
 #, php-format
 msgid ""
@@ -4732,18 +4762,18 @@ msgid "Problem saving notice."
 msgstr "Problem saving notice."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problem saving group inbox."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4763,7 +4793,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "You have been banned from subscribing."
 
@@ -4901,7 +4931,8 @@ msgid "Change site configuration"
 msgstr "Change site configuration"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Admin"
@@ -4978,7 +5009,7 @@ msgstr "Search"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Site notice"
 
@@ -5042,7 +5073,10 @@ msgid "StatusNet software license"
 msgstr "StatusNet software licence"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5052,13 +5086,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** is a microblogging service."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5070,49 +5107,50 @@ msgstr ""
 "org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Site content license"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "All %1$s content and data are available under the %2$s licence."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Pagination"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "After"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Before"
 
@@ -5121,195 +5159,230 @@ msgstr "Before"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "You cannot make changes to this site."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Changes to that panel are not allowed."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() not implemented."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() not implemented."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Unable to delete design setting."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Basic site configuration"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Design configuration"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Design"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "User configuration"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "User"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Access configuration"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Paths configuration"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Sessions configuration"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Edit site notice"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Snapshots configuration"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Describe your application in %d characters"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Describe your application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL of the homepage of this application"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Source URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organisation responsible for this application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL for the homepage of the organisation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancel"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revoke"
@@ -5319,7 +5392,8 @@ msgstr "Revoke"
 msgid "Provider"
 msgstr "Provider"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
@@ -5331,6 +5405,11 @@ msgstr "Password changing failed"
 msgid "Password changing is not allowed"
 msgstr "Password changing is not allowed"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Block"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Command results"
@@ -5343,6 +5422,13 @@ msgstr "Command complete"
 msgid "Command failed"
 msgstr "Command failed"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5370,6 +5456,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Notice marked as fave."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5426,20 +5526,23 @@ msgstr "Error repeating notice."
 msgid "Error saving notice."
 msgstr "Error saving notice."
 
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
-msgstr ""
-
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "Can't subscribe to OMB profiles by command."
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -5480,13 +5583,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "You are not subscribed to anyone."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5501,7 +5611,7 @@ msgid "No one is subscribed to you."
 msgstr "No one is subscribed to you."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5516,7 +5626,7 @@ msgid "You are not a member of any groups."
 msgstr "You are not a member of any groups."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5524,6 +5634,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "You are not a member of that group."
 msgstr[1] "You are not a member of that group."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5739,37 +5850,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Group"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Blocked"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s blocked users"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Edit %s group properties"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Add or edit %s logo"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5802,7 +5953,8 @@ msgstr "That file is too big. The maximum file size is %s."
 msgid "Partial upload."
 msgstr "Partial upload."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "System error uploading file."
 
@@ -6114,56 +6266,75 @@ msgstr "Sorry, no incoming e-mail allowed."
 msgid "Unsupported message type: %s"
 msgstr "Unsupported message type: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Could not determine file's MIME type."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -6280,26 +6451,23 @@ msgid "Send a nudge to this user"
 msgstr "Send a nudge to this user"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Error inserting new profile."
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Error inserting avatar."
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Error updating remote profile."
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Error inserting remote profile."
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicate notice"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Couldn't insert new subscription."
 
@@ -6336,7 +6504,8 @@ msgstr "Your sent messages"
 msgid "Tags in %s's notices"
 msgstr "Tags in %s's notices"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Unknown"
 
@@ -6430,19 +6599,24 @@ msgstr "Sandbox"
 msgid "Sandbox this user"
 msgstr "Sandbox this user"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Search site"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Search"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Search help"
 
@@ -6619,56 +6793,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "a few seconds ago"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "about a minute ago"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "about %d minutes ago"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "about an hour ago"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "about %d hours ago"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "about a day ago"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "about %d days ago"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "about a month ago"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "about %d months ago"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "about a year ago"
 
index 2b9af18473ab91e4d23732c4cc0ac1416d5d4607..49aef778db7511d103d0e487b1ca58eb2b7855f6 100644 (file)
@@ -1,31 +1,34 @@
-# Translation of StatusNet to Esperanto
+# Translation of StatusNet - Core to Esperanto (Esperanto)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: AVRS
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Ianmcorvidae
-# Author@translatewiki.net: Kris10
-# Author@translatewiki.net: LyzTyphone
+# Author: AVRS
+# Author: Brion
+# Author: Eliovir
+# Author: Ianmcorvidae
+# Author: Kris10
+# Author: LyzTyphone
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:45:53+0000\n"
-"Language-Team: Esperanto\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:36+0000\n"
+"Language-Team: Esperanto <http://translatewiki.net/wiki/Portal:eo>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: eo\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Atingo"
 
@@ -78,10 +81,10 @@ msgstr "Konservu atingan agordon"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Konservu"
@@ -94,15 +97,15 @@ msgstr "Ne estas tiu paĝo."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -201,16 +204,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Ĝisdatiĝoj de %1$s kaj amikoj ĉe %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -225,21 +228,23 @@ msgstr "Ĝisdatiĝoj de %1$s kaj amikoj ĉe %2$s!"
 msgid "API method not found."
 msgstr "Metodo de API ne troviĝas."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Ĉi tiu metodo bezonas POST-on."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -247,27 +252,27 @@ msgstr ""
 "Vi devas specifi parametron nomitan 'device' kun valoro de interalie: 'sms', "
 "'im', 'none'."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Malsukcesis ĝisdatigi uzanton"
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "La uzanto ne havas profilon."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Malsukcesis konservi la profilon."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -279,30 +284,30 @@ msgstr ""
 "La servilo ne povis trakti tiom da POST-datumo (% bajtoj) pro ĝia nuna "
 "agordo."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Malsukcesis konservi vian desegnan agordon"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Malsukcesis ĝisdatigi vian desegnon."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Vi ne povas bloki vin mem!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Ne sukcesis bloki uzanton."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Ne sukcesis malbloki uzanton."
 
@@ -326,59 +331,59 @@ msgstr "Rektaj mesaĝoj al %s"
 msgid "All the direct messages sent to %s"
 msgstr "Ĉiuj rektaj mesaĝoj senditaj al %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Sen mesaĝteksto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Tro longas. Mesaĝa longlimo estas %d signoj."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Ricevonta uzanto ne troviĝas."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Vi ne povas sendi rektan mesaĝon al uzanto kiu ne estas via amiko."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Stato kun tiu ID ne trovitas."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Ĉi tiu stato jam estas  ŝatata."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Malsukcesis krei ŝataton."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "La stato ne estas ŝatata."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Malsukcesis forigi ŝataton."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Malsukcesis aboni uzanton: profilo ne troviĝas."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Ne povas aboni uzanton: %s estas jam en via listo."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Ne povas malaboni uzanton. Uzanto ne troviĝas."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Vi ne povas malaboni vin mem."
 
@@ -394,102 +399,102 @@ msgstr " Malsukcesis certigi fontan uzanton."
 msgid "Could not find target user."
 msgstr "Malsukcesis trovi celan uzanton."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 "Kromnomo devas havi nur minuskulajn literojn kaj numerojn sed neniun spacon."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "La uzantnomo jam uziĝis. Provu ion alian."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ne valida kromnomo."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Ĉefpaĝo ne estas valida URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Plennomo estas tro longa (maksimume 255 literoj)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Priskribo estas tro longa (maksimume %d signoj)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "lokonomo estas tro longa (maksimume 255 literoj)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Tro da alinomoj! Maksimume %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "La alinomo estas nevalida: \"%*s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "La alinomo \"%s\" estas jam okupita. Provu ion alian."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "La alinomo devas ne esti sama al la kromnomo."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Grupo ne troviĝas."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Vi estas jam grupano."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "La administranto blokis vin de tiu grupo."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "La uzanto %1$*s ne povas aliĝi al la grupo %2$*s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Vi ne estas grupano."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -519,7 +524,7 @@ msgstr "Grupoj de %s"
 msgid "groups on %s"
 msgstr "grupoj ĉe %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Malsukcesis alŝuti"
 
@@ -533,9 +538,9 @@ msgstr "Nevalida ĵetono"
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -580,8 +585,8 @@ msgstr "La demanda token %s estis neita kaj revokita."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -645,18 +650,18 @@ msgstr "Ĉi tiu metodo bezonas POST aǔ DELETE."
 msgid "You may not delete another user's status."
 msgstr "Vi ne povas forigi la staton de alia uzanto."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ne estas tiu avizo."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Vi ne povas ripeti vian propran avizon."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "La avizo jam ripetiĝis."
 
@@ -668,21 +673,21 @@ msgstr "Stato forigita."
 msgid "No status with that ID found."
 msgstr "Neniu stato kun tiu ID troviĝas."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Kliento devas providi al \"stato\"-parametro valoron."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Tro longas. Longlimo por avizo estas %d signoj."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Ne troviĝas."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Longlimo por avizo estas %d signoj, enkalkulante ankaŭ la retadresojn."
@@ -881,7 +886,9 @@ msgid "Yes"
 msgstr "Jes"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloki la uzanton"
 
@@ -923,11 +930,13 @@ msgstr "Listo de uzantoj blokita de aniĝi al ĉi tiun grupo."
 msgid "Unblock user from group"
 msgstr "Malbloki uzanton de grupo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Malbloki"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Malbloki ĉi tiun uzanton"
 
@@ -966,9 +975,9 @@ msgstr "La adreso jam estis konfirmita."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -976,7 +985,7 @@ msgstr "Ne povus ĝisdatigi uzanton."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Ne povas forigi retpoŝtan konfirmon."
@@ -1012,9 +1021,10 @@ msgstr "Aplikaĵo ne trovita."
 msgid "You are not the owner of this application."
 msgstr "Vi ne estas la posedanto de ĉi tiu aplikaĵo."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Problemo okazas pri via seancĵetono."
 
@@ -1047,7 +1057,7 @@ msgstr "Viŝi ĉi tiun aplikon"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Ne konektita."
@@ -1109,7 +1119,6 @@ msgstr "Forigi la uzanton"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Aspekto"
 
@@ -1228,13 +1237,13 @@ msgstr "Restaŭri defaŭltajn desegnojn"
 msgid "Reset back to default"
 msgstr "Redefaŭltiĝi"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Konservi"
@@ -1390,7 +1399,7 @@ msgstr "Nuna konfirmita retpoŝtadreso."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1408,22 +1417,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Nuligi"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Retpoŝtadreso, ekzemple \"ViaNomo@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1431,110 +1444,110 @@ msgstr "Aldoni"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Alveninta poŝto"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Sendu mesaĝon al la adreso por afiŝi novan avizon."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Krei novan retpoŝtadreson por afiŝado kaj nuligi la antaŭan."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nova"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Retpoŝta agordo."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Sendu al mi avizon pri nova abonado per retpoŝto."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Sendu al mi mesaĝon tiam, kiam iu ŝatas mian avizon ."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Sendu al mi mesaĝon tiam, kiam iu sendas al mi privatan mesaĝon."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Sendu al mi mesaĝon tiam, kiam iu sendas al mi \"@-respondon\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permesi al amikoj puŝeti min kaj sendi al mi retpoŝtan mesaĝon."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Mi volas afiŝi avizon per retpoŝto."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publikigi MikroID por mia retpoŝtadreso."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Retpoŝta prefero konserviĝis."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Neniu retpoŝta adreso."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Malsukcesis normigi tiun retpoŝtadreson"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Retpoŝta adreso ne valida"
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Tiu jam estas via retpoŝtadreso."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Tiu retpoŝtadreso jam apartenas al alia uzanto."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Malsukcesis enmeti konfirmkodon."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1545,50 +1558,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ne estas peto-konfirmo por nuligi."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Tiu retpoŝtadreso estas malĝusta."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Retpoŝta konfirmo nuligita."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Tiu ne estas via retpoŝtadreso."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "La retpoŝtadreso estas forigita."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ne estas alvena retpoŝtadreso"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Malsukcesis ĝisdatigi uzantan informon."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Alvena retpoŝtadreso forigita."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nova alvena retpoŝtadreso aldonita."
 
@@ -1705,7 +1718,7 @@ msgstr "Malsukcesis interŝanĝi petĵetonon al atingoĵetono."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Fora servo uzas nekonatan version de OMB-protokolo."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Eraro je ĝisdatigo de fora profilo."
 
@@ -1762,7 +1775,7 @@ msgstr "La uzanto jam de grupo blokiĝas."
 msgid "User is not a member of group."
 msgstr "La uzanto ne estas grupano."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloki uzanton de grupo"
 
@@ -1840,37 +1853,47 @@ msgstr "Emblemo ĝisdatigita."
 msgid "Failed updating logo."
 msgstr "Malsukcesis ĝisdatigi emblemon."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s grupanoj"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s grupanoj, paĝo %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Listo de uzantoj en tiu ĉi grupo"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administranto"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Bloki"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Elekti uzanton grupestro."
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Estrigi"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Estrigi la uzanton"
 
@@ -2011,7 +2034,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2021,64 +2047,64 @@ msgstr ""
 "s al via amikolisto je via tujmesaĝilo-kliento aŭ je GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Tujmesaĝilaj preferoj"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Sendu al mi avizojn per Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Afiŝu avizon tiam, kiam mia Jabber/GTalk-stato ŝanĝiĝas."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Sendu al mi per Jabber/GTalk respondojn de personoj, kiujn mi ne abonas."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publikigu MikroID por mia Jabber/GTalk-adreso."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Prefero konservita."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Mankas Jabber-ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Malsukcesis normigi la Jabber-ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Tio ne estas valida Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Tio estas jam via Jabber-ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber-ID jam apartenas al alia uzanto."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2088,28 +2114,28 @@ msgstr ""
 "al %s sendi mesaĝojn al vi."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Tiu tujmesaĝila adreso estas malĝusta."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Malsukcesis forigi tujmesaĝila agordo."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Tujmesaĝila konfirmo nuligita."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Tio ne estas via Jabber-ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "La tujmesaĝila adreso estas forigita."
 
@@ -2570,8 +2596,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Bonvolu, nur %s-URL per plata HTTP."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Datumformato ne subteniĝas."
 
@@ -2712,7 +2738,7 @@ msgid "Password saved."
 msgstr "Pasvorto konservitas."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Vojoj"
 
@@ -2923,7 +2949,7 @@ msgstr "Plena nomo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Hejmpaĝo"
 
@@ -3028,7 +3054,7 @@ msgid "Couldn't save tags."
 msgstr "Malsukcesis konservi markilojn."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Agordo konservitas."
 
@@ -3250,6 +3276,10 @@ msgstr "Pasvorto devas enhavi 6 signojn aŭ pli."
 msgid "Password and confirmation do not match."
 msgstr "Pasvorto kaj komfirmo ne kongruas."
 
+#: actions/recoverpassword.php:388 actions/register.php:255
+msgid "Error setting user."
+msgstr "Eraris agordi uzanton."
+
 #: actions/recoverpassword.php:395
 msgid "New password successfully saved. You are now logged in."
 msgstr "Nova pasvorto sukcese konserviĝas. Vi nun estas ensalutinta."
@@ -3543,9 +3573,17 @@ msgstr "La uzanto ne havas la rolon."
 msgid "StatusNet"
 msgstr "StatusNet"
 
+#: actions/sandbox.php:65 actions/unsandbox.php:65
+msgid "You cannot sandbox users on this site."
+msgstr ""
+
+#: actions/sandbox.php:72
+msgid "User is already sandboxed."
+msgstr ""
+
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Seancoj"
 
@@ -3583,24 +3621,24 @@ msgid "Application profile"
 msgstr "Aplikaĵa profilo"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ikono"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nomo"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organizaĵo"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Priskribo"
 
@@ -3620,7 +3658,7 @@ msgstr "Aplikaĵa ago"
 
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
-msgstr ""
+msgstr "Rekomencigi ŝlosilon & sekreton"
 
 #: actions/showapplication.php:261
 msgid "Application info"
@@ -3628,19 +3666,19 @@ msgstr "Aplikaĵa informo"
 
 #: actions/showapplication.php:263
 msgid "Consumer key"
-msgstr ""
+msgstr "Konsumanta ŝlosilo"
 
 #: actions/showapplication.php:268
 msgid "Consumer secret"
-msgstr ""
+msgstr "Konsumanta sekreto"
 
 #: actions/showapplication.php:273
 msgid "Request token URL"
-msgstr ""
+msgstr "Pet-ĵetona URL"
 
 #: actions/showapplication.php:278
 msgid "Access token URL"
-msgstr ""
+msgstr "Alir-ĵetona URL"
 
 #: actions/showapplication.php:283
 msgid "Authorize URL"
@@ -3654,6 +3692,10 @@ msgstr ""
 "Rimarku: Ni subtenas HMAC-SHA1-subskribo. Ni ne subtenas platteksta "
 "subskribado-metodon."
 
+#: actions/showapplication.php:309
+msgid "Are you sure you want to reset your consumer key and secret?"
+msgstr "Ĉu vi certe volas rekomencigi vian konsumantan ŝlosilon kaj sekreton?"
+
 #: actions/showfavorites.php:79
 #, php-format
 msgid "%1$s's favorite notices, page %2$d"
@@ -3708,7 +3750,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Tiel vi povas diskonigi vian ŝataton."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupo %s"
@@ -3760,7 +3802,7 @@ msgstr "Avizofluo de grupo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Foramiko de grupo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Grupanoj"
 
@@ -3947,7 +3989,7 @@ msgstr "Teksto estu almenaŭ 0 literojn (senlime)."
 
 #: actions/siteadminpanel.php:171
 msgid "Dupe limit must be one or more seconds."
-msgstr ""
+msgstr "Refoja limo estu almenaŭ unu sekundo."
 
 #: actions/siteadminpanel.php:221
 msgid "General"
@@ -3965,6 +4007,14 @@ msgstr "Nomo de via retejo, ekzemple \"Viafirmo Mikroblogo\""
 msgid "Brought by"
 msgstr "Eblige de"
 
+#: actions/siteadminpanel.php:230
+msgid "Text used for credits link in footer of each page"
+msgstr "Teksto por dankado-ligilo je subo por ĉiu paĝo"
+
+#: actions/siteadminpanel.php:234
+msgid "Brought by URL"
+msgstr "Alportita de URL"
+
 #: actions/siteadminpanel.php:235
 msgid "URL used for credits link in footer of each page"
 msgstr "URL por danko-ligilo je subaĵo sur ĉiu paĝo"
@@ -3991,7 +4041,7 @@ msgstr "Defaŭlta lingvo"
 
 #: actions/siteadminpanel.php:263
 msgid "Site language when autodetection from browser settings is not available"
-msgstr ""
+msgstr "Reteja lingvo por kiam lingva prefero ne troviĝas el la foliumilo"
 
 #: actions/siteadminpanel.php:271
 msgid "Limits"
@@ -3999,41 +4049,90 @@ msgstr "Limoj"
 
 #: actions/siteadminpanel.php:274
 msgid "Text limit"
-msgstr ""
+msgstr "Teksta longlimo"
 
 #: actions/siteadminpanel.php:274
 msgid "Maximum number of characters for notices."
-msgstr ""
+msgstr "Longlimo por afiŝoj."
 
 #: actions/siteadminpanel.php:278
 msgid "Dupe limit"
-msgstr ""
+msgstr "Refoja limo"
 
 #: actions/siteadminpanel.php:278
 msgid "How long users must wait (in seconds) to post the same thing again."
 msgstr ""
+"Kiel longe devas uzantoj atendas (je sekundo) antaŭ afiŝi la saman refejo."
+
+#: actions/sitenoticeadminpanel.php:56
+msgid "Site Notice"
+msgstr "Reteja Anonco"
+
+#: actions/sitenoticeadminpanel.php:67
+msgid "Edit site-wide message"
+msgstr "Redakti retejan mesaĝon"
+
+#: actions/sitenoticeadminpanel.php:103
+msgid "Unable to save site notice."
+msgstr "Malsukcesis konservi retejan anoncon."
 
 #: actions/sitenoticeadminpanel.php:113
 msgid "Max length for the site-wide notice is 255 chars."
-msgstr ""
+msgstr "Longlimo por reteja anonco estas 255 literoj."
+
+#: actions/sitenoticeadminpanel.php:176
+msgid "Site notice text"
+msgstr "Teksto de reteja anonco."
 
 #: actions/sitenoticeadminpanel.php:178
 msgid "Site-wide notice text (255 chars max; HTML okay)"
-msgstr ""
+msgstr "Teksto de reteja anonco (apenaŭ 255 literoj; HTML eblas)"
 
 #: actions/sitenoticeadminpanel.php:198
 msgid "Save site notice"
 msgstr "Konservi retejan agordon"
 
+#. TRANS: Title for SMS settings.
+#: actions/smssettings.php:59
+msgid "SMS settings"
+msgstr "SMM-a agordo"
+
+#. TRANS: SMS settings page instructions.
+#. TRANS: %%site.name%% is the name of the site.
+#: actions/smssettings.php:74
+#, php-format
+msgid "You can receive SMS messages through email from %%site.name%%."
+msgstr "Vi povos ricevi SMM-mesaĝon per retpoŝto de %%site.name%%."
+
+#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
+#: actions/smssettings.php:97
+msgid "SMS is not available."
+msgstr "SMM ne estas disponebla."
+
+#. TRANS: Form legend for SMS settings form.
+#: actions/smssettings.php:111
+msgid "SMS address"
+msgstr "SMM-a adreso"
+
+#. TRANS: Form guide in SMS settings form.
+#: actions/smssettings.php:120
+msgid "Current confirmed SMS-enabled phone number."
+msgstr "Nuna konfirmita SMM-pova telefonnumero"
+
 #. TRANS: Form guide in IM settings form.
 #: actions/smssettings.php:133
 msgid "Awaiting confirmation on this phone number."
-msgstr ""
+msgstr "Atendante konfirmon por la telefonnumero."
+
+#. TRANS: Field label for SMS address input in SMS settings form.
+#: actions/smssettings.php:142
+msgid "Confirmation code"
+msgstr "Konfirma kodo."
 
 #. TRANS: Form field instructions in SMS settings form.
 #: actions/smssettings.php:144
 msgid "Enter the code you received on your phone."
-msgstr ""
+msgstr "Entajpu la kodon, kiu vi ricevis per poŝtelefono."
 
 #. TRANS: Button label to confirm SMS confirmation code in SMS settings.
 #: actions/smssettings.php:148
@@ -4041,27 +4140,94 @@ msgctxt "BUTTON"
 msgid "Confirm"
 msgstr "Konfirmi"
 
+#. TRANS: Field label for SMS phone number input in SMS settings form.
+#: actions/smssettings.php:153
+msgid "SMS phone number"
+msgstr "SMM-a telefonnumero"
+
+#. TRANS: SMS phone number input field instructions in SMS settings form.
+#: actions/smssettings.php:156
+msgid "Phone number, no punctuation or spaces, with area code"
+msgstr "Telefonnumero, sen interpunkcio aŭ spacoj, kun loka kodo"
+
+#. TRANS: Form legend for SMS preferences form.
+#: actions/smssettings.php:195
+msgid "SMS preferences"
+msgstr "SMM-aj preferoj"
+
 #. TRANS: Checkbox label in SMS preferences form.
 #: actions/smssettings.php:201
 msgid ""
 "Send me notices through SMS; I understand I may incur exorbitant charges "
 "from my carrier."
 msgstr ""
+"Sendu al mi avizoj per SMM; mi komprenas ke la kosto eble estos multa de mia "
+"peranto."
+
+#. TRANS: Confirmation message for successful SMS preferences save.
+#: actions/smssettings.php:315
+msgid "SMS preferences saved."
+msgstr "SMM-prefero konserviĝas."
 
 #. TRANS: Message given saving SMS phone number without having provided one.
 #: actions/smssettings.php:338
 msgid "No phone number."
 msgstr "Mankas la telefononumero."
 
+#. TRANS: Message given saving SMS phone number without having selected a carrier.
+#: actions/smssettings.php:344
+msgid "No carrier selected."
+msgstr "Neniu peranto elektiĝas."
+
+#. TRANS: Message given saving SMS phone number that is already set.
+#: actions/smssettings.php:352
+msgid "That is already your phone number."
+msgstr "Tio estas jam via telefonnumero."
+
+#. TRANS: Message given saving SMS phone number that is already set for another user.
+#: actions/smssettings.php:356
+msgid "That phone number already belongs to another user."
+msgstr "Tiu telefonnumero jam apartenas al alia uzanto."
+
+#. TRANS: Message given saving valid SMS phone number that is to be confirmed.
+#: actions/smssettings.php:384
+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 ""
+"Konfirmkodo jam sendiĝas al la aldonita telefonnumero. Kontrolu vian "
+"poŝtelefonon pri la kodo kaj gvido pri kiel uzi ĝin."
+
+#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number.
+#: actions/smssettings.php:413
+msgid "That is the wrong confirmation number."
+msgstr "Tiu konfirma kodo estas malĝusta."
+
+#. TRANS: Message given after successfully canceling SMS phone number confirmation.
+#: actions/smssettings.php:427
+msgid "SMS confirmation cancelled."
+msgstr "SMM-a konfirmo nuliĝas."
+
+#. TRANS: Message given trying to remove an SMS phone number that is not
+#. TRANS: registered for the active user.
+#: actions/smssettings.php:448
+msgid "That is not your phone number."
+msgstr "Tio ne estas via telefonnumero."
+
+#. TRANS: Message given after successfully removing a registered SMS phone number.
+#: actions/smssettings.php:470
+msgid "The SMS phone number was removed."
+msgstr "La SMM-numreo estas forigita."
+
 #. TRANS: Label for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:511
 msgid "Mobile carrier"
-msgstr ""
+msgstr "Poŝtelefona peranto"
 
 #. TRANS: Default option for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:516
 msgid "Select a carrier"
-msgstr ""
+msgstr "Elektu peranton"
 
 #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings.
 #. TRANS: %s is an administrative contact's e-mail address.
@@ -4071,28 +4237,51 @@ 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 ""
+"Poŝtelefona peranto de via telefono. Se vi konas peranton, kiu akceptas SMM "
+"per retpoŝto sed ne listiĝas tie ĉi, sendu mesaĝon al ni sciigi, je %s."
+
+#. TRANS: Message given saving SMS phone number confirmation code without having provided one.
+#: actions/smssettings.php:548
+msgid "No code entered"
+msgstr "Neniu kodo entajpita"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
-msgstr ""
+msgstr "Momentfotoj"
+
+#: actions/snapshotadminpanel.php:65
+msgid "Manage snapshot configuration"
+msgstr "Administri agordon pri momentfoto"
+
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr "Momentfota ofteco nevalida."
 
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
-msgstr ""
+msgstr "Momentfota ofteco estu nombro."
+
+#: actions/snapshotadminpanel.php:144
+msgid "Invalid snapshot report URL."
+msgstr "Momentfota alraporta URL nevalida."
 
 #: actions/snapshotadminpanel.php:200
 msgid "Randomly during web hit"
-msgstr ""
+msgstr "Harzarde dum ret-alklako."
 
 #: actions/snapshotadminpanel.php:201
 msgid "In a scheduled job"
-msgstr ""
+msgstr "Laŭplane"
+
+#: actions/snapshotadminpanel.php:206
+msgid "Data snapshots"
+msgstr "Datumaj momentfotoj"
 
 #: actions/snapshotadminpanel.php:208
 msgid "When to send statistical data to status.net servers"
-msgstr ""
+msgstr "Kiam sendu statistikan datumon al status.net serviloj"
 
 #: actions/snapshotadminpanel.php:217
 msgid "Frequency"
@@ -4100,60 +4289,102 @@ msgstr "Ofteco"
 
 #: actions/snapshotadminpanel.php:218
 msgid "Snapshots will be sent once every N web hits"
-msgstr ""
+msgstr "Momentfotoj sendiĝos post po N alklakoj"
 
 #: actions/snapshotadminpanel.php:226
 msgid "Report URL"
-msgstr ""
+msgstr "Alraporta URL"
 
 #: actions/snapshotadminpanel.php:227
 msgid "Snapshots will be sent to this URL"
-msgstr ""
+msgstr "Momentfotoj sendiĝos al ĉi tiu URL"
 
 #: actions/snapshotadminpanel.php:248
 msgid "Save snapshot settings"
 msgstr "Konservi retejan agordon"
 
+#: actions/subedit.php:70
+msgid "You are not subscribed to that profile."
+msgstr "Vi ne abonis tiun profilon."
+
+#. TRANS: Exception thrown when a subscription could not be stored on the server.
+#: actions/subedit.php:83 classes/Subscription.php:136
+msgid "Could not save subscription."
+msgstr "Malsukcesis konservi abonon."
+
 #: actions/subscribe.php:77
 msgid "This action only accepts POST requests."
-msgstr ""
+msgstr "La ago akceptas nur POST-an peton."
+
+#: actions/subscribe.php:107
+msgid "No such profile."
+msgstr "Ne ekzistas tia profilo."
 
 #: actions/subscribe.php:117
 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
+msgstr "Vi ne povas aboni foran  OMB 0.1-an profilon per ĉi tiu ago."
 
 #: actions/subscribe.php:145
 msgid "Subscribed"
 msgstr "Abonita"
 
+#: actions/subscribers.php:50
+#, php-format
+msgid "%s subscribers"
+msgstr "%s abonantoj"
+
+#: actions/subscribers.php:52
+#, php-format
+msgid "%1$s subscribers, page %2$d"
+msgstr "%1$s abonantoj, paĝo %2$d"
+
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
-msgstr ""
+msgstr "Jen homoj, kiuj rigardas viajn avizojn."
 
 #: actions/subscribers.php:67
 #, php-format
 msgid "These are the people who listen to %s's notices."
-msgstr ""
+msgstr "Jen homoj, kiuj rigardas avizojn de %s."
 
 #: actions/subscribers.php:108
 msgid ""
 "You have no subscribers. Try subscribing to people you know and they might "
 "return the favor"
-msgstr ""
+msgstr "Vi ne havas abonanton. Provu aboni konatojn, kaj ili eble reaboni vin"
 
 #: actions/subscribers.php:110
 #, php-format
 msgid "%s has no subscribers. Want to be the first?"
+msgstr "%s ne havas abonantojn. Ĉu vi volas esti la unua?"
+
+#: actions/subscribers.php:114
+#, php-format
+msgid ""
+"%s has no subscribers. Why not [register an account](%%%%action.register%%%"
+"%) and be the first?"
 msgstr ""
+"%s ne havas abonantojn. Kial ne [krei konton](%%%%*action.*Register%%%%) kaj "
+"esti la unua?"
+
+#: actions/subscriptions.php:52
+#, php-format
+msgid "%s subscriptions"
+msgstr "%s abonatoj"
+
+#: actions/subscriptions.php:54
+#, php-format
+msgid "%1$s subscriptions, page %2$d"
+msgstr "%1$s abonatoj, paĝo %2$d"
 
 #: actions/subscriptions.php:65
 msgid "These are the people whose notices you listen to."
-msgstr ""
+msgstr "Jen homoj, kies avizoj rigardas vi."
 
 #: actions/subscriptions.php:69
 #, php-format
 msgid "These are the people whose notices %s listens to."
-msgstr ""
+msgstr "Jen homoj, kies avizoj %s rigardas."
 
 #: actions/subscriptions.php:126
 #, php-format
@@ -4164,6 +4395,15 @@ msgid ""
 "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can "
 "automatically subscribe to people you already follow there."
 msgstr ""
+"Vi ne nun abonas ies ajn avizoj. Provu aboni konatojn. Provu [homserĉi](%%"
+"action.peoplesearch%%), kontrolu grupanojn en interesaj grupoj, kaj nian "
+"[elstarajn uzantojn](%%action.featured%%). Se vi estas [Tvitanto](%%action."
+"twittersettings%%), vi povas aŭtomate aboni homon, kiun vi jam sekvas tie."
+
+#: actions/subscriptions.php:128 actions/subscriptions.php:132
+#, php-format
+msgid "%s is not listening to anyone."
+msgstr "%s ne abonas iun ajn."
 
 #: actions/subscriptions.php:208
 msgid "Jabber"
@@ -4173,15 +4413,87 @@ msgstr "Jabber"
 msgid "SMS"
 msgstr "SMS"
 
+#: actions/tag.php:69
+#, php-format
+msgid "Notices tagged with %1$s, page %2$d"
+msgstr "Avizoj etikeditaj per %1$s - paĝo %2$d"
+
+#: actions/tag.php:87
+#, php-format
+msgid "Notice feed for tag %s (RSS 1.0)"
+msgstr "Avizofluo pri etikedo %s (RSS 1.0)"
+
+#: actions/tag.php:93
+#, php-format
+msgid "Notice feed for tag %s (RSS 2.0)"
+msgstr "Avizofluo pri etikedo %s (RSS 2.0)"
+
+#: actions/tag.php:99
+#, php-format
+msgid "Notice feed for tag %s (Atom)"
+msgstr "Avizofluo pri etikedo %s (Atom)"
+
+#: actions/tagother.php:65
+#, php-format
+msgid "Tag %s"
+msgstr "Etikedo %s"
+
+#: actions/tagother.php:77 lib/userprofile.php:76
+msgid "User profile"
+msgstr "Uzanta profilo"
+
 #: actions/tagother.php:81 actions/userauthorization.php:132
 #: lib/userprofile.php:103
 msgid "Photo"
 msgstr "Foto"
 
+#: actions/tagother.php:141
+msgid "Tag user"
+msgstr "Etikedi uzanton"
+
+#: actions/tagother.php:151
+msgid ""
+"Tags for this user (letters, numbers, -, ., and _), comma- or space- "
+"separated"
+msgstr ""
+"Etikedoj por ĉi tiuj uzanto (literoj, ciferoj, -, . Kaj _), apartigu per "
+"komo aŭ spaco."
+
 #: actions/tagother.php:193
 msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
+msgstr "Vi rajtas entikedi nur abonanton aŭ abonaton."
+
+#: actions/tagother.php:200
+msgid "Could not save tags."
+msgstr "Malsukcesis konservi etikedojn."
+
+#: actions/tagother.php:236
+msgid "Use this form to add tags to your subscribers or subscriptions."
+msgstr "Uzu ĉi tiun formularon por etikedi viajn abonantojn aŭ abonatojn."
+
+#: actions/tagrss.php:35
+msgid "No such tag."
+msgstr "Ne estas tiu etikedo."
+
+#: actions/unblock.php:59
+msgid "You haven't blocked that user."
+msgstr "Vi ne jam blokis la uzanton."
+
+#: actions/unsilence.php:72
+msgid "User is not silenced."
+msgstr "Uzanto ne estas silentigita."
+
+#: actions/unsubscribe.php:98
+msgid "Unsubscribed"
+msgstr "Malabonita"
+
+#: actions/updateprofile.php:64 actions/userauthorization.php:337
+#, php-format
+msgid ""
+"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’."
 msgstr ""
+"Rigardato-flua permesilo \"%1$s\" ne konformas al reteja permesilo \"%2$s\"."
 
 #. TRANS: User admin panel title
 #: actions/useradminpanel.php:59
@@ -4189,9 +4501,13 @@ msgctxt "TITLE"
 msgid "User"
 msgstr "Uzanto"
 
+#: actions/useradminpanel.php:70
+msgid "User settings for this StatusNet site."
+msgstr "Uzantaj agordoj por ĉi tiu StatusNet-retejo."
+
 #: actions/useradminpanel.php:149
 msgid "Invalid bio limit. Must be numeric."
-msgstr ""
+msgstr "Nevalida biografia longlimo. Estu cifero."
 
 #: actions/useradminpanel.php:155
 msgid "Invalid welcome text. Max length is 255 characters."
@@ -4491,15 +4807,57 @@ msgstr "Dosiero tiel granda superos vian uzantan kvoton kun %d bajtoj."
 msgid "A file this large would exceed your monthly quota of %d bytes."
 msgstr "Dosiero tiel granda superos vian monatan kvoton kun %d bajtoj."
 
+#. TRANS: Client exception thrown if a file upload does not have a valid name.
+#: classes/File.php:248 classes/File.php:263
+msgid "Invalid filename."
+msgstr "Nevalida dosiernomo."
+
+#. TRANS: Exception thrown when joining a group fails.
+#: classes/Group_member.php:42
+msgid "Group join failed."
+msgstr "Malsukcesis aniĝi al grupon."
+
+#. TRANS: Exception thrown when trying to leave a group the user is not a member of.
+#: classes/Group_member.php:55
+msgid "Not part of group."
+msgstr "Ne grupano."
+
+#. TRANS: Exception thrown when trying to leave a group fails.
+#: classes/Group_member.php:63
+msgid "Group leave failed."
+msgstr "Malsukcesis foriri de grupo."
+
+#. TRANS: Server exception thrown when updating a local group fails.
+#: classes/Local_group.php:42
+msgid "Could not update local group."
+msgstr "Malsukcesis ĝisdatigi lokan grupon."
+
+#. TRANS: Exception thrown when trying creating a login token failed.
+#. TRANS: %s is the user nickname for which token creation failed.
+#: classes/Login_token.php:78
+#, php-format
+msgid "Could not create login token for %s"
+msgstr "Malsukcesis krei ensalut-ĵetonon por %s"
+
 #. TRANS: Exception thrown when database name or Data Source Name could not be found.
 #: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
-msgstr ""
+msgstr "Ne troviĝas datumbaza nomo aŭ DSN ie ajn."
 
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
 msgid "You are banned from sending direct messages."
-msgstr ""
+msgstr "Vi blokiĝis de sendi rektan mesaĝon."
+
+#. TRANS: Message given when a message could not be stored on the server.
+#: classes/Message.php:63
+msgid "Could not insert message."
+msgstr "Malsukcesis enmeti mesaĝon."
+
+#. TRANS: Message given when a message could not be updated on the server.
+#: classes/Message.php:74
+msgid "Could not update message with new URI."
+msgstr "Malsukcesis ĝisdatigi mesaĝon per nova URI"
 
 #. TRANS: Server exception thrown when a user profile for a notice cannot be found.
 #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
@@ -4531,6 +4889,11 @@ msgid ""
 "few minutes."
 msgstr ""
 
+#. TRANS: Client exception thrown when a user tries to post while being banned.
+#: classes/Notice.php:291
+msgid "You are banned from posting notices on this site."
+msgstr ""
+
 #. TRANS: Server exception thrown when a notice cannot be saved.
 #. TRANS: Server exception thrown when a notice cannot be updated.
 #: classes/Notice.php:358 classes/Notice.php:385
@@ -4538,18 +4901,18 @@ msgid "Problem saving notice."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4568,6 +4931,16 @@ msgstr ""
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
+#. TRANS: Exception thrown when trying to subscribe while already subscribed.
+#: classes/Subscription.php:80
+msgid "Already subscribed!"
+msgstr ""
+
+#. TRANS: Exception thrown when trying to unsibscribe without a subscription.
+#: classes/Subscription.php:171
+msgid "Not subscribed!"
+msgstr ""
+
 #. TRANS: Notice given on user registration.
 #. TRANS: %1$s is the sitename, $2$s is the registering user's nickname.
 #: classes/User.php:365
@@ -4580,6 +4953,16 @@ msgstr "Bonvenon al %1$s, @%2$s!"
 msgid "Change email handling"
 msgstr ""
 
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:137
+msgid "Design your profile"
+msgstr ""
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr "Aliaj"
+
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
@@ -4594,13 +4977,13 @@ msgstr "%1$s - %2$s"
 #. TRANS: Page title for a page without a title set.
 #: lib/action.php:164
 msgid "Untitled page"
-msgstr ""
+msgstr "Sentitola paĝo"
 
 #. TRANS: Tooltip for main menu option "Personal"
 #: lib/action.php:455
 msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
-msgstr ""
+msgstr "Tempstrio pri vi kaj amikoj"
 
 #. TRANS: Main menu option when logged in for access to personal profile and friends timeline
 #: lib/action.php:458
@@ -4608,6 +4991,12 @@ msgctxt "MENU"
 msgid "Personal"
 msgstr "Persona"
 
+#. TRANS: Tooltip for main menu option "Account"
+#: lib/action.php:460
+msgctxt "TOOLTIP"
+msgid "Change your email, avatar, password, profile"
+msgstr "Ŝanĝu la retpoŝtadreson, vizaĝbildon, pasvorton aŭ la profilon"
+
 #. TRANS: Tooltip for main menu option "Services"
 #: lib/action.php:465
 msgctxt "TOOLTIP"
@@ -4626,7 +5015,8 @@ msgid "Change site configuration"
 msgstr "Ŝanĝi agordojn de la retejo"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administri"
@@ -4636,7 +5026,7 @@ msgstr "Administri"
 #, php-format
 msgctxt "TOOLTIP"
 msgid "Invite friends and colleagues to join you on %s"
-msgstr "Inviti amikojn kaj kolegojn aliĝi vin sur %s"
+msgstr "Inviti amikojn kaj kolegojn al %s kun vi"
 
 #. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
 #: lib/action.php:481
@@ -4644,6 +5034,12 @@ msgctxt "MENU"
 msgid "Invite"
 msgstr "Inviti"
 
+#. TRANS: Tooltip for main menu option "Logout"
+#: lib/action.php:487
+msgctxt "TOOLTIP"
+msgid "Logout from the site"
+msgstr "Elsaluti el la retejo"
+
 #. TRANS: Main menu option when logged in to log out the current user
 #: lib/action.php:490
 msgctxt "MENU"
@@ -4662,6 +5058,17 @@ msgctxt "MENU"
 msgid "Register"
 msgstr "Registriĝi"
 
+#. TRANS: Tooltip for main menu option "Login"
+#: lib/action.php:501
+msgctxt "TOOLTIP"
+msgid "Login to the site"
+msgstr "Ensaluti al la retejo"
+
+#: lib/action.php:504
+msgctxt "MENU"
+msgid "Login"
+msgstr "Ensaluti"
+
 #. TRANS: Tooltip for main menu option "Help"
 #: lib/action.php:507
 msgctxt "TOOLTIP"
@@ -4673,6 +5080,28 @@ msgctxt "MENU"
 msgid "Help"
 msgstr "Helpo"
 
+#. TRANS: Tooltip for main menu option "Search"
+#: lib/action.php:513
+msgctxt "TOOLTIP"
+msgid "Search for people or text"
+msgstr "Serĉi homon aŭ tekston"
+
+#: lib/action.php:516
+msgctxt "MENU"
+msgid "Search"
+msgstr "Serĉi"
+
+#. TRANS: DT element for site notice. String is hidden in default CSS.
+#. TRANS: Menu item for site administration
+#: lib/action.php:538 lib/adminpanelaction.php:387
+msgid "Site notice"
+msgstr ""
+
+#. TRANS: DT element for local views block. String is hidden in default CSS.
+#: lib/action.php:605
+msgid "Local views"
+msgstr "Loka vido"
+
 #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
 #: lib/action.php:778
 msgid "Secondary site navigation"
@@ -4696,7 +5125,7 @@ msgstr "Oftaj demandoj"
 #. TRANS: Secondary navigation menu option leading to Terms of Service.
 #: lib/action.php:795
 msgid "TOS"
-msgstr ""
+msgstr "Serva Kondiĉo"
 
 #. TRANS: Secondary navigation menu option leading to privacy policy.
 #: lib/action.php:799
@@ -4723,7 +5152,10 @@ msgid "StatusNet software license"
 msgstr "Licenco de la programaro StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -4731,13 +5163,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4745,33 +5180,46 @@ msgid ""
 "org/licensing/licenses/agpl-3.0.html)."
 msgstr ""
 
+#. TRANS: Content license displayed when license is set to 'private'.
+#. TRANS: %1$s is the site name.
+#: lib/action.php:879
+#, php-format
+msgid "Content and data of %1$s are private and confidential."
+msgstr ""
+
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
+#. TRANS: DT element for pagination (previous/next, etc.).
+#: lib/action.php:1243
+msgid "Pagination"
+msgstr "Paĝado"
+
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Poste"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Antaŭe"
 
@@ -4780,117 +5228,234 @@ msgstr "Antaŭe"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
+#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
+#: lib/adminpanelaction.php:96
+msgid "You cannot make changes to this site."
+msgstr ""
+
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Retejo"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Uzanto"
 
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:385
+msgid "Edit site notice"
+msgstr ""
+
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
+msgid "Cancel"
+msgstr "Nuligi"
+
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
-#. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
-#, php-format
-msgid "Approved %1$s - \"%2$s\" access."
-msgstr ""
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr "Aldonaĵo"
+
+#. TRANS: DT element label in attachment list item.
+#: lib/attachmentlist.php:265
+msgid "Author"
+msgstr "Aŭtoro"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: DT element label in attachment list item.
+#: lib/attachmentlist.php:279
+msgid "Provider"
+msgstr "Donanto"
+
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
-msgstr ""
+msgstr "Avizo, kie ĉi tiu aldonaĵo aperos"
+
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr "Etikedoj por ĉi tiu aldonaĵo"
+
+#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
+msgid "Password changing failed"
+msgstr "La ŝanĝo de pasvorto maltrafis"
+
+#: lib/authenticationplugin.php:236
+msgid "Password changing is not allowed"
+msgstr "Ne estas permesita ŝanĝi la pasvorton"
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloki"
+
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
+msgstr "Komandaj rezultoj"
 
 #: lib/channel.php:229 lib/mailhandler.php:142
 msgid "Command complete"
+msgstr "Komando kompleta"
+
+#: lib/channel.php:240
+msgid "Command failed"
+msgstr "Komando maltrafis"
+
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "Avizo kun tiu identigaĵo ne ekzistas."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "La uzanto ne havas lastan averton."
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "Ne povas trovi uzanton kun kromnomo %s."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
 msgstr ""
 
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
-msgstr ""
+msgstr "Pardonon, la komando ankoraŭ ne realiĝas."
 
 #. TRANS: Command exception text shown when a user tries to nudge themselves.
 #: lib/command.php:231
 msgid "It does not make a lot of sense to nudge yourself!"
-msgstr ""
+msgstr "Iom sensencas puŝeti vin mem!"
+
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr "Puŝeto sendiĝas al %s"
 
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
@@ -4904,6 +5469,51 @@ msgid ""
 "Notices: %3$s"
 msgstr ""
 
+#. TRANS: Text shown when a notice has been marked as favourite successfully.
+#: lib/command.php:314
+msgid "Notice marked as fave."
+msgstr "Avizo ŝatiĝas."
+
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s aniĝis al grupo %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s foriras de grupo %2$s."
+
+#. TRANS: Whois output. %s is the full name of the queried user.
+#: lib/command.php:434
+#, php-format
+msgid "Fullname: %s"
+msgstr "Plennomo: %s"
+
+#. TRANS: Whois output. %s is the location of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:438 lib/mail.php:268
+#, php-format
+msgid "Location: %s"
+msgstr "Loko: %s"
+
+#. TRANS: Whois output. %s is the homepage of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:442 lib/mail.php:271
+#, php-format
+msgid "Homepage: %s"
+msgstr "Hejmpaĝo: %s"
+
+#. TRANS: Whois output. %s is the bio information of the queried user.
+#: lib/command.php:446
+#, php-format
+msgid "About: %s"
+msgstr "Biografio: %s"
+
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
 #, php-format
@@ -4911,6 +5521,8 @@ msgid ""
 "%s is a remote profile; you can only send direct messages to users on the "
 "same server."
 msgstr ""
+"%s estas fora profilo; vi povas sendi rektan mesaĝon nur al uzanto je sama "
+"servilo."
 
 #. TRANS: Message given if content is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
@@ -4922,7 +5534,19 @@ msgstr ""
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
-msgstr ""
+msgstr "Eraris sendi rektan mesaĝon."
+
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "Avizo de %s ripetiĝas."
+
+#. TRANS: Error text shown when repeating a notice fails with an unknown reason.
+#: lib/command.php:557
+msgid "Error repeating notice."
+msgstr "Eraris ripeti avizon."
 
 #. TRANS: Message given if content of a notice for a reply is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
@@ -4930,33 +5554,76 @@ msgstr ""
 #, php-format
 msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
+"Avizo tro longas - longlimo estas %1$d lietroj, kaj via mesaĝo longas je %2"
+"$d."
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "Respondo al %s sendiĝas."
+
+#. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
+#: lib/command.php:606
+msgid "Error saving notice."
+msgstr "Eraris sendi avizon."
 
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "Specifu nomon de la abonota uzanto."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
 msgid "Command not yet implemented."
-msgstr ""
+msgstr "Komando ankoraŭ ne realigita."
+
+#. TRANS: Text shown when issuing the command "off" successfully.
+#: lib/command.php:728
+msgid "Notification off."
+msgstr "Sciigo for."
 
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
 #: lib/command.php:731
 msgid "Can't turn off notification."
-msgstr ""
+msgstr "Malsukcesis malŝalti sciigon."
+
+#. TRANS: Text shown when issuing the command "on" successfully.
+#: lib/command.php:754
+msgid "Notification on."
+msgstr "Sciigo en."
+
+#. TRANS: Error text shown when the command "on" fails for an unknown reason.
+#: lib/command.php:757
+msgid "Can't turn on notification."
+msgstr "Malsukcesis ŝalti sciigon."
 
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
@@ -4970,21 +5637,58 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "%s malaboniĝas."
+
+#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
+#: lib/command.php:831
+msgid "You are not subscribed to anyone."
+msgstr "Vi ne abonas iun ajn."
+
+#. TRANS: Text shown after requesting other users a user is subscribed to.
+#. TRANS: This message supports plural forms. This message is followed by a
+#. TRANS: hard coded space and a comma separated list of subscribed users.
+#: lib/command.php:836
+msgid "You are subscribed to this person:"
+msgid_plural "You are subscribed to these people:"
+msgstr[0] "Vi abonas jenan homon:"
+msgstr[1] "Vi abonas jenajn homojn:"
+
 #. TRANS: Text shown after requesting other users that are subscribed to a user
 #. TRANS: (followers) without having any subscribers.
 #: lib/command.php:858
 msgid "No one is subscribed to you."
-msgstr ""
+msgstr "Neniu abonas vin."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
 msgid_plural "These people are subscribed to you:"
-msgstr[0] ""
-msgstr[1] ""
-
+msgstr[0] "La homo abonas vin:"
+msgstr[1] "La homoj abonas vin:"
+
+#. TRANS: Text shown after requesting groups a user is subscribed to without having
+#. TRANS: any group subscriptions.
+#: lib/command.php:885
+msgid "You are not a member of any groups."
+msgstr "Vi ne estas grupano de iu ajn grupo."
+
+#. TRANS: Text shown after requesting groups a user is subscribed to.
+#. TRANS: This message supports plural forms. This message is followed by a
+#. TRANS: hard coded space and a comma separated list of subscribed groups.
+#: lib/command.php:890
+msgid "You are a member of this group:"
+msgid_plural "You are a member of these groups:"
+msgstr[0] "Vi estas grupano de jena grupo:"
+msgstr[1] "Vi estas grupano de jenaj grupoj:"
+
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5026,6 +5730,44 @@ msgid ""
 "tracks - not yet implemented.\n"
 "tracking - not yet implemented.\n"
 msgstr ""
+"Komandoj:\n"
+"on - ŝalti sciigon\n"
+"off - malŝalti sciigon\n"
+"help - montri ĉi tiun helpon\n"
+"follow <nickname> - aboni uzanton\n"
+"groups - listi grupon, kiujn vi aniĝis\n"
+"subscriptions - listi viajn abonatojn\n"
+"subscribers - listi viajn abonantojn\n"
+"leave <nickname> - malabnoi uzanton\n"
+"d <nickname> <text> - sendi rektan mesaĝon al uzanto\n"
+"get <nickname> - legi la lastan avizon de uzanto\n"
+"whois <nickname> - legi profilan informon pri uzanto\n"
+"lose <nickname> - ĉesigi la uzanton de sekvi vin\n"
+"fav <nickname> - ŝati la lastan avizon de uzanto\n"
+"fav #<notice_id> - ŝati la avizon kun la ID\n"
+"repeat #<notice_id> - ripeti la avizon kun la ID\n"
+"repeat <nickname> - ripeti la lastan avizon de uzanto\n"
+"reply #<notice_id> - respondi la avizon kun la ID\n"
+"reply <nickname> - respondi la lastan avizon de uzanto\n"
+"join <group> - aniĝi al grupo\n"
+"login - havi ligilon por ensaluti al reta interfaco\n"
+"drop <group> - foriri de gruop\n"
+"stats - legi vian staton\n"
+"stop - same kiel 'off'\n"
+"quit - same kiel 'off'\n"
+"sub <nickname> - same kiel 'follow'\n"
+"unsub <nickname> - same kiel 'leave'\n"
+"last <nickname> - same kiel 'get'\n"
+"on <nickname> - ankoraŭ ne realigita.\n"
+"off <nickname> - ankoraŭ ne realigita.\n"
+"nudge <nickname> - puŝeti la uzanton, ke li ĝisdatigu!\n"
+"invite <phone number> - ankoraŭ ne realigita.\n"
+"track <word> - ankoraŭ ne realigita.\n"
+"untrack <word> - ankoraŭ ne realigita.\n"
+"track off - ankoraŭ ne realigita.\n"
+"untrack all - ankoraŭ ne realigita.\n"
+"tracks - ankoraŭ ne realigita.\n"
+"tracking -ankoraŭ ne realigita.\n"
 
 #: lib/common.php:136
 msgid "I looked for configuration files in the following places: "
@@ -5041,51 +5783,89 @@ msgstr ""
 
 #: lib/connectsettingsaction.php:110
 msgid "IM"
-msgstr ""
+msgstr "Tujmesaĝilo"
 
 #: lib/connectsettingsaction.php:111
 msgid "Updates by instant messenger (IM)"
-msgstr ""
+msgstr "Ĝisdatiĝo per tujmesaĝilo."
 
 #: lib/connectsettingsaction.php:116
 msgid "Updates by SMS"
-msgstr ""
+msgstr "Ĝisdatiĝo per SMM"
+
+#: lib/connectsettingsaction.php:120
+msgid "Connections"
+msgstr "Konektoj"
+
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr "Konektitaj aplikaĵoj rajtigitaj"
 
 #: lib/dberroraction.php:60
 msgid "Database error"
+msgstr "Datumbaza eraro"
+
+#: lib/designsettings.php:105
+msgid "Upload file"
+msgstr "Alŝuti dosieron"
+
+#: lib/designsettings.php:109
+msgid ""
+"You can upload your personal background image. The maximum file size is 2MB."
 msgstr ""
+"Vi povas alŝuti vian propran fonbildon. La dosiera grandlimo estas 2MB."
+
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr "Desegnaj defaŭltoj konserviĝas."
+
+#: lib/disfavorform.php:114 lib/disfavorform.php:140
+msgid "Disfavor this notice"
+msgstr "Neŝati la avizon"
+
+#: lib/favorform.php:114 lib/favorform.php:140
+msgid "Favor this notice"
+msgstr "Ŝati la avizon"
 
 #: lib/favorform.php:140
 msgid "Favor"
-msgstr ""
+msgstr "Ŝati"
 
 #: lib/feed.php:85
 msgid "RSS 1.0"
-msgstr ""
+msgstr "RSS 1.0"
 
 #: lib/feed.php:87
 msgid "RSS 2.0"
-msgstr ""
+msgstr "RSS 2.0"
 
 #: lib/feed.php:89
 msgid "Atom"
-msgstr ""
+msgstr "Atom"
 
 #: lib/feed.php:91
 msgid "FOAF"
-msgstr ""
+msgstr "FOAF"
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "Elporti datumon"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
-msgstr ""
+msgstr "Filtrilo-etikedoj"
+
+#: lib/galleryaction.php:131
+msgid "All"
+msgstr "Ĉiuj"
 
 #: lib/galleryaction.php:139
 msgid "Select tag to filter"
-msgstr ""
+msgstr "Eletu etikedon por filtrado"
+
+#: lib/galleryaction.php:140
+msgid "Tag"
+msgstr "Etikedo"
 
 #: lib/galleryaction.php:141
 msgid "Choose a tag to narrow list"
@@ -5100,40 +5880,123 @@ msgstr "Iri"
 msgid "Grant this user the \"%s\" role"
 msgstr ""
 
+#: lib/groupeditform.php:163
+msgid "URL of the homepage or blog of the group or topic"
+msgstr "URL de la hejmpaĝo aŭ blogo de la grupo aŭ temo"
+
 #: lib/groupeditform.php:168
 msgid "Describe the group or topic"
+msgstr "Priskribo de grupo aŭ temo"
+
+#: lib/groupeditform.php:170
+#, php-format
+msgid "Describe the group or topic in %d characters"
+msgstr "Priskribo de grupo aŭ temo, apenaŭ je %d literoj"
+
+#: lib/groupeditform.php:179
+msgid ""
+"Location for the group, if any, like \"City, State (or Region), Country\""
 msgstr ""
+"Loko de la grupo, se iu ajn, ekzemple \"Urbo, Stato (aŭ Regiono), Lando\""
 
 #: lib/groupeditform.php:187
 #, php-format
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
+"Kromaj alnomoj por la grupo, apartigita per komo aŭ spaco, apenaŭ %d literoj"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
+msgstr "Grupo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
 #, php-format
-msgid "Add or edit %s logo"
-msgstr ""
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Grupo %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Grupanoj"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Grupanoj de %s"
 
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr "Blokito"
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr "Blokito de %s"
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
 #: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr "Redakti agordon de grupo %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
+msgid "Logo"
+msgstr "Emblemo"
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s logo"
+msgstr "Aldoni aŭ redakti emblemon de %s"
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr ""
+msgstr "Aldoni aŭ redakti desegnon de %s"
+
+#: lib/groupsbymemberssection.php:71
+msgid "Groups with most members"
+msgstr "Grupoj kun plej multe da membroj"
 
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
-msgstr ""
+msgstr "Grupoj kun plej multe da avizoj"
 
 #: lib/grouptagcloudsection.php:56
 #, php-format
 msgid "Tags in %s group's notices"
-msgstr ""
+msgstr "Etikedoj en avizoj de gruop %s"
 
 #. TRANS: Client exception 406
 #: lib/htmloutputter.php:104
 msgid "This page is not available in a media type you accept"
-msgstr ""
+msgstr "La paĝo estas ne havebla je la komunikil-tipo, kiun vi akceptas"
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -5143,28 +6006,46 @@ msgstr ""
 
 #: lib/imagefile.php:163 lib/imagefile.php:224
 msgid "Unknown file type"
-msgstr ""
+msgstr "Nekonata dosiertipo"
 
 #: lib/imagefile.php:244
 msgid "MB"
-msgstr ""
+msgstr "MB"
 
 #: lib/imagefile.php:246
 msgid "kB"
-msgstr ""
+msgstr "kB"
 
 #: lib/jabber.php:387
 #, php-format
 msgid "[%s]"
-msgstr ""
+msgstr "[%s]"
+
+#: lib/jabber.php:567
+#, php-format
+msgid "Unknown inbox source %d."
+msgstr "Nekonata alvenkesta fonto %d"
+
+#: lib/joinform.php:114
+msgid "Join"
+msgstr "Aniĝi"
 
 #: lib/leaveform.php:114
 msgid "Leave"
 msgstr "Forlasi"
 
+#: lib/logingroupnav.php:80
+msgid "Login with a username and password"
+msgstr "Ensaluti per via uzantnomo kaj pasvorto."
+
 #: lib/logingroupnav.php:86
 msgid "Sign up for a new account"
-msgstr ""
+msgstr "Krei novan konton"
+
+#. TRANS: Subject for address confirmation email
+#: lib/mail.php:174
+msgid "Email address confirmation"
+msgstr "Retpoŝtadresa konfirmo"
 
 #. TRANS: Body for address confirmation email.
 #: lib/mail.php:177
@@ -5184,12 +6065,20 @@ msgid ""
 "%s\n"
 msgstr ""
 
+#. TRANS: Subject of new-subscriber notification e-mail
+#: lib/mail.php:243
+#, php-format
+msgid "%1$s is now listening to your notices on %2$s."
+msgstr "%1$s nun rigardas viajn avizojn ĉe %2$s."
+
 #: lib/mail.php:248
 #, php-format
 msgid ""
 "If you believe this account is being used abusively, you can block them from "
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
+"Se vi kredas, ke ĉi tiun konton iu misuzas, vi rajtas bloki ĝin de via "
+"abonanto-listo kaj raporti ĝin kiel rubmesaĝanto al administrantoj ĉe %s"
 
 #. TRANS: Main body of new-subscriber notification e-mail
 #: lib/mail.php:254
@@ -5207,6 +6096,18 @@ msgid ""
 "Change your email address or notification options at %8$s\n"
 msgstr ""
 
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/mail.php:274
+#, php-format
+msgid "Bio: %s"
+msgstr "Biografio: %s"
+
+#. TRANS: Subject of notification mail for new posting email address
+#: lib/mail.php:304
+#, php-format
+msgid "New email address for posting to %s"
+msgstr "Nova retpoŝta adreso por afiŝi ĉe %s"
+
 #. TRANS: Body of notification mail for new posting email address
 #: lib/mail.php:308
 #, php-format
@@ -5221,17 +6122,28 @@ msgid ""
 "%4$s"
 msgstr ""
 
+#. TRANS: Subject line for SMS-by-email notification messages
+#: lib/mail.php:433
+#, php-format
+msgid "%s status"
+msgstr "%s stato"
+
+#. TRANS: Subject line for SMS-by-email address confirmation message
+#: lib/mail.php:460
+msgid "SMS confirmation"
+msgstr "SMS-a konfirmo"
+
 #. TRANS: Main body heading for SMS-by-email address confirmation message
 #: lib/mail.php:463
 #, php-format
 msgid "%s: confirm you own this phone number with this code:"
-msgstr ""
+msgstr "%s: konfirmi ke vi havas la telefonnumeron per tiu ĉi kodo:"
 
 #. TRANS: Subject for 'nudge' notification email
 #: lib/mail.php:484
 #, php-format
 msgid "You've been nudged by %s"
-msgstr ""
+msgstr "Vin puŝetis %s"
 
 #. TRANS: Body for 'nudge' notification email
 #: lib/mail.php:489
@@ -5250,6 +6162,12 @@ msgid ""
 "%4$s\n"
 msgstr ""
 
+#. TRANS: Subject for direct-message notification email
+#: lib/mail.php:536
+#, php-format
+msgid "New private message from %s"
+msgstr "Nova privata mesaĝo de %s"
+
 #. TRANS: Body for direct-message notification email
 #: lib/mail.php:541
 #, php-format
@@ -5270,6 +6188,12 @@ msgid ""
 "%5$s\n"
 msgstr ""
 
+#. TRANS: Subject for favorite notification email
+#: lib/mail.php:589
+#, php-format
+msgid "%s (@%s) added your notice as a favorite"
+msgstr "%s (@%s) ŝatis vian avizon"
+
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
 #, php-format
@@ -5300,6 +6224,9 @@ msgid ""
 "\n"
 "\t%s"
 msgstr ""
+"La tutan interparolon oni povas legi jene:\n"
+"\n"
+"%s"
 
 #: lib/mail.php:657
 #, php-format
@@ -5334,62 +6261,89 @@ msgid ""
 "P.S. You can turn off these email notifications here: %8$s\n"
 msgstr ""
 
+#: lib/mailbox.php:89
+msgid "Only the user can read their own mailboxes."
+msgstr "Nur uzanto povas legi sian propran paŝton."
+
 #: lib/mailbox.php:139
 msgid ""
 "You have no private messages. You can send private message to engage other "
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
+"Vi ne ricevis privatan mesaĝon. Vi povas sendi privatan mesaĝon al iu kaj "
+"interparoli kun ili. Homo sendas al vi mesaĝon al vi sole."
 
 #: lib/mailbox.php:228 lib/noticelist.php:506
 msgid "from"
-msgstr ""
+msgstr "de"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
+
+#: lib/messageform.php:120
+msgid "Send a direct notice"
 msgstr ""
 
 #: lib/messageform.php:146
@@ -5408,45 +6362,56 @@ msgstr "Sendi"
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
-msgstr ""
+msgstr "Kio novas, %s?"
 
 #: lib/noticeform.php:193
 msgid "Attach"
-msgstr ""
+msgstr "Aldoni"
 
 #: lib/noticeform.php:197
 msgid "Attach a file"
-msgstr ""
+msgstr "Aldoni dosieron"
 
 #: lib/noticeform.php:213
 msgid "Share my location"
-msgstr ""
+msgstr "Sciigi mian lokon"
+
+#: lib/noticeform.php:216
+msgid "Do not share my location"
+msgstr "Ne sciigi mian lokon"
 
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
+"Pardonon, legi vian lokon estas pli malrapide, ol ni pensis. Bonvolu reprovi "
+"poste."
+
+#. TRANS: Used in coordinates as abbreviation of north
+#: lib/noticelist.php:436
+msgid "N"
+msgstr "N"
 
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
-msgstr ""
+msgstr "S"
 
 #. TRANS: Used in coordinates as abbreviation of east
 #: lib/noticelist.php:440
 msgid "E"
-msgstr ""
+msgstr "E"
 
 #. TRANS: Used in coordinates as abbreviation of west
 #: lib/noticelist.php:442
 msgid "W"
-msgstr ""
+msgstr "W"
 
 #: lib/noticelist.php:444
 #, php-format
 msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
-msgstr ""
+msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
 
 #: lib/noticelist.php:453
 msgid "at"
@@ -5454,21 +6419,86 @@ msgstr "al"
 
 #: lib/noticelist.php:502
 msgid "web"
-msgstr ""
+msgstr "reto"
+
+#: lib/noticelist.php:568
+msgid "in context"
+msgstr "kuntekste"
+
+#: lib/noticelist.php:630
+msgid "Reply to this notice"
+msgstr "Respondi ĉi tiun avizon"
 
 #: lib/noticelist.php:631
 msgid "Reply"
-msgstr ""
+msgstr "Respondi"
+
+#: lib/noticelist.php:675
+msgid "Notice repeated"
+msgstr "Avizo ripetiĝas"
+
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr "Puŝeti la uzanton"
+
+#: lib/nudgeform.php:128
+msgid "Nudge"
+msgstr "Puŝeti"
+
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr "Sendi puŝeton al la uzanto"
+
+#: lib/oauthstore.php:283
+msgid "Error inserting new profile."
+msgstr "Eraris enmeti novan profilon"
+
+#: lib/oauthstore.php:291
+msgid "Error inserting avatar."
+msgstr "Eraris enmeti novan vizaĝbildon."
+
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
+msgstr "Eraris enmeti foran profilon."
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Refoja avizo."
+
+#: lib/oauthstore.php:491
+msgid "Couldn't insert new subscription."
+msgstr "Eraris enmeti novan abonon."
+
+#: lib/personalgroupnav.php:99
+msgid "Personal"
+msgstr "Persona"
+
+#: lib/personalgroupnav.php:104
+msgid "Replies"
+msgstr "Respondoj"
+
+#: lib/personalgroupnav.php:114
+msgid "Favorites"
+msgstr "Ŝatolisto"
 
 #: lib/personalgroupnav.php:125
 msgid "Inbox"
-msgstr ""
+msgstr "Alvenkesto"
+
+#: lib/personalgroupnav.php:126
+msgid "Your incoming messages"
+msgstr "Viaj alvenaj mesaĝoj"
 
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
 msgstr ""
 
+#: lib/profileaction.php:126
+msgid "All subscriptions"
+msgstr ""
+
 #. TRANS: Average count of posts made per day since account registration
 #: lib/profileaction.php:235
 msgid "Daily average"
@@ -5502,25 +6532,42 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
-msgstr ""
+msgstr "Serĉi ĉe retejo"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
-msgstr ""
+msgstr "Serĉvorto(j)"
 
-#: lib/searchaction.php:162
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
+msgid "Search"
+msgstr "Serĉi"
+
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
-msgstr ""
+msgstr "Serĉa gvido"
+
+#: lib/searchgroupnav.php:80
+msgid "People"
+msgstr "Homon"
 
 #: lib/searchgroupnav.php:81
 msgid "Find people on this site"
-msgstr ""
+msgstr "Serĉi homon ĉe la retejo"
 
 #: lib/searchgroupnav.php:83
 msgid "Find content of notices"
-msgstr ""
+msgstr "Serĉi enhavon ĉe la retejo"
+
+#: lib/searchgroupnav.php:85
+msgid "Find groups on this site"
+msgstr "Serĉi grupon ĉe la retejo"
 
 #: lib/section.php:89
 msgid "Untitled section"
@@ -5534,6 +6581,34 @@ msgstr "Pli..."
 msgid "Silence"
 msgstr "Silento"
 
+#: lib/silenceform.php:78
+msgid "Silence this user"
+msgstr "Silentigi la uzanton"
+
+#: lib/subgroupnav.php:83
+#, php-format
+msgid "People %s subscribes to"
+msgstr "Abonatoj de %s"
+
+#: lib/subgroupnav.php:91
+#, php-format
+msgid "People subscribed to %s"
+msgstr "Abonantoj de %s"
+
+#: lib/subgroupnav.php:99
+#, php-format
+msgid "Groups %s is a member of"
+msgstr "Grupoj de %s"
+
+#: lib/subgroupnav.php:105
+msgid "Invite"
+msgstr "Inviti"
+
+#: lib/subgroupnav.php:106
+#, php-format
+msgid "Invite friends and colleagues to join you on %s"
+msgstr "Inviti amikojn kaj kolegojn al %s kun vi"
+
 #: lib/subscriberspeopleselftagcloudsection.php:48
 #: lib/subscriptionspeopleselftagcloudsection.php:48
 msgid "People Tagcloud as self-tagged"
@@ -5544,6 +6619,10 @@ msgstr ""
 msgid "People Tagcloud as tagged"
 msgstr ""
 
+#: lib/tagcloudsection.php:56
+msgid "None"
+msgstr ""
+
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
 msgstr ""
@@ -5582,16 +6661,32 @@ msgstr ""
 
 #: lib/topposterssection.php:74
 msgid "Top posters"
-msgstr ""
+msgstr "Pintaj afiŝantoj"
 
 #: lib/unsandboxform.php:69
 msgid "Unsandbox"
 msgstr ""
 
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr "Nesilentigi"
+
+#: lib/unsilenceform.php:78
+msgid "Unsilence this user"
+msgstr "Nesilentigi la uzanton"
+
+#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
+msgid "Unsubscribe from this user"
+msgstr ""
+
 #: lib/unsubscribeform.php:137
 msgid "Unsubscribe"
 msgstr "Malaboni"
 
+#: lib/userprofile.php:117
+msgid "Edit Avatar"
+msgstr "Redakti vizaĝbildon"
+
 #: lib/userprofile.php:234 lib/userprofile.php:248
 msgid "User actions"
 msgstr "Nekonata ago"
@@ -5623,37 +6718,57 @@ msgid "Moderator"
 msgstr "Moderanto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "antaŭ kelkaj sekundoj"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "antaŭ ĉirkaŭ unu minuto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "antaŭ ĉirkaŭ %d minutoj"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "antaŭ ĉirkaŭ unu horo"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "antaŭ ĉirkaŭ %d horoj"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "antaŭ ĉirkaŭ unu tago"
 
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1124
+#, php-format
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#. TRANS: Used in notices to indicate when the notice was made compared to now.
+#: lib/util.php:1131
+#, php-format
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+
 #: lib/webcolor.php:123
 #, php-format
 msgid "%s is not a valid color! Use 3 or 6 hex chars."
index c7523164d448b420e7ddc245cebd7ae6c5367894..22cd7512f0840829a3962987bec475e63188043a 100644 (file)
@@ -1,33 +1,36 @@
-# Translation of StatusNet to Spanish
+# Translation of StatusNet - Core to Spanish (Español)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Crazymadlover
-# Author@translatewiki.net: Locos epraix
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: PerroVerd
-# Author@translatewiki.net: Peter17
-# Author@translatewiki.net: Translationista
+# Author: Brion
+# Author: Crazymadlover
+# Author: Locos epraix
+# Author: McDutchie
+# Author: Patcito
+# Author: PerroVerd
+# Author: Peter17
+# Author: Translationista
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:04+0000\n"
-"Language-Team: Spanish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:40+0000\n"
+"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: es\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Acceder"
 
@@ -80,10 +83,10 @@ msgstr "Guardar la configuración de acceso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Guardar"
@@ -96,15 +99,15 @@ msgstr "No existe tal página."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -204,16 +207,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "¡Actualizaciones de %1$s y sus amistades en %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -228,21 +231,23 @@ msgstr "¡Actualizaciones de %1$s y sus amistades en %2$s!"
 msgid "API method not found."
 msgstr "Método de API no encontrado."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Este método requiere un POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -250,27 +255,27 @@ msgstr ""
 "Tienes que especificar un parámetro llamdao 'dispositivo' con un valor a "
 "elegir entre: sms, im, ninguno."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "No se pudo actualizar el usuario."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "El usuario no tiene un perfil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "No se pudo guardar el perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -282,30 +287,30 @@ msgstr ""
 "El servidor no ha podido manejar tanta información del tipo POST (% de "
 "bytes) a causa de su configuración actual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "No se pudo grabar tu configuración de diseño."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "No se pudo actualizar tu diseño."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "¡No puedes bloquearte a tí mismo!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Falló bloquear usuario."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Falló desbloquear usuario."
 
@@ -329,59 +334,59 @@ msgstr "Mensajes directos a %s"
 msgid "All the direct messages sent to %s"
 msgstr "Todos los mensajes directos enviados a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "¡Sin texto de mensaje!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Demasiado largo. Tamaño máx. de los mensajes es %d caracteres."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "No se encuentra usuario receptor."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "No se puede enviar mensajes directos a usuarios que no son tu amigo."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "No se encontró estado para ese ID"
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Este status ya está en favoritos."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "No se pudo crear favorito."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Este status no es un favorito."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "No se pudo borrar favorito."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "No se pudo seguir al usuario: Perfil no encontrado."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "No puede seguir al usuario: %s ya esta en su lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "No se pudo dejar de seguir al usuario. Usuario no encontrado"
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "No puedes dejar de seguirte a ti mismo."
 
@@ -397,7 +402,7 @@ msgstr "No se pudo determinar el usuario fuente."
 msgid "Could not find target user."
 msgstr "No se pudo encontrar ningún usuario de destino."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -405,95 +410,95 @@ msgstr ""
 "El usuario debe tener solamente letras minúsculas y números y no puede tener "
 "espacios."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "El usuario ya existe. Prueba con otro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Usuario inválido"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "La página de inicio no es un URL válido."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Tu nombre es demasiado largo (max. 255 carac.)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "La descripción es demasiado larga (máx. %d caracteres)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "La ubicación es demasiado larga (máx. 255 caracteres)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "¡Muchos seudónimos! El máximo es %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Alias inválido: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "El alias \"%s\" ya está en uso. Intenta usar otro."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "El alias no puede ser el mismo que el usuario."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Grupo no encontrado."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Ya eres miembro de ese grupo"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Has sido bloqueado de ese grupo por el administrador."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "No se pudo unir el usuario %s al grupo %s"
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "No eres miembro de este grupo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -523,7 +528,7 @@ msgstr "Grupos %s"
 msgid "groups on %s"
 msgstr "Grupos en %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Carga falló."
 
@@ -537,9 +542,9 @@ msgstr "Token inválido."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -587,8 +592,8 @@ msgstr "El token de solicitud %2 ha sido denegado y revocado."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -652,18 +657,18 @@ msgstr "Este método requiere un PUBLICAR O ELIMINAR"
 msgid "You may not delete another user's status."
 msgstr "No puedes borrar el estado de otro usuario."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "No existe ese aviso."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "No puedes repetir tus propias notificaciones."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Esta notificación ya se ha repetido."
 
@@ -675,21 +680,21 @@ msgstr "Status borrado."
 msgid "No status with that ID found."
 msgstr "No hay estado para ese ID"
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "El cliente debe proveer un parámetro de 'status' con un valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "La entrada es muy larga. El tamaño máximo es de %d caracteres."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "No encontrado."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -891,7 +896,9 @@ msgid "Yes"
 msgstr "Sí"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloquear este usuario."
 
@@ -934,11 +941,13 @@ msgstr ""
 msgid "Unblock user from group"
 msgstr "Desbloquear usuario de grupo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloquear"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Desbloquear este usuario"
 
@@ -977,9 +986,9 @@ msgstr "Esa dirección ya fue confirmada."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -987,7 +996,7 @@ msgstr "No se pudo actualizar el usuario."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "No se pudo eliminar la confirmación de correo electrónico."
@@ -1023,9 +1032,10 @@ msgstr "Aplicación no encontrada."
 msgid "You are not the owner of this application."
 msgstr "No eres el propietario de esta aplicación."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Hubo problemas con tu clave de sesión."
 
@@ -1059,7 +1069,7 @@ msgstr "Borrar esta aplicación"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "No conectado."
@@ -1122,7 +1132,6 @@ msgstr "Borrar este usuario"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Diseño"
 
@@ -1243,13 +1252,13 @@ msgstr "Restaurar los diseños predeterminados"
 msgid "Reset back to default"
 msgstr "Volver a los valores predeterminados"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Guardar"
@@ -1405,7 +1414,7 @@ msgstr "Actual dirección de correo electrónico confirmada"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1423,22 +1432,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Correo electrónico, como \"NombredeUsuario@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1446,113 +1459,113 @@ msgstr "Añadir"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Correo entrante"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Envie emails a esta dirección para ingresar nuevos avisos"
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Hace una nueva dirección de correo para postear; cancela la anterior."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nuevo"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferencias de correo electrónico"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Enviarme avisos de suscripciones nuevas por correo."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Enviarme un correo electrónico cuando alguien agrega mi aviso a favoritos."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "Enviarme un correo electrónico cuando alguien me envía un mensaje privado."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 "Enviarme un correo electrónico cuando alguien me envíe una \"@-respuesta\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permitir que amigos me contacten y envién un correo."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Deseo enviar estados por email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publicar un MicroID para mi dirección de correo."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Preferencias de correo electrónico guardadas."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Sin dirección de correo electrónico"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "No se puede normalizar esta dirección de correo electrónico."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Correo electrónico no válido"
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Esa ya es tu dirección de correo electrónico"
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Esa dirección de correo pertenece a otro usuario."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "No se pudo insertar el código de confirmación."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1564,50 +1577,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ninguna confirmación pendiente para cancelar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Esa es la dirección de correo electrónico incorrecta."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Confirmación de correo electrónico cancelada."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Esa no es tu dirección de correo electrónico"
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "La dirección de correo electrónico ha sido eliminada."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "No hay dirección de correo entrante."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "No se pudo actualizar información de usuario."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Dirección de correo entrante removida."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nueva dirección de correo entrante agregada."
 
@@ -1726,7 +1739,7 @@ msgstr "No se pudo convertir el token de solicitud en token de acceso."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "El servicio remoto utiliza una versión desconocida del protocolo OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Error al actualizar el perfil remoto."
 
@@ -1783,7 +1796,7 @@ msgstr "Usuario ya está bloqueado del grupo."
 msgid "User is not a member of group."
 msgstr "Usuario no es miembro del grupo"
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloquear usuario de grupo"
 
@@ -1867,39 +1880,49 @@ msgstr "Logo actualizado."
 msgid "Failed updating logo."
 msgstr "Error al actualizar el logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Miembros del grupo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s miembros de grupo, página %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Lista de los usuarios en este grupo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Admin"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Bloquear"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Convertir al usuario en administrador del grupo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Convertir en administrador"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Convertir a este usuario en administrador"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2039,7 +2062,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2050,64 +2076,64 @@ msgstr ""
 "mensajería instantánea o en GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferencias de mensajería instantánea"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Enviarme avisos por Jabber/GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Enviar un aviso cuando el estado de mi Jabber/GTalk cambie."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Envirame respuestas por medio de Jabber/GTalk de gente a la cual no sigo."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publicar un MicroID para mi cuenta Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferencias guardadas."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Ningún Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "No se puede normalizar este Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Jabber ID no válido"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Ese ya es tu Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "El Jabber ID ya pertenece a otro usuario."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2118,28 +2144,28 @@ msgstr ""
 "mensajes."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Esa dirección de mensajería instantánea es incorrecta."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "No se pudo eliminar la confirmación de mensajería instantánea."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Confirmación de mensajería instantánea cancelada."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Ese no es tu Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "La dirección de mensajería instantánea ha sido eliminada."
 
@@ -2612,8 +2638,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Solamente %s URLs sobre HTTP simples por favor."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "No es un formato de dato soportado"
 
@@ -2754,7 +2780,7 @@ msgid "Password saved."
 msgstr "Se guardó Contraseña."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Rutas"
 
@@ -2968,7 +2994,7 @@ msgstr "Nombre completo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Página de inicio"
 
@@ -3075,7 +3101,7 @@ msgid "Couldn't save tags."
 msgstr "No se pudo guardar las etiquetas."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Se guardó configuración."
 
@@ -3624,7 +3650,7 @@ msgstr "Al usuario ya se le ha impuesto restricciones."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sesiones"
 
@@ -3662,24 +3688,24 @@ msgid "Application profile"
 msgstr "Perfil de la aplicación"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icono"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nombre"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organización"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descripción"
 
@@ -3793,7 +3819,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Esta es una manera de compartir lo que te gusta."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupo %s"
@@ -3845,7 +3871,7 @@ msgstr "Canal de avisos del grupo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Amistades de amistades del grupo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Miembros"
 
@@ -4302,7 +4328,7 @@ msgstr "No ingresó código"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Capturas"
 
@@ -4994,18 +5020,18 @@ msgid "Problem saving notice."
 msgstr "Hubo un problema al guardar el aviso."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Mal tipo proveído a saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Hubo un problema al guarda la bandeja de entrada del grupo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5036,7 +5062,7 @@ msgid "Unable to save tag."
 msgstr "Incapaz de grabar etiqueta."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Se te ha prohibido la suscripción."
 
@@ -5179,7 +5205,8 @@ msgid "Change site configuration"
 msgstr "Cambiar la configuración del sitio"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Admin"
@@ -5256,7 +5283,7 @@ msgstr "Buscar"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Aviso de sitio"
 
@@ -5320,7 +5347,10 @@ msgid "StatusNet software license"
 msgstr "Licencia de software de StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5330,13 +5360,16 @@ msgstr ""
 "[%%site.broughtby%%**](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** es un servicio de microblogueo."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5348,34 +5381,35 @@ msgstr ""
 "licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licencia de contenido del sitio"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "El contenido y datos de %1$s son privados y confidenciales."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 "Copyright del contenido y los datos de%1$s. Todos los derechos reservados."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Derechos de autor de contenido y datos por los colaboradores. Todos los "
 "derechos reservados."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
@@ -5383,19 +5417,19 @@ msgstr ""
 "$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginación"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Después"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Antes"
 
@@ -5406,208 +5440,243 @@ msgstr ""
 "A espera de un elemento de alimentación de raíz, pero se obtuvo un documento "
 "XML entero."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Aún no se puede manejar contenido remoto."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Aún no se puede manejar contenido XML incrustado."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Aún no se puede manejar contenido incrustado Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "No puedes hacer cambios a este sitio."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "No se permite realizar cambios a ese panel."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() no implementada."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() no implementada."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "No se puede eliminar la configuración de diseño."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuración básica del sitio"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Sitio"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuración del diseño"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Diseño"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuración de usuario"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usuario"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuración de acceso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuración de rutas"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuración de sesiones"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Editar el aviso del sitio"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuración de instantáneas"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "API requiere acceso de lectura y escritura, pero sólo tienes acceso de "
 "lectura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Editar aplicación"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icono para esta aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Describe tu aplicación en %d caracteres"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Describe tu aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL de la página principal de esta aplicación"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "La URL de origen"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organización responsable de esta aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL de la página principal de la organización"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL al que se redirigirá después de la autenticación"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navegador"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Escritorio"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipo de aplicación, de navegador o de escritorio"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Solo lectura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Solo escritura"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Acceso predeterminado para esta aplicación: sólo lectura o lectura-escritura"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancelar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lectura y escritura"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "sólo lectura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprobado el %1$s - acceso \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revocar"
@@ -5627,11 +5696,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Proveedor"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Mensajes donde aparece este adjunto"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etiquetas de este archivo adjunto"
 
@@ -5643,6 +5714,11 @@ msgstr "El cambio de contraseña ha fallado"
 msgid "Password changing is not allowed"
 msgstr "No está permitido cambiar la contraseña"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloquear"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultados de comando"
@@ -5655,6 +5731,32 @@ msgstr "Comando completo"
 msgid "Command failed"
 msgstr "Comando falló"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "Ningún aviso con ese ID existe."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "El/La usuario/a no tiene ningún último aviso"
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "No se pudo encontrar el usuario con el apodo %s."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+"No se pudo encontrar a ningún usuario local con el nombre de usuario %s."
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5665,6 +5767,13 @@ msgstr "Disculpa, todavía no se implementa este comando."
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr "¡No tiene sentido darte un toque a ti mismo!"
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr "Zumbido enviado a %s."
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -5685,6 +5794,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Aviso marcado como favorito."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s se unió al grupo %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s dejo el grupo %2$s."
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5733,11 +5856,32 @@ msgstr "Mensaje muy largo - máximo %1$d caracteres, enviaste %2$d"
 msgid "Error sending direct message."
 msgstr "Error al enviar mensaje directo."
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "Se ha repetido el aviso de %s."
+
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
 msgstr "Ha habido un error al repetir el aviso."
 
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr "Mensaje demasiado largo - el máximo es de 140 caracteres, enviaste %d."
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "Se ha enviado la respuesta a %s."
+
 #. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
 #: lib/command.php:606
 msgid "Error saving notice."
@@ -5746,18 +5890,32 @@ msgstr "Error al guardar el aviso."
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "Especificar el nombre del usuario al cual se quiere suscribir."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "No te puedes suscribir a perfiles de OMB por orden."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "Suscrito a %s."
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
-msgstr ""
+msgstr "Especifica el nombre del usuario del cual cancelar la suscripción."
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "Cancelada la suscripción a %s."
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
@@ -5788,7 +5946,7 @@ msgstr "No se puede activar notificación."
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
-msgstr ""
+msgstr "El comando de inicio de sesión está inhabilitado."
 
 #. TRANS: Text shown after issuing the login command successfully.
 #. TRANS: %s is a logon link..
@@ -5796,6 +5954,15 @@ msgstr ""
 #, php-format
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
+"Este enlace es utilizable sólo una vez y es válido sólo durante dos minutos: "
+"%s."
+
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "Cancelada la suscripción a %s."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
@@ -5803,7 +5970,7 @@ msgid "You are not subscribed to anyone."
 msgstr "No estás suscrito a nadie."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5818,7 +5985,7 @@ msgid "No one is subscribed to you."
 msgstr "Nadie está suscrito a ti."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5833,7 +6000,7 @@ msgid "You are not a member of any groups."
 msgstr "No eres miembro de ningún grupo"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5841,6 +6008,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Eres miembro de este grupo:"
 msgstr[1] "Eres miembro de estos grupos:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5883,43 +6051,43 @@ msgid ""
 "tracking - not yet implemented.\n"
 msgstr ""
 "comandos:\n"
-"activar - activar notificaciones\n"
-"desactivar - desactivar notificaciones\n"
-"ayuda - mostrar esta ayuda\n"
-"seguir <usuario> - suscribirse al usuario\n"
-"grupos - listar los grupos que sigues\n"
-"suscripciones - listar las personas que sigues\n"
-"suscriptores - listar los grupos que te siguen\n"
-"abandonar <usuario> - cancelar la suscripción al usuario\n"
+"on - activar notificaciones\n"
+"off - desactivar notificaciones\n"
+"help - mostrar esta ayuda\n"
+"follow <usuario> - suscribirse al usuario\n"
+"groups - listar los grupos que sigues\n"
+"subscriptions - listar las personas que sigues\n"
+"subscribers - listar los grupos que te siguen\n"
+"leave <usuario> - cancelar la suscripción al usuario\n"
 "d <usuario> <text> - dirigir mensaje al usuario\n"
-"obtener <usuario> - obtener último aviso del usuario\n"
-"quienes <usuario> - obtener información del perfil del usuario\n"
-"bloquear <usuario> - obligar al usuario a que deje de seguirte\n"
+"get <usuario> - obtener último aviso del usuario\n"
+"whois <usuario> - obtener información del perfil del usuario\n"
+"lose <usuario> - obligar al usuario a que deje de seguirte\n"
 "fav <usuario> - añadir el último aviso del usario a tus favoritos\n"
 "fav #<id_aviso> - añadir el aviso con el ID dado a tus favoritos\n"
-"repetir #<id_aviso> - repetir el aviso con el ID dado\n"
-"repetir <usuario> - repetir el último aviso del usuario\n"
-"responder #<id_aviso> - responder al aviso del ID dado\n"
-"responder <usuario> - responder al último aviso del usuario\n"
-"unirse <grupo> - unirse a un grupo\n"
-"entrar - obtener un vínculo para iniciar sesión en la interfaz Web\n"
-"abandonar <grupo> - abandonar el grupo\n"
-"estadísticas - obtener tus estadísticas\n"
-"detener - igual que 'desactivar'\n"
-"parar - igual que 'desactivar'\n"
-"sus <usuario> - igual que 'seguir'\n"
-"desus <usuario> - igual que 'abandonar'\n"
-"último <usuario> - igual que 'obtener'\n"
-"activado <usuario> - aún sin implementar.\n"
-"desactivado <usuario> - aún sin implementar.\n"
-"toque <usuario> - recordarle a un ausuario que actualice.\n"
-"invitar <phone number> - aún sin implementar.\n"
-"rastrear <word> - aún sin implementar.\n"
-"no rastrear <word> - aún sin implementar.\n"
-"dejar de rastrear - aún sin implementar.\n"
-"dejar de rastrear todos - aún sin implementar.\n"
-"rastrear - aún sin implementar.\n"
-"rastreando - aún sin implementar.\n"
+"repeat #<id_aviso> - repetir el aviso con el ID dado\n"
+"repeat <usuario> - repetir el último aviso del usuario\n"
+"reply #<id_aviso> - responder al aviso del ID dado\n"
+"reply <usuario> - responder al último aviso del usuario\n"
+"join <grupo> - unirse a un grupo\n"
+"login - obtener un vínculo para iniciar sesión en la interfaz Web\n"
+"drop <grupo> - abandonar el grupo\n"
+"stats - obtener tus estadísticas\n"
+"stop - igual que 'desactivar'\n"
+"quit - igual que 'desactivar'\n"
+"sub <usuario> - igual que 'seguir'\n"
+"unsub <usuario> - igual que 'abandonar'\n"
+"last <usuario> - igual que 'obtener'\n"
+"on <usuario> - aún sin implementar.\n"
+"off <usuario> - aún sin implementar.\n"
+"nudge <usuario> - recordarle a un ausuario que actualice.\n"
+"invite <phone number> - aún sin implementar.\n"
+"track <word> - aún sin implementar.\n"
+"untrack <word> - aún sin implementar.\n"
+"track off - aún sin implementar.\n"
+"untrack all - aún sin implementar.\n"
+"tracks - aún sin implementar.\n"
+"tracking - aún sin implementar.\n"
 
 #: lib/common.php:135
 msgid "No configuration file found. "
@@ -6063,37 +6231,77 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Nombres adicionales para el grupo, separados por comas o espacios. Máximo: %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Grupo"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Bloqueado"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "usuarios bloqueados"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Editar propiedades del grupo %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Agregar o editar el logo de %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Agregar o editar el diseño de %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6126,7 +6334,8 @@ msgstr "El archivo es muy grande. El tamaño máximo permitido es %s."
 msgid "Partial upload."
 msgstr "Subida parcial"
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Error del sistema subir el archivo"
 
@@ -6531,18 +6740,21 @@ msgstr "Lo sentimos, pero no se permite correos entrantes"
 msgid "Unsupported message type: %s"
 msgstr "Tipo de mensaje no compatible: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Hubo un error en la base de datos mientras subías tu archivo. Por favor, "
 "inténtalo de nuevo."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "El archivo subido sobrepasa la directiva upload_max_filesize en php.ini"
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6550,43 +6762,59 @@ msgstr ""
 "El archivo subido sobrepasa la directiva MAX_FILE_SIZE que se especificó en "
 "el formulario HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "El archivo subido sólo fue parcialmente subido."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Falta una carpeta temporal."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "No se pudo escribir el archivo en el disco."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "La subida de archivos se detuvo por extensión."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Archivo sobrepasa la cuota del usuario."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "El archivo no se pudo mover al directorio de destino."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "No se pudo determinar tipo MIME del archivo"
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Pruebe a usar otro formato %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s no es un tipo de archivo soportado en este servidor."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6669,7 +6897,7 @@ msgstr "en"
 
 #: lib/noticelist.php:502
 msgid "web"
-msgstr ""
+msgstr "red"
 
 #: lib/noticelist.php:568
 msgid "in context"
@@ -6704,26 +6932,23 @@ msgid "Send a nudge to this user"
 msgstr "Dar un toque a este usuario"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Error al insertar el nuevo perfil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Error al insertar la imagen"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Error al actualizar el perfil remoto"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Error al insertar perfil remoto"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicar aviso"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "No se pudo insertar una nueva suscripción."
 
@@ -6760,7 +6985,8 @@ msgstr "Mensajes enviados"
 msgid "Tags in %s's notices"
 msgstr "Etiquetas en avisos de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Desconocido"
 
@@ -6854,19 +7080,24 @@ msgstr "Restringir"
 msgid "Sandbox this user"
 msgstr "Imponer restricciones a este usuario"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Buscar sitio"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Palabra(s) clave"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Buscar"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Buscar ayuda"
 
@@ -6979,6 +7210,8 @@ msgstr ""
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"El tema contiene nombres de extensiones de archivo inseguras y puede ser "
+"peligroso."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7064,56 +7297,64 @@ msgid "Moderator"
 msgstr "Moderador"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "hace unos segundos"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "hace un minuto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "hace %d minutos"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "hace una hora"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "hace %d horas"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "hace un día"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "hace %d días"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "hace un mes"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "hace %d meses"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "hace un año"
 
index c47908195264e09110bfc64d9d903aa205dcec2f..48982013ce530c45528ef983f559e866f436088d 100644 (file)
@@ -1,33 +1,35 @@
-# Translation of StatusNet to Persian
+# Translation of StatusNet - Core to Persian (فارسی)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: ArianHT
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Choxos
-# Author@translatewiki.net: Everplays
-# Author@translatewiki.net: Narcissus
+# Author: ArianHT
+# Author: Brion
+# Author: Choxos
+# Author: Everplays
+# Author: Narcissus
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:12+0000\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:45+0000\n"
 "Last-Translator: Ahmad Sufi Mahmudi\n"
-"Language-Team: Persian\n"
+"Language-Team: Persian <http://translatewiki.net/wiki/Portal:fa>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Language-Code: fa\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "دسترسی"
 
@@ -80,10 +82,10 @@ msgstr "ذخیرهٔ تنظیمات دسترسی"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "ذخیره"
@@ -96,15 +98,15 @@ msgstr "چنین صفحه‌ای وجود ندارد."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -202,16 +204,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "به روز رسانی از %1$s و دوستان در %2$s"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -226,48 +228,50 @@ msgstr "به روز رسانی از %1$s و دوستان در %2$s"
 msgid "API method not found."
 msgstr "رابط مورد نظر پیدا نشد."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "برای استفاده از این روش باید اطلاعات را به صورت پست بفرستید"
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 "شما باید یک پارامتر را به نام device و مقدار sms، im یا none مشخص کنید."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "نمی‌توان کاربر را به‌هنگام‌سازی کرد."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "کاربر هیچ نمایه‌ای ندارد."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "نمی‌توان نمایه را ذخیره کرد."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -278,30 +282,30 @@ msgid ""
 msgstr ""
 "به دلیل تنظبمات، سرور نمی‌تواند این مقدار اطلاعات (%s بایت( را دریافت کند."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "نمی‌توان تنظیمات طرح‌تان را ذخیره کرد."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "نمی‌توان طرح‌تان به‌هنگام‌سازی کرد."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "شما نمی‌توانید خودتان رو مسدود کنید!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "مسدود کردن کاربر شکست خورد."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "باز کردن کاربر ناموفق بود."
 
@@ -325,66 +329,62 @@ msgstr "پیام‌های مستقیم به %s"
 msgid "All the direct messages sent to %s"
 msgstr "تمام پیام‌های مستقیم فرستاده‌شده به %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "هیچ پیام متنی وجود ندارد!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "این بسیار طولانی است. بیشینهٔ اندازهٔ پیام %d نویسه است."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "کاربر گیرنده یافت نشد."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "نمی‌توان پیام مستقیم را به کاربرانی که دوست شما نیستند، فرستاد."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "هیچ وضعیتی با آن شناسه پیدا نشد."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "این پیغام را پیش‌تر به برگزیده‌های خود اضافه کرده‌اید"
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "نمی‌توان پیام را برگزید."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "این پیام یک پیام برگزیده نیست."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "نمی‌توان پیام برگزیده را حذف کرد."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "نمی‌توان کاربر را دنبال نکرد: کاربر یافت نشد."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "نمی‌توان کاربر را دنبال کرد: %s  هم‌اکنون در لیست شما است."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "نمی‌توان کاربر را دنبال نکرد: کاربر یافت نشد."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "نمی‌توانید خودتان را دنبال کنید."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "نمی‌توان کاربر منبع را تعیین کرد."
@@ -393,96 +393,101 @@ msgstr "نمی‌توان کاربر منبع را تعیین کرد."
 msgid "Could not find target user."
 msgstr "نمی‌توان کاربر هدف را پیدا کرد."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "لقب باید شامل حروف کوچک و اعداد و بدون فاصله باشد."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی دیگر انتخاب کنید."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "لقب نا معتبر."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "صفحهٔ خانگی یک نشانی معتبر نیست."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "نام کامل خیلی طولانی است (حداکثر ۲۵۵ نویسه)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "توصیف خیلی طولانی است (حداکثر %d نویسه)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "نام مکان خیلی طولانی است (حداکثر ۲۵۵ نویسه)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "نام‌های مستعار بسیار زیاد هستند! حداکثر %d."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:268
+#, php-format
+msgid "Invalid alias: \"%s\"."
+msgstr "نام مستعار نامعتبر است: «%s»."
+
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "نام‌مستعار «%s» ازپیش گرفته‌شده‌است. یکی دیگر را امتحان کنید."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "نام و نام مستعار شما نمی تواند یکی باشد ."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "گروه یافت نشد."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "شما از پیش یک عضو این گروه هستید."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "دسترسی شما به گروه توسط مدیر آن محدود شده است."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "نمی‌توان کاربر %1$s را عضو گروه %2$s کرد."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "شما یک عضو این گروه نیستید."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -506,6 +511,10 @@ msgstr "%s گروه"
 msgid "groups on %s"
 msgstr "گروه‌ها در %s"
 
+#: actions/apimediaupload.php:100
+msgid "Upload failed."
+msgstr "بارگذاری شکست خورد."
+
 #: actions/apioauthauthorize.php:101
 msgid "No oauth_token parameter provided."
 msgstr "هیچ پارامتر oauth_token آماده نشده است."
@@ -516,9 +525,9 @@ msgstr "رمز نامعتبر است."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -530,7 +539,7 @@ msgstr "رمز نامعتبر است."
 #: actions/unsubscribe.php:69 actions/userauthorization.php:52
 #: lib/designsettings.php:294
 msgid "There was a problem with your session token. Try again, please."
-msgstr "مشکلی در دریافت جلسه‌ی شما وجود دارد. لطفا بعدا سعی کنید."
+msgstr "مشکلی در دریافت نشست شما وجود دارد. لطفا بعدا سعی کنید."
 
 #: actions/apioauthauthorize.php:135
 msgid "Invalid nickname / password!"
@@ -562,8 +571,8 @@ msgstr "نشانهٔ درخواست %s پذیرفته نشد و لغو شد."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -628,18 +637,18 @@ msgstr "این روش نیازمند POST یا DELETE است."
 msgid "You may not delete another user's status."
 msgstr "شما توانایی حذف وضعیت کاربر دیگری را ندارید."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "چنین پیامی وجود ندارد."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "نمی توانید پیام خود را تکرار کنید."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "قبلا آن پیام تکرار شده است."
 
@@ -651,21 +660,21 @@ msgstr "وضعیت حذف شد."
 msgid "No status with that ID found."
 msgstr "هیچ وضعیتی با آن شناسه یافت نشد."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "این خیلی طولانی است. بیشینهٔ طول پیام %d نویسه است."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "یافت نشد."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "بیشینهٔ طول پیام %d نویسه که شامل نشانی اینترنتی پیوست هم هست."
@@ -745,7 +754,7 @@ msgstr "بدون اندازه."
 
 #: actions/avatarbynickname.php:69
 msgid "Invalid size."
-msgstr "اندازه‌ی نادرست"
+msgstr "اندازه نادرست است."
 
 #. TRANS: Link description in user account settings menu.
 #: actions/avatarsettings.php:67 actions/showgroup.php:230
@@ -799,7 +808,8 @@ msgstr "هیچ پرونده‌ای بارگذاری نشد."
 
 #: actions/avatarsettings.php:332
 msgid "Pick a square area of the image to be your avatar"
-msgstr "یک مربع از عکس خود را انتخاب کنید تا چهره‌ی شما باشد."
+msgstr ""
+"یک مربع از عکس خود را انتخاب کنید تا به عنوان تصویر چهرهٔ شما انتخاب شود."
 
 #: actions/avatarsettings.php:347 actions/grouplogo.php:380
 msgid "Lost our file data."
@@ -867,7 +877,9 @@ msgid "Yes"
 msgstr "بله"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "کاربر را مسدود کن"
 
@@ -909,11 +921,13 @@ msgstr "فهرستی از افراد مسدود شده در پیوستن به ا
 msgid "Unblock user from group"
 msgstr "آزاد کردن کاربر در پیوستن به گروه"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "آزاد سازی"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "آزاد سازی کاربر"
 
@@ -952,9 +966,9 @@ msgstr "آن نشانی در حال حاضر تصدیق شده است."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -962,7 +976,7 @@ msgstr "نمی‌توان کاربر را به روز کرد."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "نمی‌توان تصدیق پست الکترونیک را پاک کرد."
@@ -998,9 +1012,10 @@ msgstr "برنامه یافت نشد."
 msgid "You are not the owner of this application."
 msgstr "شما مالک این برنامه نیستید."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "یک مشکل با رمز نشست شما وجود داشت."
 
@@ -1034,7 +1049,7 @@ msgstr "این برنامه حذف شود"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "شما به سیستم وارد نشده اید."
@@ -1097,7 +1112,6 @@ msgstr "حذف این کاربر"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "طرح"
 
@@ -1134,9 +1148,15 @@ msgstr "پوستهٔ وب‌گاه"
 msgid "Theme for the site."
 msgstr "پوسته برای وب‌گاه"
 
+#: actions/designadminpanel.php:467
+msgid "Custom theme"
+msgstr "پوستهٔ اختصاصی"
+
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
+"شما می‌توانید یک پوستهٔ اختصاصی StatusNet را به‌عنوان یک آرشیو .ZIP بارگذاری "
+"کنید."
 
 #: actions/designadminpanel.php:486 lib/designsettings.php:101
 msgid "Change background image"
@@ -1196,11 +1216,11 @@ msgstr "پیوندها"
 
 #: actions/designadminpanel.php:651
 msgid "Advanced"
-msgstr ""
+msgstr "پیشرفته"
 
 #: actions/designadminpanel.php:655
 msgid "Custom CSS"
-msgstr ""
+msgstr "CSS اختصاصی"
 
 #: actions/designadminpanel.php:676 lib/designsettings.php:247
 msgid "Use defaults"
@@ -1214,13 +1234,13 @@ msgstr "بازگرداندن طرح‌های پیش‌فرض"
 msgid "Reset back to default"
 msgstr "برگشت به حالت پیش گزیده"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "ذخیره‌کردن"
@@ -1368,7 +1388,7 @@ msgstr "نشانی پست الکترونیکی تایید شدهٔ کنونی"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1386,22 +1406,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "انصراف"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "نشانی پست الکترونیکی، مانند «UserName@example.org»"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1409,113 +1433,113 @@ msgstr "افزودن"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "پست الکترونیک ورودی"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 "برای فرستادن پیام با استفاده از پست الکترونیک به این نشانی نامه بفرستید."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "نشانی جدید برای فرستادن پیام ایجاد کن؛ نشانی قبلی لغو می‌شود."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "تازه"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "ترجیحات پست الکترونیکی"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "پیام‌های کسانی را که به تازگی دنبال می‌کنم با پست الکترونیک برایم بفرست."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "هرگاه کسی پیام من را به عنوان برگزیده اضافه کرد، به من نامه فرستاده شود."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "هر وقت کسی برای من پیام خصوصی فرستاد، مرا با پست الکترونیک با خبر کن."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "هرگاه کسی به من یک «@-پاسخ» می‌فرستد، به من نامه بفرست."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 "به دوستان اجازه داده شود که به من یادآوری کنند و یک نامه به من بفرستند."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "می‌خواهم با نامه پیام بفرستم."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "یک شناسه برای پست الکترونیک  من منتشر کن."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "ترجیحات پست الکترونیکی ذخیره شد."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "پست الکترونیک وجود ندارد."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "نمی‌توان نشانی را قانونی کرد"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "یک نشانی پست الکترونیکی معتبر نیست."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "هم اکنون نشانی شما همین است."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "این نشانی در حال حاضر متعلق به فرد دیگری است."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "نمی‌توان کد تایید را اضافه کرد."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1526,50 +1550,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "هیچ تاییدی برای فسخ کردن وجود ندارد."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "این نشانی پست الکترونیکی نادرست است."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "تایید پست الکترونیکی لغو شد."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "آن نشانی شما نیست."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "نشانی پست الکترونیکی پاک شده است."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "هیچ نشانی ورودی وجود ندارد."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "نمی‌توان اطلاعات کاربر را به روز کرد."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "نشانی ورودی پاک شد."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "نشانی ورودی جدید اضافه شد."
 
@@ -1637,7 +1661,7 @@ msgstr "کاربران ویژه"
 #: actions/featured.php:71
 #, php-format
 msgid "Featured users, page %d"
-msgstr "کاربران ویژه، صفحه‌ی %d"
+msgstr "کاربران ویژه، صفحهٔ %d"
 
 #: actions/featured.php:99
 #, php-format
@@ -1682,13 +1706,13 @@ msgstr "شما شناسایی نشده اید."
 
 #: actions/finishremotesubscribe.php:113
 msgid "Could not convert request token to access token."
-msgstr "نمی‌توان نشانه‌ی درخواست شما را به نشانه‌ی دسترسی تبدیل کرد."
+msgstr "نمی‌توان نشانهٔ درخواست شما را به نشانهٔ دسترسی تبدیل کرد."
 
 #: actions/finishremotesubscribe.php:118
 msgid "Remote service uses unknown version of OMB protocol."
-msgstr "خدمات مورد نظر از نسخه‌ی نا مفهومی از قرارداد OMB استفاده می‌کند."
+msgstr "خدمات مورد نظر از نسخهٔ نامفهومی از قرارداد OMB استفاده می‌کند."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "خطا هنگام به‌هنگام‌سازی نمایهٔ از راه دور."
 
@@ -1745,7 +1769,7 @@ msgstr "هم اکنون دسترسی کاربر به گروه مسدود شده
 msgid "User is not a member of group."
 msgstr "کاربر عضو گروه نیست."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "دسترسی کاربر به گروه مسدود شود"
 
@@ -1813,7 +1837,7 @@ msgstr "شما می‌توانید یک نشان برای گروه خود با 
 
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
-msgstr "Û\8cÚ© Ù\86احÛ\8cÙ\87â\80\8cÛ\8c Ù\85ربع Ø§Ø² ØªØµÙ\88Û\8cر Ø±Ø§ Ø§Ù\86تخاب Ú©Ù\86Û\8cد ØªØ§ Ø¨Ù\87 Ø¹Ù\86Ù\88اÙ\86 Ù\86شاÙ\86 Ø¨Ø§Ø´د."
+msgstr "Û\8cÚ© Ù\86احÛ\8cÙ\87â\80\8cÛ\8c Ù\85ربع Ø§Ø² ØªØµÙ\88Û\8cر Ø±Ø§ Ø§Ù\86تخاب Ú©Ù\86Û\8cد ØªØ§ Ø¨Ù\87 Ø¹Ù\86Ù\88اÙ\86 Ù\86شاÙ\86 Ø§Ù\86تخاب Ø´Ù\88د."
 
 #: actions/grouplogo.php:399
 msgid "Logo updated."
@@ -1823,39 +1847,49 @@ msgstr "نشان به‌هنگام‌سازی شد."
 msgid "Failed updating logo."
 msgstr "به‌هنگام‌سازی نشان شکست خورد."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "اعضای گروه %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "اعضای گروه %1$s، صفحهٔ %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "یک فهرست از کاربران در این گروه"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "مدیر"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "بازداشتن"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "کاربر یک مدیر گروه شود"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "مدیر شود"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "این کاربر یک مدیر شود"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1864,7 +1898,7 @@ msgstr "این کاربر یک مدیر شود"
 #: lib/atomgroupnoticefeed.php:63 lib/atomusernoticefeed.php:69
 #, php-format
 msgid "%s timeline"
-msgstr "خط زمانی %s"
+msgstr "خطزمانی %s"
 
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #: actions/grouprss.php:142
@@ -1994,7 +2028,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2004,63 +2041,63 @@ msgstr ""
 "به فهرست دوستان خود در کارگیر پیام‌رسان فوری‌تان یا در GTalk مطمئن شوید."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "ترجیحات پیام‌رسان فوری"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "پیام‌ها را از راه Jabber/GTalk برای من بفرست."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "هر وقت که وضعیت Jabber/Gtalk من تغییر کرد، یک پیام بفرست."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "پاسخ کسانی که من آن‌ها را دنبال نمی‌کنم را با Jabber/Gtalk برایم بفرست."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
-msgstr "یک شناسه‌ی کوچک برای Jabber/Gtalk من منتشر کن."
+msgstr "یک شناسهٔ کوچک برای Jabber/Gtalk من منتشر کن."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "تنظیمات ذخیره شد."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "هیچ شناسهٔ Jabber ای وجود ندارد."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
-msgstr "نمی‌توان شناسه‌ی Jabber را تایید کرد"
+msgstr "نمی‌توان شناسهٔ Jabber را تایید کرد"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
-msgstr "شناسه‌ی Jabber درست نیست"
+msgstr "شناسهٔ Jabber درست نیست"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "این شناسه Jabber کنونی شماست."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "شناسهٔ Jabber به یک کاربر دیگر مربوط است."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2070,28 +2107,28 @@ msgstr ""
 "برای فرستادن پیام به شما، تایید کنید."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "نشانی پیام رسان اشتباه است."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "نمی‌توان تایید پیام‌رسان فوری را پاک کرد."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "تایید پیام‌رسان فوری لغو شد."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
-msgstr "این شناسه‌ی Jabber شما نیست."
+msgstr "این شناسهٔ Jabber شما نیست."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "نشانی پیام‌رسان فوری پاک شده است."
 
@@ -2480,6 +2517,8 @@ msgstr "پیام‌هایی که با جست‌و‌جوی عبارت »%1$s« 
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
+"این کاربر اجازهٔ یادآوری‌کردن را نداده است یا پست‌الکترونیک خود را تایید یا "
+"تعیین نکرده است."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
@@ -2554,8 +2593,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "لطفا تنها از نشانی‌های اینترنتی %s از راه HTTP ساده استفاده کنید."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "یک قالب دادهٔ پشتیبانی‌شده نیست."
 
@@ -2585,7 +2624,7 @@ msgstr "کوتاه‌کردن نشانی‌های اینترنتی با"
 
 #: actions/othersettings.php:117
 msgid "Automatic shortening service to use."
-msgstr "کوتاه‌کننده‌ی نشانی مورد استفاده."
+msgstr "کوتاه‌کنندهٔ نشانی مورد استفاده."
 
 #: actions/othersettings.php:122
 msgid "View profile designs"
@@ -2597,7 +2636,7 @@ msgstr "نمایش دادن یا پنهان کردن طراحی‌های نما
 
 #: actions/othersettings.php:153
 msgid "URL shortening service is too long (max 50 chars)."
-msgstr "کوتاه کننده‌ی نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)."
+msgstr "کوتاه کنندهٔ نشانی بسیار طولانی است (بیش‌تر از ۵۰ حرف)."
 
 #: actions/otp.php:69
 msgid "No user ID specified."
@@ -2697,7 +2736,7 @@ msgid "Password saved."
 msgstr "گذرواژه ذخیره شد."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "مسیر ها"
 
@@ -2708,22 +2747,22 @@ msgstr "تنظیمات و نشانی محلی این وب‌گاه StatusNet."
 #: actions/pathsadminpanel.php:157
 #, php-format
 msgid "Theme directory not readable: %s."
-msgstr "شاخه‌ی پوسته‌ها قابل خواندن نیست: %s."
+msgstr "شاخهٔ پوسته‌ها قابل خواندن نیست: %s."
 
 #: actions/pathsadminpanel.php:163
 #, php-format
 msgid "Avatar directory not writable: %s."
-msgstr "شاخه‌ی تصویر چهره‌ها قابل نوشتن نیست: %s."
+msgstr "شاخهٔ تصویر چهره‌ها قابل نوشتن نیست: %s."
 
 #: actions/pathsadminpanel.php:169
 #, php-format
 msgid "Background directory not writable: %s."
-msgstr "شاخه‌ی پس زمینه‌ها قابل نوشتن نیست: %s."
+msgstr "شاخهٔ پس زمینه‌ها قابل نوشتن نیست: %s."
 
 #: actions/pathsadminpanel.php:177
 #, php-format
 msgid "Locales directory not readable: %s."
-msgstr "پوشه‌ی تنظیمات محلی قابل خواندن نیست: %s."
+msgstr "پوشهٔ تنظیمات محلی قابل خواندن نیست: %s."
 
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
@@ -2813,6 +2852,10 @@ msgstr "مسیر تصاویر پیش‌زمینه"
 msgid "Background directory"
 msgstr "شاخهٔ تصاویر پیش‌زمینه"
 
+#: actions/pathsadminpanel.php:320
+msgid "SSL"
+msgstr "SSL"
+
 #: actions/pathsadminpanel.php:323 actions/snapshotadminpanel.php:202
 msgid "Never"
 msgstr "هیچ وقت"
@@ -2904,7 +2947,7 @@ msgstr "نام‌کامل"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "صفحهٔ خانگی"
 
@@ -2932,6 +2975,10 @@ msgstr "شرح‌حال"
 msgid "Location"
 msgstr "موقعیت"
 
+#: actions/profilesettings.php:134 actions/register.php:480
+msgid "Where you are, like \"City, State (or Region), Country\""
+msgstr "مکانی که شما در آن هستید، مانند «شهر، ایالت (یا استان)، کشور»"
+
 #: actions/profilesettings.php:138
 msgid "Share my current location when posting notices"
 msgstr "مکان کنونی من هنگام فرستادن پیام‌ها به اشتراک گذاشته شود"
@@ -2977,7 +3024,7 @@ msgstr "شرح‌حال خیلی طولانی است (بیشینه %d نویسه
 
 #: actions/profilesettings.php:235 actions/siteadminpanel.php:151
 msgid "Timezone not selected."
-msgstr "منطقه‌ی زمانی انتخاب نشده است."
+msgstr "منطقهٔ زمانی انتخاب نشده است."
 
 #: actions/profilesettings.php:241
 msgid "Language is too long (max 50 chars)."
@@ -3005,7 +3052,7 @@ msgid "Couldn't save tags."
 msgstr "نمی‌توان نشان را ذخیره کرد."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "تنظیمات ذخیره شد."
 
@@ -3021,11 +3068,11 @@ msgstr "نمی‌توان جریان عمومی را دریافت کرد."
 #: actions/public.php:130
 #, php-format
 msgid "Public timeline, page %d"
-msgstr "خط زمانی عمومی، صفحه‌ی %d"
+msgstr "خط‌زمانی عمومی، صفحهٔ %d"
 
 #: actions/public.php:132 lib/publicgroupnav.php:79
 msgid "Public timeline"
-msgstr "خط زمانی عمومی"
+msgstr "خطزمانی عمومی"
 
 #: actions/public.php:160
 msgid "Public Stream Feed (RSS 1.0)"
@@ -3256,7 +3303,7 @@ msgstr "ثبت نام"
 
 #: actions/register.php:142
 msgid "Registration not allowed."
-msgstr "اجازه‌ی ثبت نام داده نشده است."
+msgstr "اجازهٔ ثبت‌نام داده نشده است."
 
 #: actions/register.php:205
 msgid "You can't register if you don't agree to the license."
@@ -3523,9 +3570,13 @@ msgstr "شما نمی‌توانید نقش‌های کاربری را در ای
 msgid "User doesn't have this role."
 msgstr "کاربر این نقش را ندارد."
 
+#: actions/rsd.php:146 actions/version.php:159
+msgid "StatusNet"
+msgstr "StatusNet"
+
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "نشست‌ها"
 
@@ -3559,24 +3610,24 @@ msgid "Application profile"
 msgstr "نمایهٔ برنامه"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "شمایل"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "نام"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "سازمان"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "توصیف"
 
@@ -3667,6 +3718,15 @@ msgstr ""
 "که دوست دارید کلیک کنید تا آن‌ها را برای بعد چوب‌الفها کنید یا یک نشانه روی "
 "آن‌ها بگذارید."
 
+#: actions/showfavorites.php:208
+#, php-format
+msgid ""
+"%s hasn't added any favorite notices yet. Post something interesting they "
+"would add to their favorites :)"
+msgstr ""
+"%s تاکنون هیچ پیامی را به برگزیده‌هایش اضافه نکرده است. چیز جالبی بفرستید که "
+"ممکن است به برگزیده‌هایشان اضافه کنند :)"
+
 #: actions/showfavorites.php:212
 #, php-format
 msgid ""
@@ -3681,7 +3741,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "این یک راه است برای به اشتراک گذاشتن آنچه که دوست دارید."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "گروه %s"
@@ -3733,7 +3793,7 @@ msgstr "خوراک پیام برای گروه %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF برای گروه %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "اعضا"
 
@@ -3914,6 +3974,11 @@ msgstr "نام وب‌گاه باید طولی غیر صفر داشته باشد
 msgid "You must have a valid contact email address."
 msgstr "شما باید یک نشانی پست الکترونیکی معتبر برای ارتباط داشته باشید."
 
+#: actions/siteadminpanel.php:159
+#, php-format
+msgid "Unknown language \"%s\"."
+msgstr "زبان «%s» ناشناس است."
+
 #: actions/siteadminpanel.php:165
 msgid "Minimum text limit is 0 (unlimited)."
 msgstr "کمینهٔ محدودیت متن ۰ است (نامحدود)."
@@ -4176,7 +4241,7 @@ msgstr "کدی وارد نشد"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "تصاویر لحظه‌ای"
 
@@ -4334,6 +4399,10 @@ msgstr ""
 msgid "%s is not listening to anyone."
 msgstr "%s هیچ‌کس را دنبال نمی‌کند."
 
+#: actions/subscriptions.php:208
+msgid "Jabber"
+msgstr "Jabber"
+
 #: actions/subscriptions.php:222 lib/connectsettingsaction.php:115
 msgid "SMS"
 msgstr "پیامک"
@@ -4616,6 +4685,11 @@ msgstr ""
 msgid "Updates from %1$s on %2$s!"
 msgstr "به روز رسانی‌های %1$s در %2$s"
 
+#: actions/version.php:75
+#, php-format
+msgid "StatusNet %s"
+msgstr "StatusNet %s"
+
 #: actions/version.php:155
 #, php-format
 msgid ""
@@ -4684,15 +4758,6 @@ msgstr ""
 msgid "Robin thinks something is impossible."
 msgstr ""
 
-#. TRANS: Message given if an upload is larger than the configured maximum.
-#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
-#: classes/File.php:190
-#, php-format
-msgid ""
-"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
-"Try to upload a smaller version."
-msgstr ""
-
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
 #: classes/File.php:202
@@ -4710,6 +4775,11 @@ msgstr ""
 "یک پرونده با این حجم زیاد می‌تواند از سهمیهٔ کاربری ماهانهٔ شما از %d بایت "
 "بگذرد."
 
+#. TRANS: Client exception thrown if a file upload does not have a valid name.
+#: classes/File.php:248 classes/File.php:263
+msgid "Invalid filename."
+msgstr "نام‌پرونده نادرست است."
+
 #. TRANS: Exception thrown when joining a group fails.
 #: classes/Group_member.php:42
 msgid "Group join failed."
@@ -4740,7 +4810,7 @@ msgstr "نمی‌توان رمز ورود را برای %s ایجاد کرد"
 #. TRANS: Exception thrown when database name or Data Source Name could not be found.
 #: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
-msgstr ""
+msgstr "هیچ پایگاه‌داده یا DSN هیچ‌جا پیدا نشد."
 
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
@@ -4757,7 +4827,7 @@ msgstr "پیغام نمی تواند درج گردد"
 #: classes/Notice.php:98
 #, php-format
 msgid "No such profile (%1$d) for notice (%2$d)."
-msgstr ""
+msgstr "چنین نمایه‌ای (%1$d) برای پیام (%2$d) وجود ندارد."
 
 #. TRANS: Server exception. %s are the error details.
 #: classes/Notice.php:193
@@ -4804,18 +4874,18 @@ msgid "Problem saving notice."
 msgstr "هنگام ذخیرهٔ پیام مشکلی ایجاد شد."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "هنگام ذخیرهٔ صندوق ورودی گروه مشکلی رخ داد."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4825,7 +4895,7 @@ msgstr "RT @%1$s %2$s"
 #: classes/Profile.php:737
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
-msgstr ""
+msgstr "نمی‌توان نقش «%1$s» را از کاربر  #%2$d گرفت، وجود ندارد."
 
 #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
@@ -4833,9 +4903,15 @@ msgstr ""
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
+"نمی‌توان نقش «%1$s» را از کاربر #%2$d گرفت، خطا در پایگاه داده وجود دارد."
+
+#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
+#: classes/Remote_profile.php:54
+msgid "Missing profile."
+msgstr "نمایه وجود ندارد."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "شما از اشتراک منع شده‌اید."
 
@@ -4978,7 +5054,8 @@ msgid "Change site configuration"
 msgstr "تغییر پیکربندی وب‌گاه"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "مدیر"
@@ -5055,7 +5132,7 @@ msgstr "جست‌وجو"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "پیام وب‌گاه"
 
@@ -5119,7 +5196,10 @@ msgid "StatusNet software license"
 msgstr "StatusNet مجوز نرم افزار"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5129,13 +5209,16 @@ msgstr ""
 "broughtbyurl%%) برای شما راه‌اندازی شده است."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** یک سرویس میکروبلاگینگ است."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5147,49 +5230,50 @@ msgstr ""
 "org/licensing/licenses/agpl-3.0.html) در دسترس است."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "مجوز محتویات وب‌گاه"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "محتویات و داده‌های %1$s خصوصی و محرمانه هستند."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "حق تکثیر محتوا و داده‌ها با %1$s است. تمام حقوق محفوظ است."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr "حق تکثیر محتوا و داده‌ها با مشارکت‌کنندگان است. تمام حقوق محفوظ است."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "تمام محتویات و داده‌های %1$s زیر مجوز %2$s در دسترس هستند."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "صفحه بندى"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "پس از"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "قبل از"
 
@@ -5199,207 +5283,242 @@ msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 "در حال انتظار برای یک عامل خوراک ریشه‌ای، اما یک سند XML کامل دریافت شد."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "هنوز نمی‌توان محتویات ازراه‌دور را به‌کار برد."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "هنوز نمی‌توان محتویات XML جاسازی‌شده را به‌کار برد."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "هنوز نمی‌توان محتوای جاسازی‌شدهٔ Base64 را به‌کار برد."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "شما نمی توانید در این وب‌گاه تغییر ایجاد کنید"
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "تغییرات در آن قطعه مجاز نیست."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() پیاده نشده است."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() پیاده نشده است."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "نمی توان تنظیمات طراحی شده را پاک کرد ."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "پیکربندی اولیه وب‌گاه"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "وب‌گاه"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "پیکربندی طرح"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "طرح"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "پیکربندی کاربر"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "کاربر"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "پیکربندی دسترسی"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "پیکربندی مسیرها"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "پیکربندی نشست‌ها"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "ویرایش پیام وب‌گاه"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "پیکربندی تصاویر لحظه‌ای"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "منبع API به دسترسی خواندن-نوشتن نیاز دارد، اما شما تنها دسترسی خواندن را "
 "دارید."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "ویرایش برنامه"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "شمایل این برنامه"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "برنامهٔ خود را در %d نویسه توصیف کنید"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "برنامهٔ خود را توصیف کنید"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "نشانی اینترنتی صفحهٔ خانگی این برنامه"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "نشانی اینترنتی منبع"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "سازمان مسئول این برنامه"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "نشانی اینترنتی برای صفحهٔ خانگی سازمان"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "نشانی اینترنتی برای دوباره‌هدایت‌کردن بعد از تصدیق"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "مرورگر"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "میزکار"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "نوع برنامه، مرورگر یا میزکار"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "تنها خواندنی"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "خواندن-نوشتن"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr "دسترسی پیش‌فرض برای این برنامه: تنها خواندنی یا خواندن-نوشتن"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "انصراف"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "خواندن-نوشتن"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "تنها خواندنی"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
-msgstr ""
+msgstr "تایید شده %1$s - با دسترسی «%2$s»"
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "لغو کردن"
@@ -5419,11 +5538,13 @@ msgstr "مؤلف"
 msgid "Provider"
 msgstr "مهیا کننده"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "پیام‌هایی که این پیوست در آن‌جا ظاهر می‌شود"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "برچسب‌ها برای این پیوست"
 
@@ -5435,6 +5556,11 @@ msgstr "تغییر گذرواژه شکست خورد"
 msgid "Password changing is not allowed"
 msgstr "تغییر گذرواژه مجاز نیست"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "بازداشتن"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "نتیجه دستور"
@@ -5447,6 +5573,25 @@ msgstr "دستور انجام شد"
 msgid "Command failed"
 msgstr "فرمان شکست خورد"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "پیامی با آن شناسه وجود ندارد."
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr "نمی‌توان یک کاربر را با نام مستعار %s پیدا کرد."
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5457,6 +5602,13 @@ msgstr "متاسفانه این دستور هنوز پیاده نشده است."
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr "خیلی جالب نیست که به خودتان یادآوری کنید!"
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr "یادآوری به %s فرستاده شد."
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -5477,6 +5629,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "پیام به‌عنوان برگزیده مشخص شد."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s به گروه %2$s پیوست."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s گروه %2$s را ترک کرد."
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5527,11 +5693,34 @@ msgstr ""
 msgid "Error sending direct message."
 msgstr "خطا در فرستادن پیام مستقیم."
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "پیام %s تکرار شد."
+
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
 msgstr "هنگام تکرار پیام خطایی رخ داد."
 
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr ""
+"پیام بسیار طولانی است - بیشترین اندازه امکان پذیر %d نویسه است، شما %d نویسه "
+"فرستاده‌اید"
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "پاسخ به %s فرستاده شد."
+
 #. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
 #: lib/command.php:606
 msgid "Error saving notice."
@@ -5547,12 +5736,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "نمی‌توان با دستور مشترک نمایه‌های OMB شد."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "اشتراک از %s لغو شد."
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -5582,7 +5785,7 @@ msgstr "ناتوان در روشن کردن آگاه سازی."
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
-msgstr ""
+msgstr "فرمان ورود غیرفعال شده است."
 
 #. TRANS: Text shown after issuing the login command successfully.
 #. TRANS: %s is a logon link..
@@ -5590,6 +5793,14 @@ msgstr ""
 #, php-format
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
+"این پیوند تنها یک‌بار قابل استفاده است و فقط برای دو دقیقه معتبر است: %s."
+
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "%s لغو اشتراک شد."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
@@ -5597,7 +5808,7 @@ msgid "You are not subscribed to anyone."
 msgstr "شما مشترک هیچ‌کسی نشده‌اید."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5611,7 +5822,7 @@ msgid "No one is subscribed to you."
 msgstr "هیچ‌کس مشترک شما نشده است."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5625,13 +5836,14 @@ msgid "You are not a member of any groups."
 msgstr "شما در هیچ گروهی عضو نیستید ."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "شما یک عضو این گروه هستید:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5843,37 +6055,77 @@ msgstr "مکان گروه، در صورت وجود داشتن، مانند «ش
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr "نام‌های مستعار اضافی برای گروه، با کاما- یا فاصله- جدا شود، بیشینه %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "گروه"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "مسدود شده"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s کاربر مسدود شده"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "خصوصیلت گروه %s ویرایش"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "نشان"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "افزودن یا ویرایش نشان"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "طرح %s را اضافه یا ویرایش کنید"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5902,7 +6154,8 @@ msgstr "فرمت(فایل) عکس پشتیبانی نشده."
 msgid "That file is too big. The maximum file size is %s."
 msgstr "این پرونده خیلی بزرگ است. بیشینهٔ اندازهٔ پرونده %s است."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "هنگام بارگذاری پرونده خطای سیستمی رخ داد."
 
@@ -6302,58 +6555,77 @@ msgstr "با عرض پوزش، اجازه‌ی ورودی پست الکترون
 msgid "Unsupported message type: %s"
 msgstr "نوع پیام پشتیبانی نشده است: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "یک خطای پایگاه داده هنگام ذخیره کردن فایل شما رخ داد. لطفا بعدا سعی کنید."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "نتها اندکی از فایل بارگذاری‌شده فرستاده شد."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "گم شدن یک پوشه ی موقتی."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "شکست خوردن در نوشتن فایل روی دیسک."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "بارگذاری پرونده توسط افزونه متوقف شد."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "پرونده از سهمیهٔ کاربر می‌گذرد."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "فایل نتوانست به دایرکتوری مقصد منتقل شود."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "نمی‌توان فرمت پرونده را تعیین کرد."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "تلاش برای امتحان نوع دیگر %s"
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s یک گونهٔ پروندهٔ پیشتیبانی شده روی این کارگزار نیست."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6466,26 +6738,23 @@ msgid "Send a nudge to this user"
 msgstr "یک یادآوری به این کاربر فرستاده شود"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "هنگام قرار دادن نمایهٔ تازه خطا رخ داد"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "هنگام افزودن چهره خطایی رخ داد"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "هنگام به‌روز کردن نمایهٔ از راه دور خطا رخ داد"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "هنگام افزودن نمایهٔ ازراه‌دور خطایی رخ داد"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "رونوشت‌برداری از پیام"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "نمی‌توان اشتراک تازه‌ای افزود."
 
@@ -6522,7 +6791,8 @@ msgstr "پیام‌های فرستاده شدهٔ شما"
 msgid "Tags in %s's notices"
 msgstr "برچسب‌ها در پیام‌های %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "ناشناخته"
 
@@ -6604,19 +6874,24 @@ msgstr "دسترسی کاربر به گروه مسدود شود"
 msgid "No single user defined for single-user mode."
 msgstr "هیچ کاربر تنهایی برای حالت تک کاربره مشخص نشده است."
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "جست‌وجوی وب‌گاه"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "کلمه(های) کلیدی"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "جست‌وجو"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "راهنمای جستجو"
 
@@ -6792,56 +7067,60 @@ msgid "Moderator"
 msgstr "مدیر"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "چند ثانیه پیش"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "حدود یک دقیقه پیش"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "حدود %d دقیقه پیش"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "حدود یک ساعت پیش"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "حدود %d ساعت پیش"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "حدود یک روز پیش"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "حدود %d روز پیش"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "حدود یک ماه پیش"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "حدود %d ماه پیش"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "حدود یک سال پیش"
 
index 804c96d2d72214ade96a3c0057166753493ebc3a..b67a82c9a9b028528e1bc7ff69358d19d561bf4e 100644 (file)
@@ -1,25 +1,30 @@
-# Translation of StatusNet to Finnish
+# Translation of StatusNet - Core to Finnish (Suomi)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Crt
-# Author@translatewiki.net: Jaakko
-# Author@translatewiki.net: McDutchie
+# Author: Crt
+# Author: Jaakko
+# Author: Josutus
+# Author: McDutchie
+# Author: Nike
+# Author: Str4nd
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:06+0000\n"
-"Language-Team: Finnish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:42+0000\n"
+"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: fi\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Checkbox instructions for admin setting "Private"
 #: actions/accessadminpanel.php:165
@@ -41,23 +46,34 @@ msgstr ""
 msgid "Closed"
 msgstr "Suljettu"
 
+#. TRANS: Button label to save e-mail preferences.
+#. TRANS: Button label to save IM preferences.
+#. TRANS: Button label to save SMS preferences.
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
+msgctxt "BUTTON"
+msgid "Save"
+msgstr "Tallenna"
+
 #. TRANS: Server error when page not found (404)
 #: actions/all.php:68 actions/public.php:98 actions/replies.php:93
 #: actions/showfavorites.php:138 actions/tag.php:52
 msgid "No such page."
-msgstr "Tuota tagia ei ole."
+msgstr "Sivua ei ole."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -72,12 +88,6 @@ msgstr "Tuota tagia ei ole."
 msgid "No such user."
 msgstr "Käyttäjää ei ole."
 
-#. TRANS: Page title. %1$s is user nickname, %2$d is page number
-#: actions/all.php:90
-#, php-format
-msgid "%1$s and friends, page %2$d"
-msgstr "%s ja kaverit"
-
 #. TRANS: Page title. %1$s is user nickname
 #. TRANS: H1 text. %1$s is user nickname
 #. TRANS: Message is used as link title. %s is a user nickname.
@@ -121,8 +131,8 @@ msgid ""
 "Try subscribing to more people, [join a group](%%action.groups%%) or post "
 "something yourself."
 msgstr ""
-"Kokeile useamman käyttäjän tilaamista, [liity ryhmään] (%%action.groups%%) "
-"tai lähetä päivitys itse."
+"Kokeile useamman käyttäjän tilaamista [liittymällä ryhmään](%%action.groups%"
+"%) tai kirjoita päivitys."
 
 #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
 #, php-format
@@ -134,7 +144,7 @@ msgstr ""
 #. TRANS: H1 text
 #: actions/all.php:182
 msgid "You and friends"
-msgstr "Sinä ja kaverit"
+msgstr "Sinä ja kaverisi"
 
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name.
@@ -144,39 +154,74 @@ msgstr "Sinä ja kaverit"
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Käyttäjän %1$s ja kavereiden päivitykset palvelussa %2$s!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#: actions/apiaccountratelimitstatus.php:72
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
+#: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
+#: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
+#: actions/apigroupshow.php:116 actions/apihelptest.php:88
+#: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
+#: actions/apistatusesshow.php:109 actions/apistatusnetconfig.php:141
+#: actions/apistatusnetversion.php:93 actions/apisubscriptions.php:111
+#: actions/apitimelinefavorites.php:174 actions/apitimelinefriends.php:271
+#: actions/apitimelinegroup.php:154 actions/apitimelinehome.php:175
+#: actions/apitimelinementions.php:174 actions/apitimelinepublic.php:241
+#: actions/apitimelineretweetedtome.php:121
+#: actions/apitimelineretweetsofme.php:152 actions/apitimelinetag.php:161
+#: actions/apitimelineuser.php:163 actions/apiusershow.php:101
+msgid "API method not found."
+msgstr "API-metodia ei löytynyt."
+
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
-msgstr "Tämä metodi edellyttää POST sanoman."
+msgstr "Tämä metodi edellyttää POST-pyynnön."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdatedeliverydevice.php:134
+msgid "Could not update user."
+msgstr "Käyttäjän päivitys epäonnistui."
+
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Käyttäjällä ei ole profiilia."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofile.php:148
+msgid "Could not save profile."
+msgstr "Profiilin tallennus epäonnistui."
+
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -186,15 +231,25 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
+#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
+#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
+#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
+msgid "Unable to save your design settings."
+msgstr "Ulkoasun tallennus epäonnistui."
+
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Sinä et voi poistaa käyttäjiä."
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Käyttäjän esto epäonnistui."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Käyttäjän eston poisto epäonnistui."
 
@@ -218,59 +273,50 @@ msgstr "Suorat viestit käyttäjälle %s"
 msgid "All the direct messages sent to %s"
 msgstr "Kaikki suorat viestit käyttäjälle %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Viestissä ei ole tekstiä!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Liian pitkä päivitys. Maksimikoko päivitykselle on %d merkkiä."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Vastaanottajaa ei löytynyt."
 
-#: actions/apidirectmessagenew.php:142
-msgid "Can't send direct messages to users who aren't your friend."
-msgstr ""
-"Et voi lähettää suoraa viestiä käyttäjälle, jonka kanssa et ole vielä kaveri."
-
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Ei voitu lisätä suosikiksi."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Ei voitu poistaa suosikkia."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Ei voitu lopettaa tilausta: Käyttäjää ei löytynyt."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Ei voitu tilata käyttäjää: %s on jo listallasi"
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Ei voitu lopettaa tilausta: Käyttäjää ei löytynyt."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Sinä et voi poistaa käyttäjiä."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Ei voitu päivittää käyttäjää."
@@ -279,7 +325,7 @@ msgstr "Ei voitu päivittää käyttäjää."
 msgid "Could not find target user."
 msgstr "Ei voitu päivittää käyttäjää."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -287,83 +333,83 @@ msgstr ""
 "Käyttäjätunnuksessa voi olla ainoastaan pieniä kirjaimia ja numeroita ilman "
 "välilyöntiä."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Tunnus on jo käytössä. Yritä toista tunnusta."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Tuo ei ole kelvollinen tunnus."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Kotisivun verkko-osoite ei ole toimiva."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Koko nimi on liian pitkä (max 255 merkkiä)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "kuvaus on liian pitkä (max %d merkkiä)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Liikaa aliaksia. Maksimimäärä on %d."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" on jo käytössä. Yritä toista aliasta."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias ei voi olla sama kuin ryhmätunnus."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Ei löytynyt."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Sinä kuulut jo tähän ryhmään."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Sinut on estetty osallistumasta tähän ryhmään ylläpitäjän toimesta."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Sinä et kuulu tähän ryhmään."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -382,7 +428,7 @@ msgstr "Käyttäjän %s ryhmät"
 msgid "%s groups"
 msgstr "Käyttäjän %s ryhmät"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Komento epäonnistui"
 
@@ -392,9 +438,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -427,8 +473,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -481,13 +527,13 @@ msgstr "Tämä metodi edellyttää joko POST tai DELETE sanoman."
 msgid "You may not delete another user's status."
 msgstr "Et voi poistaa toisen käyttäjän päivitystä."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Päivitystä ei ole."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Tätä päivitystä ei voi poistaa."
 
@@ -499,21 +545,21 @@ msgstr "Päivitys poistettu."
 msgid "No status with that ID found."
 msgstr "Käyttäjätunnukselle ei löytynyt statusviestiä."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Päivitys on liian pitkä. Maksimipituus on %d merkkiä."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Ei löytynyt."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite."
@@ -548,11 +594,6 @@ msgstr ""
 msgid "%s public timeline"
 msgstr "%s julkinen aikajana"
 
-#: actions/apitimelinepublic.php:202 actions/publicrss.php:105
-#, php-format
-msgid "%s updates from everyone!"
-msgstr "%s päivitykset kaikilta!"
-
 #: actions/apitimelinetag.php:105 actions/tag.php:67
 #, php-format
 msgid "Notices tagged with %s"
@@ -653,7 +694,7 @@ msgstr "Kuva poistettu."
 
 #: actions/block.php:69
 msgid "You already blocked that user."
-msgstr "Olet jos tilannut seuraavien käyttäjien päivitykset:"
+msgstr "!!FUZZZY!!Olet jos tilannut seuraavien käyttäjien päivitykset:"
 
 #: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158
 msgid "Block user"
@@ -685,7 +726,9 @@ msgid "Do not block this user"
 msgstr "Älä estä tätä käyttäjää"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Estä tämä käyttäjä"
 
@@ -717,11 +760,13 @@ msgstr "Lista käyttäjistä, jotka ovat estetty liittymästä tähän ryhmään
 msgid "Unblock user from group"
 msgstr "Poista käyttäjän esto ryhmästä"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Poista esto"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Poista esto tältä käyttäjältä"
 
@@ -743,12 +788,6 @@ msgstr "Vahvistuskoodia ei löytynyt."
 msgid "That confirmation code is not for you!"
 msgstr "Tämä vahvistuskoodi ei ole sinun!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -760,9 +799,9 @@ msgstr "Tämä osoite on jo vahvistettu."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -770,7 +809,7 @@ msgstr "Ei voitu päivittää käyttäjää."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Ei voitu poistaa sähköpostivahvistusta."
@@ -801,9 +840,10 @@ msgstr "Sinun pitää olla kirjautunut sisään, jotta voit erota ryhmästä."
 msgid "Application not found."
 msgstr "Vahvistuskoodia ei löytynyt."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Istuntoavaimesi kanssa oli ongelma."
 
@@ -820,7 +860,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Et ole kirjautunut sisään."
@@ -881,7 +921,6 @@ msgstr "Poista käyttäjä"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Ulkoasu"
 
@@ -897,10 +936,6 @@ msgstr "Vaihda väriä"
 msgid "Site logo"
 msgstr "Palvelun ilmoitus"
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -952,13 +987,13 @@ msgstr ""
 msgid "Use defaults"
 msgstr "Käytä oletusasetuksia"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Tallenna"
@@ -976,10 +1011,6 @@ msgstr "Lisää suosikkeihin"
 msgid "No such document \"%s\""
 msgstr "Liitettä ei ole."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
-msgstr ""
-
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
 msgstr ""
@@ -1064,7 +1095,7 @@ msgstr "Tämän hetken vahvistettu sähköpostiosoite."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1080,123 +1111,111 @@ msgstr ""
 "sähköpostilaatikostasi (ja roskapostikansiosta!) viesti, jossa on "
 "lisäohjeita. "
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Sähköpostiosoite, esimerkiksi \"käyttäjätunnus@example.org\""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Saapuva sähköposti"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Lähetä sähköpostia tähän osoitteeseen tehdäksesi päivityksiä."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Tee uusi sähköpostiosoite johon lähettää päivityksiä; tämä poistaa vanhan "
 "osoitteen"
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Sähköpostiosoitteet"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Lähetä sähköpostilla tieto uusista tilaajista."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Lähetä sähköpostia, jos joku lisää päivitykseni suosikiksi."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Lähetä sähköpostia, jos joku lähettää minulle yksityisviestin."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Lähetä sähköpostia, jos joku lähettää minulle \"@-vastauksen\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Salli kavereiden tönäistä minua ja lähetä sähköpostilla ilmoitus."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Haluan lähettää päivityksiä sähköpostilla."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Julkaise MicroID sähköpostiosoitteelleni."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Sähköpostiosoitetta ei ole."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Ei voida normalisoida sähköpostiosoitetta"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Tuo ei ole kelvollinen sähköpostiosoite."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Tämä on jo sähköpostiosoitteesi."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Tämä sähköpostiosoite kuuluu jo toisella käyttäjällä."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Ei voitu asettaa vahvistuskoodia."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1208,45 +1227,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Avoimia vahvistuksia ei ole peruutettavana."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Avoimia vahvistuksia ei ole peruutettavana."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Tämä ei ole sähköpostiosoitteesi."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Saapuvan sähköpostin osoite poistettu."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Saapuvan sähköpostin osoitetta ei ole."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Ei voitu päivittää käyttäjätietoja."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Saapuvan sähköpostin osoite poistettu."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Uusi saapuvan sähköpostin osoite lisätty."
 
@@ -1310,11 +1329,6 @@ msgstr "Esittelyssä olevat käyttäjät"
 msgid "Featured users, page %d"
 msgstr "Esittelyssä olevat käyttäjät, sivu %d"
 
-#: actions/featured.php:99
-#, php-format
-msgid "A selection of some great users on %s"
-msgstr ""
-
 #: actions/file.php:34
 msgid "No notice ID."
 msgstr "Päivitystä ei ole."
@@ -1335,10 +1349,6 @@ msgstr "Liitettä ei ole."
 msgid "Not expecting this response!"
 msgstr "Odottamaton vastaus saatu!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Voit käyttää paikallista tilausta!"
@@ -1355,10 +1365,6 @@ msgstr "Sinulla ei ole valtuutusta tähän."
 msgid "Could not convert request token to access token."
 msgstr "Ei saatu request tokenia."
 
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:79
 msgid "No such file."
 msgstr "Tiedostoa ei ole."
@@ -1385,12 +1391,6 @@ msgstr "Käyttäjällä ei ole profiilia."
 msgid "No profile specified."
 msgstr "Profiilia ei ole määritelty."
 
-#: actions/groupblock.php:76 actions/groupunblock.php:76
-#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
-#: actions/unsubscribe.php:84 lib/profileformaction.php:86
-msgid "No profile with that ID."
-msgstr "Ei profiilia tuolle ID:lle."
-
 #: actions/groupblock.php:81 actions/groupunblock.php:81
 #: actions/makeadmin.php:81
 msgid "No group specified."
@@ -1408,7 +1408,7 @@ msgstr "Käyttäjää ei ole estetty ryhmästä."
 msgid "User is not a member of group."
 msgstr "Käyttäjä ei kuulu tähän ryhmään."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Estä käyttäjä ryhmästä"
 
@@ -1430,10 +1430,6 @@ msgstr "Älä estä tätä käyttäjää tästä ryhmästä"
 msgid "Block this user from this group"
 msgstr "Estä tätä käyttäjää osallistumassa tähän ryhmään"
 
-#: actions/groupbyid.php:74 actions/userbyid.php:70
-msgid "No ID."
-msgstr "Ei Jabber ID -osoitetta"
-
 #: actions/groupdesignsettings.php:68
 msgid "You must be logged in to edit a group."
 msgstr ""
@@ -1462,12 +1458,6 @@ msgstr "Ulkoasuasetukset tallennettu."
 msgid "Group logo"
 msgstr "Ryhmän logo"
 
-#: actions/grouplogo.php:153
-#, php-format
-msgid ""
-"You can upload a logo image for your group. The maximum file size is %s."
-msgstr "Voit ladata ryhmälle logokuvan. Maksimikoko on %s."
-
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
 msgstr "Valitse neliön muotoinen alue kuvasta logokuvaksi"
@@ -1480,39 +1470,49 @@ msgstr "Logo päivitetty."
 msgid "Failed updating logo."
 msgstr "Logon päivittäminen epäonnistui."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Ryhmän %s jäsenet"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Ryhmän %s jäsenet"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Lista ryhmän käyttäjistä."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Ylläpito"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Estä"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Tee tästä käyttäjästä ylläpitäjä"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Tee ylläpitäjäksi"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Tee tästä käyttäjästä ylläpitäjä"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1634,7 +1634,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1645,65 +1648,65 @@ msgstr ""
 "GTalkissa."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Asetukset tallennettu."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Lähetä minulle päivityksiä Jabberilla/GTalkilla."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Lähetä päivitys kun Jabber/GTalk -tilatietoni vaihtuu."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Lähetä Jabberilla/GTalkilla sellaistenkin ihmisten vastaukset, joita en ole "
 "tilannut. "
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Julkaise MicroID Jabber/GTalk-osoitteelleni."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Asetukset tallennettu."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Ei Jabber ID -osoitetta"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Ei voida normalisoida Jabber ID -tunnusta"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Tuo ei ole kelvollinen Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Tämä on jo Jabber ID -tunnuksesi."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID kuuluu jo toiselle käyttäjälle."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1713,23 +1716,23 @@ msgstr ""
 "antaa osoitteelle %s oikeus lähettää viestejä sinulle."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Tämä on väärä pikaviestiosoite."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Varmistuskoodia ei ole annettu."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Tämä ei ole Jabber ID-tunnuksesi."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Saapuvan sähköpostin osoite poistettu."
 
@@ -1767,7 +1770,7 @@ msgstr "Kutsu uusia käyttäjiä"
 
 #: actions/invite.php:128
 msgid "You are already subscribed to these users:"
-msgstr "Olet jos tilannut seuraavien käyttäjien päivitykset:"
+msgstr "Olet jo tilannut seuraavien käyttäjien päivitykset:"
 
 #. TRANS: Whois output.
 #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL.
@@ -1818,12 +1821,6 @@ msgstr "Henkilökohtainen viesti"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Voit myös lisätä oman viestisi kutsuun"
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1943,12 +1940,6 @@ msgstr ""
 "Syötä turvallisuussyistä käyttäjätunnuksesi ja salasanasi uudelleen ennen "
 "asetuksiesi muuttamista."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr "Vain ylläpitäjä voi tehdä toisesta käyttäjästä ylläpitäjän."
@@ -2048,11 +2039,6 @@ msgstr ""
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "Käyttäjän %1$s päivitykset palvelussa %2$s!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "Tönäisy lähetetty"
@@ -2065,6 +2051,15 @@ msgstr "Tönäisy lähetetty!"
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -2091,12 +2086,6 @@ msgstr "Käyttäjällä ei ole profiilia."
 msgid "%1$s's status on %2$s"
 msgstr "Käyttäjän %1$s päivitys %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2104,8 +2093,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Tuo ei ole tuettu tietomuoto."
 
@@ -2224,7 +2213,7 @@ msgid "Password saved."
 msgstr "Salasana tallennettu."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Polut"
 
@@ -2232,16 +2221,6 @@ msgstr "Polut"
 msgid "Path and server settings for this StatusNet site."
 msgstr "Polut ja palvelin asetukset tälle StatusNet palvelulle."
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -2278,6 +2257,10 @@ msgstr ""
 msgid "Theme path"
 msgstr ""
 
+#: actions/pathsadminpanel.php:272
+msgid "Theme directory"
+msgstr ""
+
 #: actions/pathsadminpanel.php:292
 msgid "Avatar directory"
 msgstr "Taustakuvan hakemisto"
@@ -2306,18 +2289,10 @@ msgstr ""
 msgid "When to use SSL"
 msgstr ""
 
-#: actions/pathsadminpanel.php:335
-msgid "SSL server"
-msgstr ""
-
 #: actions/pathsadminpanel.php:336
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2375,7 +2350,7 @@ msgstr "Koko nimi"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Kotisivu"
 
@@ -2403,10 +2378,6 @@ msgstr "Tietoja"
 msgid "Location"
 msgstr "Kotipaikka"
 
-#: actions/profilesettings.php:134 actions/register.php:480
-msgid "Where you are, like \"City, State (or Region), Country\""
-msgstr "Olinpaikka kuten \"Kaupunki, Maakunta (tai Lääni), Maa\""
-
 #: actions/profilesettings.php:138
 msgid "Share my current location when posting notices"
 msgstr ""
@@ -2438,7 +2409,7 @@ msgstr "Aikavyöhyke"
 
 #: actions/profilesettings.php:162
 msgid "What timezone are you normally in?"
-msgstr "Missä aikavyöhykkeessä olet normaalisti?"
+msgstr "Millä aikavyöhykkeellä olet tavallisesti?"
 
 #: actions/profilesettings.php:167
 msgid ""
@@ -2458,7 +2429,7 @@ msgstr "Aikavyöhykettä ei ole valittu."
 
 #: actions/profilesettings.php:241
 msgid "Language is too long (max 50 chars)."
-msgstr "Kieli on liian pitkä (max 50 merkkiä)."
+msgstr "Kieli on liian pitkä (enintään 50 merkkiä)."
 
 #: actions/profilesettings.php:253 actions/tagother.php:178
 #, php-format
@@ -2478,7 +2449,7 @@ msgid "Couldn't save tags."
 msgstr "Tageja ei voitu tallentaa."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Asetukset tallennettu."
 
@@ -2531,14 +2502,6 @@ msgid ""
 "friends, family, and colleagues! ([Read more](%%doc.help%%))"
 msgstr ""
 
-#: actions/public.php:247
-#, php-format
-msgid ""
-"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
-"blogging) service based on the Free Software [StatusNet](http://status.net/) "
-"tool."
-msgstr ""
-
 #: actions/publictagcloud.php:57
 msgid "Public tag cloud"
 msgstr "Julkinen tagipilvi"
@@ -2635,10 +2598,6 @@ msgstr "Salasanan palautuspyyntö lähetetty."
 msgid "Unknown action"
 msgstr "Tuntematon toiminto"
 
-#: actions/recoverpassword.php:236
-msgid "6 or more characters, and don't forget it!"
-msgstr "6 tai useampia merkkejä äläkä unohda mitä kirjoitit!"
-
 #: actions/recoverpassword.php:243
 msgid "Reset"
 msgstr "Vaihda"
@@ -2777,33 +2736,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2857,19 +2789,11 @@ msgstr "Tilaa"
 msgid "Invalid profile URL (bad format)"
 msgstr "Profiilin URL-osoite '%s' ei kelpaa (virheellinen muoto)."
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
 "Tämä on paikallinen profiili. Kirjaudu sisään, jotta voit tilata päivitykset."
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr "Ei saatu request tokenia."
-
 #: actions/repeat.php:90
 msgid "You already repeated that notice."
 msgstr "Sinä kuulut jo tähän ryhmään."
@@ -2912,7 +2836,7 @@ msgstr "Päivityksesi tähän palveluun on estetty."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2933,13 +2857,13 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Kuvaus"
 
@@ -2953,10 +2877,18 @@ msgstr "Tilastot"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -3027,7 +2959,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Ryhmä %s"
@@ -3079,16 +3011,10 @@ msgstr "Syöte ryhmän %s päivityksille (Atom)"
 msgid "FOAF for %s group"
 msgstr "Käyttäjän %s lähetetyt viestit"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Jäsenet"
 
-#: actions/showgroup.php:398 lib/profileaction.php:117
-#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
-#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
-msgid "(None)"
-msgstr "(Tyhjä)"
-
 #: actions/showgroup.php:404
 msgid "All members"
 msgstr "Kaikki jäsenet"
@@ -3107,15 +3033,6 @@ msgid ""
 "of this group and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showgroup.php:461
-#, 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 "
-"[StatusNet](http://status.net/) tool. Its members share short messages about "
-"their life and interests. "
-msgstr ""
-
 #: actions/showgroup.php:489
 msgid "Admins"
 msgstr "Ylläpitäjät"
@@ -3189,14 +3106,6 @@ msgid ""
 "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showstream.php:248
-#, 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 "
-"[StatusNet](http://status.net/) tool. "
-msgstr ""
-
 #: actions/siteadminpanel.php:133
 msgid "Site name must have non-zero length."
 msgstr ""
@@ -3423,7 +3332,7 @@ msgstr "Koodia ei ole syötetty."
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3431,6 +3340,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Sähköpostiosoitteen vahvistus"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3695,13 +3608,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Valtuuta tilaus"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr "Lisenssi"
@@ -3727,24 +3633,10 @@ msgstr "Ei valtuutuspyyntöä!"
 msgid "Subscription authorized"
 msgstr "Tilaus sallittu"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Tilaus hylätty"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3770,16 +3662,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3959,13 +3841,13 @@ msgid "Problem saving notice."
 msgstr "Ongelma päivityksen tallentamisessa."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4064,24 +3946,12 @@ msgstr "Nimetön sivu"
 msgid "Primary site navigation"
 msgstr "Ensisijainen sivunavigointi"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
 msgid "Change your email, avatar, password, profile"
 msgstr "Vaihda salasanasi"
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
@@ -4097,7 +3967,7 @@ msgstr "Kirjaudu sisään"
 #: lib/action.php:490
 msgctxt "MENU"
 msgid "Logout"
-msgstr "Logo"
+msgstr "Kirjaudu ulos"
 
 #. TRANS: Tooltip for main menu option "Register"
 #: lib/action.php:495
@@ -4125,7 +3995,7 @@ msgstr "Hae lisää ryhmiä"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Palvelun ilmoitus"
 
@@ -4184,22 +4054,17 @@ msgstr "Ota yhteyttä"
 msgid "StatusNet software license"
 msgstr "StatusNet-ohjelmiston lisenssi"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** on mikroblogipalvelu."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4212,43 +4077,44 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Sivutus"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Myöhemmin"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Aiemmin"
 
@@ -4257,96 +4123,140 @@ msgstr "Aiemmin"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Käyttäjä"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Kuvaile itseäsi ja kiinnostuksen kohteitasi %d merkillä"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Kuvaus"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Peruuta"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
@@ -4356,10 +4266,16 @@ msgstr ""
 msgid "Provider"
 msgstr "Esikatselu"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Estä"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Komennon tulos"
@@ -4372,6 +4288,13 @@ msgstr "Komento suoritettu"
 msgid "Command failed"
 msgstr "Komento epäonnistui"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4399,6 +4322,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Päivitys on merkitty suosikiksi."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4433,13 +4370,6 @@ msgid ""
 "same server."
 msgstr ""
 
-#. TRANS: Message given if content is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:491 lib/xmppmanager.php:403
-#, php-format
-msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
@@ -4450,22 +4380,18 @@ msgstr "Tapahtui virhe suoran viestin lähetyksessä."
 msgid "Error repeating notice."
 msgstr "Virhe tapahtui käyttäjän asettamisessa."
 
-#. TRANS: Message given if content of a notice for a reply is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:592
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
 #, php-format
-msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -4506,26 +4432,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
-#. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
-#. TRANS: hard coded space and a comma separated list of subscribed users.
-#: lib/command.php:836
-msgid "You are subscribed to this person:"
-msgid_plural "You are subscribed to these people:"
-msgstr[0] "Olet jos tilannut seuraavien käyttäjien päivitykset:"
-msgstr[1] "Olet jos tilannut seuraavien käyttäjien päivitykset:"
-
-#. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
-#. TRANS: hard coded space and a comma separated list of subscribing users.
-#: lib/command.php:863
-msgid "This person is subscribed to you:"
-msgid_plural "These people are subscribed to you:"
-msgstr[0] "Toista ei voitu asettaa tilaamaan sinua."
-msgstr[1] "Toista ei voitu asettaa tilaamaan sinua."
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4533,6 +4448,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Sinä et kuulu tähän ryhmään."
 msgstr[1] "Sinä et kuulu tähän ryhmään."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4681,23 +4597,77 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Ryhmä"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
 
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Muokkaa %s ryhmän ominaisuuksia"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Lisää ryhmälle %s logo tai muokkaa sitä "
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -4725,7 +4695,8 @@ msgstr "Kuvatiedoston formaattia ei ole tuettu."
 msgid "Partial upload."
 msgstr "Osittain ladattu palvelimelle."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Tiedoston lähetyksessä tapahtui järjestelmävirhe."
 
@@ -4968,6 +4939,11 @@ msgid ""
 "\t%s"
 msgstr ""
 
+#: lib/mail.php:657
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
 #, php-format
@@ -5006,10 +4982,6 @@ msgid ""
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
 
-#: lib/mailbox.php:228 lib/noticelist.php:506
-msgid "from"
-msgstr ""
-
 #: lib/mailhandler.php:37
 msgid "Could not parse message."
 msgstr "Ei voitu lukea viestiä."
@@ -5026,56 +4998,75 @@ msgstr "Valitettavasti tuo ei ole oikea osoite sähköpostipäivityksille."
 msgid "Sorry, no incoming email allowed."
 msgstr "Valitettavasti päivitysten teko sähköpostilla ei ole sallittua."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Ei voitu poistaa suosikkia."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5090,11 +5081,6 @@ msgstr "Vastaanottaja"
 msgid "Available characters"
 msgstr "Sallitut merkit"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "Lähetä päivitys"
@@ -5112,14 +5098,6 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
-#: lib/noticeform.php:216
-msgid "Do not share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
@@ -5154,10 +5132,6 @@ msgstr ""
 msgid "web"
 msgstr ""
 
-#: lib/noticelist.php:603
-msgid "Repeated by"
-msgstr ""
-
 #: lib/noticelist.php:630
 msgid "Reply to this notice"
 msgstr "Vastaa tähän päivitykseen"
@@ -5179,22 +5153,23 @@ msgid "Send a nudge to this user"
 msgstr "Lähetä tönäisy tälle käyttäjälle"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Virhe tapahtui uuden profiilin lisäämisessä"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Virhe tapahtui profiilikuvan lisäämisessä"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Virhe tapahtui etäprofiilin päivittämisessä"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Virhe tapahtui uuden etäprofiilin lisäämisessä"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Ei voitu lisätä uutta tilausta."
 
@@ -5292,13 +5267,16 @@ msgstr "Kyllä"
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Haku"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -5452,56 +5430,64 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "muutama sekunti sitten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "noin minuutti sitten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "noin %d minuuttia sitten"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "noin tunti sitten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "noin %d tuntia sitten"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "noin päivä sitten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "noin %d päivää sitten"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "noin kuukausi sitten"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "noin %d kuukautta sitten"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "noin vuosi sitten"
 
index 3e588a54a699ef9f5272210418c167146794bacd..ccd133acdf938fdf2ee9f5b4bf38d3613a78086e 100644 (file)
@@ -1,36 +1,39 @@
-# Translation of StatusNet to French
+# Translation of StatusNet - Core to French (Français)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Crochet.david
-# Author@translatewiki.net: IAlex
-# Author@translatewiki.net: Isoph
-# Author@translatewiki.net: Jean-Frédéric
-# Author@translatewiki.net: Julien C
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Peter17
-# Author@translatewiki.net: Sherbrooke
-# Author@translatewiki.net: Y-M D
+# Author: Brion
+# Author: Crochet.david
+# Author: IAlex
+# Author: Isoph
+# Author: Jean-Frédéric
+# Author: Julien C
+# Author: McDutchie
+# Author: Patcito
+# Author: Peter17
+# Author: Sherbrooke
+# Author: Y-M D
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:15+0000\n"
-"Language-Team: French\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:50+0000\n"
+"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: fr\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Accès"
 
@@ -83,10 +86,10 @@ msgstr "Sauvegarder les paramètres d’accès"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Enregistrer"
@@ -99,15 +102,15 @@ msgstr "Page non trouvée."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -208,16 +211,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Statuts de %1$s et ses amis dans %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -232,21 +235,23 @@ msgstr "Statuts de %1$s et ses amis dans %2$s!"
 msgid "API method not found."
 msgstr "Méthode API non trouvée !"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Ce processus requiert un POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -254,27 +259,27 @@ msgstr ""
 "Vous devez spécifier un paramètre « device » avec une des valeurs suivantes : "
 "sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Impossible de mettre à jour l’utilisateur."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Aucun profil ne correspond à cet utilisateur."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Impossible d’enregistrer le profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -286,30 +291,30 @@ msgstr ""
 "Le serveur n’a pas pu gérer autant de données de POST (%s octets) en raison "
 "de sa configuration actuelle."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Impossible de sauvegarder les parmètres de la conception."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Impossible de mettre à jour votre conception."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Vous ne pouvez pas vous bloquer vous-même !"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Le blocage de l’utilisateur a échoué."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Le déblocage de l’utilisateur a échoué."
 
@@ -333,61 +338,61 @@ msgstr "Messages directs envoyés à %s"
 msgid "All the direct messages sent to %s"
 msgstr "Tous les messages directs envoyés à %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Message sans texte !"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "C’est trop long ! La taille maximale du message est de %d caractères."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Destinataire non trouvé."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Vous ne pouvez envoyer des messages personnels qu’aux utilisateurs inscrits "
 "comme amis."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Aucun statut trouvé avec cet identifiant. "
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Cet avis est déjà un favori."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Impossible de créer le favori."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Cet avis n’est pas un favori."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Impossible de supprimer le favori."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Impossible de suivre l’utilisateur : profil non trouvé."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Impossible de suivre l’utilisateur : %s est déjà dans votre liste."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Impossible de ne plus suivre l’utilisateur : utilisateur non trouvé."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Vous ne pouvez pas ne plus vous suivre vous-même."
 
@@ -403,7 +408,7 @@ msgstr "Impossible de déterminer l’utilisateur source."
 msgid "Could not find target user."
 msgstr "Impossible de trouver l’utilisateur cible."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -411,95 +416,95 @@ msgstr ""
 "Les pseudos ne peuvent contenir que des caractères minuscules et des "
 "chiffres, sans espaces."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Pseudo déjà utilisé. Essayez-en un autre."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Pseudo invalide."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "L’adresse du site personnel n’est pas un URL valide. "
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Nom complet trop long (maximum de 255 caractères)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "La description est trop longue (%d caractères maximum)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Emplacement trop long (maximum de 255 caractères)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Trop d’alias ! Maximum %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Alias invalide : « %s »."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias « %s » déjà utilisé. Essayez-en un autre."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "L’alias ne peut pas être le même que le pseudo."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Groupe non trouvé."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Vous êtes déjà membre de ce groupe."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Vous avez été bloqué de ce groupe par l’administrateur."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Impossible de joindre l’utilisateur %1$s au groupe %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Vous n’êtes pas membre de ce groupe."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -529,7 +534,7 @@ msgstr "Groupes de %s"
 msgid "groups on %s"
 msgstr "groupes sur %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Échec du téléversement."
 
@@ -543,9 +548,9 @@ msgstr "Jeton incorrect."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -595,8 +600,8 @@ msgstr "Le jeton de connexion %s a été refusé et révoqué."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -662,18 +667,18 @@ msgstr "Ce processus requiert un POST ou un DELETE."
 msgid "You may not delete another user's status."
 msgstr "Vous ne pouvez pas supprimer le statut d’un autre utilisateur."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Avis non trouvé."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Vous ne pouvez pas reprendre votre propre avis."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Vous avez déjà repris cet avis."
 
@@ -685,21 +690,21 @@ msgstr "Statut supprimé."
 msgid "No status with that ID found."
 msgstr "Aucun statut trouvé avec cet identifiant."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Le client doit fournir un paramètre « statut » avec une valeur."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "C’est trop long ! La taille maximale de l’avis est de %d caractères."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Non trouvé."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -903,7 +908,9 @@ msgid "Yes"
 msgstr "Oui"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloquer cet utilisateur"
 
@@ -945,11 +952,13 @@ msgstr "Une liste des utilisateurs dont l’inscription à ce groupe est bloqué
 msgid "Unblock user from group"
 msgstr "Débloquer l’utilisateur de ce groupe"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Débloquer"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Débloquer cet utilisateur"
 
@@ -988,9 +997,9 @@ msgstr "Cette adresse a déjà été confirmée."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -998,7 +1007,7 @@ msgstr "Impossible de mettre à jour l’utilisateur."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Impossible de supprimer le courriel de confirmation."
@@ -1034,9 +1043,10 @@ msgstr "Application non trouvée."
 msgid "You are not the owner of this application."
 msgstr "Vous n’êtes pas le propriétaire de cette application."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Un problème est survenu avec votre jeton de session."
 
@@ -1070,7 +1080,7 @@ msgstr "Supprimer cette application"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Non connecté."
@@ -1133,7 +1143,6 @@ msgstr "Supprimer cet utilisateur"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Conception"
 
@@ -1255,13 +1264,13 @@ msgstr "Restaurer les conceptions par défaut"
 msgid "Reset back to default"
 msgstr "Revenir aux valeurs par défaut"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Enregistrer"
@@ -1417,7 +1426,7 @@ msgstr "Adresse courriel actuellement confirmée."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1435,22 +1444,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Annuler"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Adresse de courriel (ex : nom@example.org)"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1458,112 +1471,112 @@ msgstr "Ajouter"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Courriel entrant"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Écrivez à cette adresse courriel pour poster de nouveaux avis."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Nouvelle adresse courriel pour poster ; annule l’ancienne."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nouveau"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Préférences de courrier électronique"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Avertissez-moi par courriel des nouveaux abonnements."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Envoyez-moi un courriel quand un utilisateur ajoute un de mes avis à ses "
 "favoris."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Envoyez-moi un courriel quand quelqu’un m’envoie un message personnel."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Envoyez-moi un courriel quand quelqu’un m’envoie une réponse « @ »."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Autoriser mes amis à m’envoyer des courriels et des clins d’œil."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Je veux envoyer mes avis par courriel."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publier un MicroID pour mon adresse courriel."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Préférences de courrier électronique enregistrées."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Aucune adresse électronique."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Impossible d’utiliser cette adresse courriel"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Adresse courriel invalide."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Vous utilisez déjà cette adresse courriel."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Cette adresse courriel appartient déjà à un autre utilisateur."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Impossible d’insérer le code de confirmation."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1574,50 +1587,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Aucune confirmation à annuler."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Cette adresse de messagerie électronique est erronée."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Confirmation de courrier électronique annulée."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Ceci n’est pas votre adresse courriel."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "L’adresse électronique a été supprimée."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Aucune adresse de courriel entrant."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Impossible de mettre à jour le dossier de l’utilisateur."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "L’adresse de courriel entrant a été supprimée."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nouvelle adresse de courriel entrant ajoutée."
 
@@ -1736,7 +1749,7 @@ msgstr "Impossible de convertir le jeton de requête en jeton d’accès."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Le service distant utilise une version inconnue du protocole OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Erreur lors de la mise à jour du profil distant."
 
@@ -1793,7 +1806,7 @@ msgstr "Cet utilisateur est déjà bloqué pour le groupe."
 msgid "User is not a member of group."
 msgstr "L’utilisateur n’est pas membre du groupe."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloquer cet utilisateur du groupe"
 
@@ -1876,39 +1889,49 @@ msgstr "Logo mis à jour."
 msgid "Failed updating logo."
 msgstr "La mise à jour du logo a échoué."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membres du groupe %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membres du groupe %1$s - page %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Liste des utilisateurs inscrits à ce groupe."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrer"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Bloquer"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Faire de cet utilisateur un administrateur du groupe"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Faire un administrateur"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Faire de cet utilisateur un administrateur"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2051,7 +2074,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2062,66 +2088,66 @@ msgstr ""
 "GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Préférences de messagerie instantanée"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Envoyez-moi les avis par Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 "Poster un avis chaque fois que mon statut est modifié dans Jabber/GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Envoyez-moi par Jabber/GTalk les réponses des personnes auxquelles je ne "
 "suis pas abonné."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publier un MicroID pour mon adresse Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Préférences enregistrées"
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Aucun identifiant Jabber"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Impossible d’utiliser cet identifiant Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Identifiant Jabber invalide."
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Vous utilisez déjà cet idenfiant Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Identifiant Jabber déjà utilisé par un autre utilisateur."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2131,28 +2157,28 @@ msgstr ""
 "instantanée. Vous devez approuver %s pour recevoir des messages."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Cette adresse de messagerie instantanée est erronée."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Impossible de supprimer la confirmation de messagerie instantanée."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Confirmation de messagerie instantanée annulée."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Ceci n’est pas votre identifiant Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "L’adresse de messagerie instantanée a été supprimée."
 
@@ -2635,8 +2661,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Veuillez n'utiliser que des URL HTTP complètes en %s."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Format de données non supporté."
 
@@ -2777,7 +2803,7 @@ msgid "Password saved."
 msgstr "Mot de passe enregistré."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Chemins"
 
@@ -2991,7 +3017,7 @@ msgstr "Nom complet"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Site personnel"
 
@@ -3098,7 +3124,7 @@ msgid "Couldn't save tags."
 msgstr "Impossible d’enregistrer les marques."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Préférences enregistrées."
 
@@ -3647,7 +3673,7 @@ msgstr "L’utilisateur est déjà dans le bac à sable."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessions"
 
@@ -3685,24 +3711,24 @@ msgid "Application profile"
 msgstr "Profil de l’application"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icône"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nom"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisation"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Description"
 
@@ -3817,7 +3843,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "C’est un moyen de partager ce que vous aimez."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Groupe %s"
@@ -3869,7 +3895,7 @@ msgstr "Fil des avis du groupe %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "ami d’un ami pour le groupe %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membres"
 
@@ -4330,7 +4356,7 @@ msgstr "Aucun code entré"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Instantanés"
 
@@ -5027,18 +5053,18 @@ msgid "Problem saving notice."
 msgstr "Problème lors de l’enregistrement de l’avis."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Le type renseigné pour saveKnownGroups n’est pas valable"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problème lors de l’enregistrement de la boîte de réception du groupe."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5072,7 +5098,7 @@ msgid "Unable to save tag."
 msgstr "Impossible d’enregistrer l’étiquette."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Il vous a été interdit de vous abonner."
 
@@ -5220,7 +5246,8 @@ msgid "Change site configuration"
 msgstr "Modifier la configuration du site"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrer"
@@ -5297,7 +5324,7 @@ msgstr "Rechercher"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Notice du site"
 
@@ -5361,7 +5388,10 @@ msgid "StatusNet software license"
 msgstr "Licence du logiciel StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5371,13 +5401,16 @@ msgstr ""
 "%site.broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** est un service de micro-blogging."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5389,20 +5422,20 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licence du contenu du site"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Le contenu et les données de %1$s sont privés et confidentiels."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5410,33 +5443,34 @@ msgstr ""
 "réservés."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Le contenu et les données sont sous le droit d’auteur du contributeur. Tous "
 "droits réservés."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 "Tous les contenus %1$s et les données sont disponibles sous la licence %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Pagination"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Après"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Avant"
 
@@ -5445,209 +5479,244 @@ msgstr "Avant"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Attendait un élément racine mais a reçu tout un document XML."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Impossible de gérer le contenu distant pour le moment."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Impossible de gérer le contenu XML embarqué pour le moment."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Impossible de gérer le contenu en Base64 embarqué pour le moment."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Vous ne pouvez pas faire de modifications sur ce site."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "La modification de ce panneau n’est pas autorisée."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() n’a pas été implémentée."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() n’a pas été implémentée."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Impossible de supprimer les paramètres de conception."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuration basique du site"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuration de la conception"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Conception"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuration utilisateur"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Utilisateur"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuration d’accès"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuration des chemins"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuration des sessions"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Modifier l'avis du site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuration des instantanés"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "La ressource de l’API a besoin de l’accès en lecture et en écriture, mais "
 "vous n’y avez accès qu’en lecture."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Modifier votre application"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icône pour cette application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Décrivez votre application en %d caractères"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Décrivez votre application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL de la page d’accueil de cette application"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL source"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organisation responsable de cette application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL de la page d’accueil de l’organisation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL vers laquelle rediriger après l’authentification"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navigateur"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Bureau"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Type d’application, navigateur ou bureau"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Lecture seule"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lecture-écriture"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Accès par défaut pour cette application : en lecture seule ou en lecture-"
 "écriture"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Annuler"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lecture-écriture"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "lecture seule"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Accès « %2$s » approuvé le %1$s."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Révoquer"
@@ -5667,11 +5736,13 @@ msgstr "Auteur"
 msgid "Provider"
 msgstr "Fournisseur"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Avis sur lesquels cette pièce jointe apparaît."
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Marques de cette pièce jointe"
 
@@ -5683,6 +5754,11 @@ msgstr "La modification du mot de passe a échoué"
 msgid "Password changing is not allowed"
 msgstr "La modification du mot de passe n’est pas autorisée"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloquer"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Résultats de la commande"
@@ -5938,7 +6014,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Vous n’êtes abonné(e) à personne."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5953,7 +6029,7 @@ msgid "No one is subscribed to you."
 msgstr "Personne ne s’est abonné à vous."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5968,7 +6044,7 @@ msgid "You are not a member of any groups."
 msgstr "Vous n’êtes membre d’aucun groupe."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5976,6 +6052,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Vous êtes membre de ce groupe :"
 msgstr[1] "Vous êtes membre de ces groupes :"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6201,37 +6278,77 @@ msgstr ""
 "Pseudos supplémentaires pour le groupe, séparés par des virgules ou des "
 "espaces, %d au maximum"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Groupe"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Bloqué"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s utilisateurs bloqués"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Modifier les propriétés du groupe %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Ajouter ou modifier le logo de %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Ajouter ou modifier la conception de %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6265,7 +6382,8 @@ msgstr "Ce fichier est trop grand. La taille maximale est %s."
 msgid "Partial upload."
 msgstr "Transfert partiel."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Erreur système lors du transfert du fichier."
 
@@ -6670,17 +6788,20 @@ msgstr "Désolé, la réception de courriels n’est pas permise."
 msgid "Unsupported message type: %s"
 msgstr "Type de message non supporté : %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Une erreur de base de données s’est produite pendant la sauvegarde de votre "
 "fichier. Veuillez réessayer."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Le fichier importé dépasse le réglage upload_max_filesize de php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6688,43 +6809,59 @@ msgstr ""
 "Le fichier importé dépasse le réglage MAX_FILE_SIZE qui a été précisé dans "
 "le formulaire HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Le fichier n’a été que partiellement importé."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Un dossier temporaire est manquant."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Impossible d’écrire sur le disque."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Import de fichier stoppé par une extension."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Le fichier dépasse le quota de l’utilisateur."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Le fichier n’a pas pu être déplacé dans le dossier de destination."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Impossible de déterminer le type MIME du fichier."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Essayez d’utiliser un autre %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s n’est pas un type de fichier supporté sur ce serveur."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6842,26 +6979,23 @@ msgid "Send a nudge to this user"
 msgstr "Envoyer un clin d’œil à cet utilisateur"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Erreur lors de l’insertion du nouveau profil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Erreur lors de l’insertion de l’avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Erreur lors de la mise à jour du profil distant"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Erreur lors de l’insertion du profil distant"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Dupliquer l’avis"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Impossible d’insérer un nouvel abonnement."
 
@@ -6898,7 +7032,8 @@ msgstr "Vos messages envoyés"
 msgid "Tags in %s's notices"
 msgstr "Marques dans les avis de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Inconnu"
 
@@ -6992,19 +7127,24 @@ msgstr "Bac à sable"
 msgid "Sandbox this user"
 msgstr "Mettre cet utilisateur dans un bac à sable"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Rechercher sur le site"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Mot(s) clef(s)"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Rechercher"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Aide sur la recherche"
 
@@ -7120,6 +7260,8 @@ msgstr ""
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"Ce thème contient un nom d'extension de ficher dangereux; peut être "
+"dangereux."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7205,56 +7347,64 @@ msgid "Moderator"
 msgstr "Modérateur"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "il y a quelques secondes"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "il y a 1 minute"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "il y a %d minutes"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "il y a 1 heure"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "il y a %d heures"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "il y a 1 jour"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "il y a %d jours"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "il y a 1 mois"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "il y a %d mois"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "il y a environ 1 an"
 
index 6682009db634be32cb98d9f94c474574d281e08b..b306b5ef0ff7b0e269c771ce8219a002ba4e3eb9 100644 (file)
@@ -1,24 +1,26 @@
-# Translation of StatusNet to Irish
+# Translation of StatusNet - Core to Irish (Gaeilge)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: McDutchie
+# Author: McDutchie
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:16+0000\n"
-"Language-Team: Irish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:52+0000\n"
+"Language-Team: Irish <http://translatewiki.net/wiki/Portal:ga>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ga\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
-"4;\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=5; plural=(n == 1) ? 0 : ( (n == 2) ? 1 : ( (n < 7) ? "
+"2 : ( (n < 11) ? 3 : 4 ) ) );\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page notice
 #: actions/accessadminpanel.php:67
@@ -40,22 +42,17 @@ msgstr ""
 msgid "Disable new registrations."
 msgstr ""
 
-#. TRANS: Checkbox label for disabling new user registrations.
-#: actions/accessadminpanel.php:185
-msgid "Closed"
-msgstr ""
-
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -117,39 +114,41 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Actualizacións dende %1$s e amigos en %2$s!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Este método require un POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "O usuario non ten perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -159,11 +158,11 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Bloqueo de usuario fallido."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Desbloqueo de usuario fallido."
 
@@ -182,55 +181,51 @@ msgstr "Mensaxes directas para %s"
 msgid "All the direct messages sent to %s"
 msgstr "Tódalas mensaxes directas enviadas a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Non hai mensaxes de texto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Podes actualizar a túa información do perfil persoal aquí"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Usuario destinatario non atopado."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Non se pode enviar a mensaxe directa a usuarios dos que non eres amigo."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Non se atopou un estado con ese ID."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Non se puido crear o favorito."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Non se puido eliminar o favorito."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Non podes seguir a este usuario: %s xa está na túa lista."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Non podes seguir a este usuario: %s xa está na túa lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Non podes seguir a este usuario: %s xa está na túa lista."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Non se puido actualizar o usuario."
@@ -239,103 +234,103 @@ msgstr "Non se puido actualizar o usuario."
 msgid "Could not find target user."
 msgstr "Non se puido actualizar o usuario."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "O alcume debe ter só letras minúsculas e números, e sen espazos."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Non é un alcume válido."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "A páxina persoal semella que non é unha URL válida."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "O nome completo é demasiado longo (max 255 car)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "O teu Bio é demasiado longo (max %d car.)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "A localización é demasiado longa (max 255 car.)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Non atopado"
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Xa estas suscrito a estes usuarios:"
 
+#. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Non podes seguir a este usuario: %s xa está na túa lista."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Non estás suscrito a ese perfil"
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
 msgstr "Non podes seguir a este usuario: %s xa está na túa lista."
 
-#. TRANS: %s is a user name
-#: actions/apigrouplist.php:98
+#. TRANS: Message is used as a title. %s is a site name.
+#. TRANS: Message is used as a page title. %s is a nick name.
+#: actions/apigrouplistall.php:92 actions/usergroups.php:63
 #, php-format
-msgid "%s's groups"
+msgid "%s groups"
 msgstr ""
 
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
-msgstr ""
-
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Comando fallido"
 
@@ -345,9 +340,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -378,8 +373,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -431,13 +426,13 @@ msgstr "Este método require un POST ou DELETE."
 msgid "You may not delete another user's status."
 msgstr "Non deberías eliminar o estado de outro usuario"
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ningún chío."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Non se pode eliminar este chíos."
 
@@ -445,21 +440,21 @@ msgstr "Non se pode eliminar este chíos."
 msgid "No status with that ID found."
 msgstr "Non existe ningún estado con esa ID atopada."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Podes actualizar a túa información do perfil persoal aquí"
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Non atopado"
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -566,6 +561,10 @@ msgstr ""
 msgid "Pick a square area of the image to be your avatar"
 msgstr ""
 
+#: actions/avatarsettings.php:347 actions/grouplogo.php:380
+msgid "Lost our file data."
+msgstr ""
+
 #: actions/avatarsettings.php:370
 msgid "Avatar updated."
 msgstr "Avatar actualizado."
@@ -592,18 +591,6 @@ msgstr ""
 "do teur perfil, non será capaz de suscribirse a ti nun futuro, e non vas a "
 "ser notificado de ningunha resposta-@ del."
 
-#. TRANS: Button label on the user block form.
-#. TRANS: Button label on the delete application form.
-#. TRANS: Button label on the delete notice form.
-#. TRANS: Button label on the delete user form.
-#. TRANS: Button label on the form to block a user from a group.
-#: actions/block.php:153 actions/deleteapplication.php:154
-#: actions/deletenotice.php:147 actions/deleteuser.php:152
-#: actions/groupblock.php:178
-msgctxt "BUTTON"
-msgid "No"
-msgstr ""
-
 #: actions/block.php:187
 msgid "Failed to save block information."
 msgstr "Erro ao gardar información de bloqueo."
@@ -617,7 +604,8 @@ msgstr ""
 msgid "A list of the users blocked from joining this group."
 msgstr ""
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloquear"
 
@@ -639,12 +627,6 @@ msgstr "Confirmation code not found."
 msgid "That confirmation code is not for you!"
 msgstr "¡Ese código de confirmación non é para ti!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -656,9 +638,9 @@ msgstr "Esa dirección xa foi confirmada."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -666,7 +648,7 @@ msgstr "Non se puido actualizar o usuario."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Non se pode eliminar a confirmación de email."
@@ -689,10 +671,6 @@ msgstr "Chíos"
 msgid "Application not found."
 msgstr "Confirmation code not found."
 
-#: actions/deleteapplication.php:123 actions/deleteapplication.php:147
-msgid "Delete application"
-msgstr ""
-
 #: actions/deleteapplication.php:149
 msgid ""
 "Are you sure you want to delete this application? This will clear all data "
@@ -700,18 +678,13 @@ msgid ""
 "connections."
 msgstr ""
 
-#. TRANS: Submit button title for 'Yes' when deleting an application.
-#: actions/deleteapplication.php:164
-msgid "Delete this application"
-msgstr ""
-
 #. TRANS: Client error message thrown when trying to access the admin panel while not logged in.
 #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62
 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Non está logueado."
@@ -720,12 +693,6 @@ msgstr "Non está logueado."
 msgid "Can't delete this notice."
 msgstr "Non se pode eliminar este chíos."
 
-#: actions/deletenotice.php:103
-msgid ""
-"You are about to permanently delete a notice. Once this is done, it cannot "
-"be undone."
-msgstr ""
-
 #: actions/deletenotice.php:109 actions/deletenotice.php:141
 msgid "Delete notice"
 msgstr "Eliminar chío"
@@ -747,7 +714,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -763,10 +729,6 @@ msgstr "Modificado"
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -826,17 +788,21 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Gardar"
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr ""
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
 msgstr "Este chío non é un favorito!"
@@ -850,10 +816,6 @@ msgstr "Engadir a favoritos"
 msgid "No such document \"%s\""
 msgstr "Ningún chío."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
-msgstr ""
-
 #: actions/editapplication.php:186 actions/newapplication.php:168
 msgid "Description is required."
 msgstr "Subscrición rexeitada"
@@ -862,6 +824,14 @@ msgstr "Subscrición rexeitada"
 msgid "Source URL is too long."
 msgstr ""
 
+#: actions/editapplication.php:203 actions/newapplication.php:188
+msgid "Organization is required."
+msgstr ""
+
+#: actions/editapplication.php:209 actions/newapplication.php:194
+msgid "Organization homepage is required."
+msgstr ""
+
 #: actions/editapplication.php:218 actions/newapplication.php:206
 msgid "Callback is too long."
 msgstr ""
@@ -875,6 +845,10 @@ msgstr ""
 msgid "Edit %s group"
 msgstr ""
 
+#: actions/editgroup.php:158
+msgid "Use this form to edit the group."
+msgstr ""
+
 #: actions/editgroup.php:205 actions/newgroup.php:145
 #, php-format
 msgid "description is too long (max %d chars)."
@@ -902,7 +876,7 @@ msgstr "Direccións de correo confirmadas actualmente."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -918,116 +892,104 @@ msgstr ""
 "GTalk que ten que haber unha mensaxe coas seguintes instrucións. (Engadiches "
 "a %s á túa lista de contactos?)"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Dirección de correo, coma \"Nomede Usuario@example.org\""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Correo Entrante"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Enviar un correo a esta dirección para enviar novos chíos."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Crear unha nova dirección de correo para enviar, elimina a antiga."
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Enderezos de correo"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Envíame chios de novas suscricións por email."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Enviar un correo cando alguen enganda un chío meu coma favorito."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Enviarme un email cando alguén me envíe unha mensaxe privada."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permitir aos amigos darme toques e enviarme correos electrónicos."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Quero enviar chíos dende o mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publicar unha MicroID dende a miña dirección de correo."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Non se inseriu unha dirección de correo"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Esa dirección de correo non se pode normalizar "
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Non é un enderezo de correo válido."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Xa é o teu enderezo de correo."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Este enderezo de correo xa pertence a outro usuario."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Non se puido inserir o código de confirmación."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1039,45 +1001,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Non hai ningunha confirmación pendente para cancelar."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Non hai ningunha confirmación pendente para cancelar."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Esa non é a túa dirección de correo."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Dirección de correo entrante eliminada."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Non hai direccións de correo entrante"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Non se puido actualizar o rexistro de usuario."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Dirección de correo entrante eliminada."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Engadida nova dirección de correo entrante."
 
@@ -1094,10 +1056,6 @@ msgstr "Desactivar favorito"
 msgid "Popular notices"
 msgstr "Chíos populares"
 
-#: actions/favorited.php:79
-msgid "The most popular notices on the site right now."
-msgstr ""
-
 #: actions/favorited.php:150
 msgid "Favorite notices appear on this page but no one has favorited one yet."
 msgstr ""
@@ -1143,10 +1101,6 @@ msgstr "Ningún chío."
 msgid "Not expecting this response!"
 msgstr "¡Non esperaba esa resposta!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "¡Podes empregar a túa subscrición local!"
@@ -1159,14 +1113,6 @@ msgstr "Este usuario non che permite suscribirte a el."
 msgid "You are not authorized."
 msgstr "Non estás suscrito a ese perfil"
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:79
 msgid "No such file."
 msgstr "Ningún chío."
@@ -1230,36 +1176,55 @@ msgid ""
 "palette of your choice."
 msgstr ""
 
+#: actions/grouplogo.php:142 actions/grouplogo.php:195
+msgid "Group logo"
+msgstr ""
+
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
 msgstr ""
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr ""
 
-#: actions/groupmembers.php:118
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
+#, php-format
+msgid "%1$s group members, page %2$d"
+msgstr ""
+
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Bloquear"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1277,6 +1242,11 @@ msgstr "Liña de tempo de %s"
 msgid "Groups"
 msgstr ""
 
+#: actions/groups.php:64
+#, php-format
+msgid "Groups, page %d"
+msgstr ""
+
 #: actions/groups.php:90
 #, php-format
 msgid ""
@@ -1287,10 +1257,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
 #: actions/groupsearch.php:79 actions/noticesearch.php:117
 #: actions/peoplesearch.php:83
 msgid "No results."
@@ -1363,7 +1329,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1374,64 +1343,64 @@ msgstr ""
 "GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferencias gardadas."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Enviarme advertencias a través de Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Post a notice when my Jabber/GTalk status changes."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Envíame respostas a través de Jabber/GTalk da xente á que non estou suscrito."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publicar unha MicroID dende a miña dirección de Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferencias gardadas."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Sen Identificador de Jabber."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Non se pode normalizar ese identificador de Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Non é un Identificador de Jabber válido"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Xa é a túa conta de Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "O identificador de Jabber xa pertence a outro usuario."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1441,23 +1410,23 @@ msgstr ""
 "engadir a %s como contacto para que che poida enviar mensaxes."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Esa é unha enderezo IM incorrecto."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Sen código de confirmación."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Esa non é a túa conta Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Dirección de correo entrante eliminada."
 
@@ -1544,12 +1513,6 @@ msgstr "Mensaxe persoal"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Opcionalmente engadir unha mensaxe persoal á invitación."
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1657,25 +1620,10 @@ msgstr ""
 msgid "Login with your username and password."
 msgstr "Usuario ou contrasinal incorrectos."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/newapplication.php:52
-msgid "New Application"
-msgstr ""
-
 #: actions/newapplication.php:143
 msgid "Use this form to register a new application."
 msgstr ""
@@ -1688,6 +1636,10 @@ msgstr ""
 msgid "New group"
 msgstr ""
 
+#: actions/newgroup.php:110
+msgid "Use this form to create a new group."
+msgstr ""
+
 #: actions/newmessage.php:71 actions/newmessage.php:231
 msgid "New message"
 msgstr "Nova mensaxe"
@@ -1760,21 +1712,11 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
 #: actions/noticesearchrss.php:98
 #, php-format
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "Actualizacións dende %1$s en %2$s!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "Toque enviado"
@@ -1822,12 +1764,6 @@ msgstr "O usuario non ten perfil."
 msgid "%1$s's status on %2$s"
 msgstr "Estado de %1$s en  %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1835,8 +1771,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Non é un formato de datos soportado."
 
@@ -1880,6 +1816,10 @@ msgstr "Sistema de acortamento de URLs demasiado longo (max 50 car.)."
 msgid "No login token requested."
 msgstr "Sen petición de autorización!"
 
+#: actions/otp.php:104
+msgid "Login token expired."
+msgstr ""
+
 #: actions/outbox.php:61
 #, php-format
 msgid "Outbox for %s"
@@ -1944,7 +1884,7 @@ msgid "Password saved."
 msgstr "Contrasinal gardada."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1952,26 +1892,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -2024,6 +1944,10 @@ msgstr "Avatar"
 msgid "Backgrounds"
 msgstr ""
 
+#: actions/pathsadminpanel.php:305
+msgid "Background server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:309
 msgid "Background path"
 msgstr ""
@@ -2048,10 +1972,6 @@ msgstr ""
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2107,7 +2027,7 @@ msgstr "Nome completo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Páxina persoal"
 
@@ -2115,15 +2035,6 @@ msgstr "Páxina persoal"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr "Enderezo da túa páxina persoal, blogue, ou perfil noutro sitio"
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "Bio"
@@ -2205,7 +2116,7 @@ msgid "Couldn't save tags."
 msgstr "Non se puideron gardar as etiquetas."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Configuracións gardadas."
 
@@ -2222,10 +2133,6 @@ msgstr "Non se pudo recuperar a liña de tempo publica."
 msgid "Public timeline"
 msgstr "Liña de tempo pública"
 
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2256,10 +2163,6 @@ msgstr ""
 "(http://status.net/). [Únete agora](%%action.register%%) para compartir "
 "chíos cos teus amigos, colegas e familia! ([Ler mais](%%doc.help%%))"
 
-#: actions/publictagcloud.php:57
-msgid "Public tag cloud"
-msgstr ""
-
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
@@ -2421,12 +2324,6 @@ msgstr "O enderezo de correo xa existe."
 msgid "Invalid username or password."
 msgstr "Usuario ou contrasinal inválidos."
 
-#: actions/register.php:350
-msgid ""
-"With this form you can create a new account. You can then post notices and "
-"link up to friends and colleagues. "
-msgstr ""
-
 #: actions/register.php:432
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
 msgstr ""
@@ -2477,33 +2374,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2528,10 +2398,6 @@ msgstr ""
 msgid "Remote subscribe"
 msgstr "Suscrición remota"
 
-#: actions/remotesubscribe.php:124
-msgid "Subscribe to a remote user"
-msgstr ""
-
 #: actions/remotesubscribe.php:129
 msgid "User nickname"
 msgstr "Alcume de usuario"
@@ -2557,18 +2423,6 @@ msgstr "Subscribir"
 msgid "Invalid profile URL (bad format)"
 msgstr "Enderezo de perfil inválido (formato incorrecto)"
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
-#: actions/remotesubscribe.php:176
-msgid "That’s a local profile! Login to subscribe."
-msgstr ""
-
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:90
 msgid "You already repeated that notice."
 msgstr "Xa estas suscrito a estes usuarios:"
@@ -2634,7 +2488,7 @@ msgstr "Estatísticas"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2664,15 +2518,10 @@ msgid "Save site settings"
 msgstr "Configuración de perfil"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
-#. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
-msgid "Organization"
-msgstr ""
-
 #: actions/showapplication.php:192 actions/showgroup.php:436
 #: lib/profileaction.php:187
 msgid "Statistics"
@@ -2683,10 +2532,18 @@ msgstr "Estatísticas"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2757,7 +2614,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr ""
@@ -2785,17 +2642,6 @@ msgstr "Fonte para os amigos de %s"
 msgid "Notice feed for %s group (RSS 2.0)"
 msgstr "Fonte para os amigos de %s"
 
-#: actions/showgroup.php:355
-#, php-format
-msgid "FOAF for %s group"
-msgstr ""
-
-#: actions/showgroup.php:398 lib/profileaction.php:117
-#: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
-#: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
-msgid "(None)"
-msgstr ""
-
 #: actions/showgroup.php:404
 msgid "All members"
 msgstr ""
@@ -3105,7 +2951,7 @@ msgstr "Non se inseriu ningún código"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3113,6 +2959,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Confirmar correo electrónico"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3244,10 +3094,6 @@ msgstr "Fonte para os amigos de %s"
 msgid "Notice feed for tag %s (Atom)"
 msgstr "Fonte para os amigos de %s"
 
-#: actions/tagother.php:39
-msgid "No ID argument."
-msgstr ""
-
 #: actions/tagother.php:81 actions/userauthorization.php:132
 #: lib/userprofile.php:103
 msgid "Photo"
@@ -3351,11 +3197,8 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Subscrición de autorización."
 
-#: actions/userauthorization.php:110
-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”."
+#: actions/userauthorization.php:196 actions/version.php:167
+msgid "License"
 msgstr ""
 
 #: actions/userauthorization.php:217
@@ -3374,24 +3217,10 @@ msgstr "Sen petición de autorización!"
 msgid "Subscription authorized"
 msgstr "Subscrición autorizada"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Subscrición rexeitada"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3417,16 +3246,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3591,13 +3410,13 @@ msgid "Problem saving notice."
 msgstr "Aconteceu un erro ó gardar o chío."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -3687,19 +3506,14 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "Conectar"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -3710,12 +3524,6 @@ msgctxt "TOOLTIP"
 msgid "Logout from the site"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
@@ -3733,11 +3541,6 @@ msgstr ""
 msgid "Local views"
 msgstr ""
 
-#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
-#: lib/action.php:778
-msgid "Secondary site navigation"
-msgstr ""
-
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
@@ -3782,22 +3585,17 @@ msgstr ""
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** é un servizo de microbloguexo."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3810,195 +3608,209 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Outros"
 
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
-msgid "Before"
-msgstr ""
-
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usuario"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Eliminar chío"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
-#. TRANS: Form legend.
-#: lib/applicationeditform.php:137
-msgid "Edit application"
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
 msgstr ""
 
-#. TRANS: Form guide.
-#: lib/applicationeditform.php:187
-msgid "Icon for this application"
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
-#, php-format
-msgid "Describe your application in %d characters"
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
-msgid "Describe your application"
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
-msgid "URL of the homepage of this application"
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
-msgid "Organization responsible for this application"
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
-msgid "URL for the homepage of the organization"
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancelar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Recuperar"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr ""
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloquear"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultados do comando"
@@ -4011,6 +3823,13 @@ msgstr "Comando completo"
 msgid "Command failed"
 msgstr "Comando fallido"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4041,6 +3860,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Chío marcado coma favorito."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4075,13 +3908,6 @@ msgid ""
 "same server."
 msgstr ""
 
-#. TRANS: Message given if content is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:491 lib/xmppmanager.php:403
-#, php-format
-msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
@@ -4092,22 +3918,18 @@ msgstr "Erro ó enviar a mensaxe directa."
 msgid "Error repeating notice."
 msgstr "Acounteceu un erro configurando o usuario."
 
-#. TRANS: Message given if content of a notice for a reply is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:592
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
 #, php-format
-msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -4148,8 +3970,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4161,7 +3990,7 @@ msgstr[3] ""
 msgstr[4] ""
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4173,7 +4002,7 @@ msgstr[3] ""
 msgstr[4] ""
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4184,48 +4013,6 @@ msgstr[2] ""
 msgstr[3] ""
 msgstr[4] ""
 
-#: lib/command.php:905
-msgid ""
-"Commands:\n"
-"on - turn on notifications\n"
-"off - turn off notifications\n"
-"help - show this help\n"
-"follow <nickname> - subscribe to user\n"
-"groups - lists the groups you have joined\n"
-"subscriptions - list the people you follow\n"
-"subscribers - list the people that follow you\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"
-"lose <nickname> - force user to stop following you\n"
-"fav <nickname> - add user's last notice as a 'fave'\n"
-"fav #<notice_id> - add notice with the given id as a 'fave'\n"
-"repeat #<notice_id> - repeat a notice with a given id\n"
-"repeat <nickname> - repeat the last notice from user\n"
-"reply #<notice_id> - reply to notice with a given id\n"
-"reply <nickname> - reply to the last notice from user\n"
-"join <group> - join group\n"
-"login - Get a link to login to the web interface\n"
-"drop <group> - leave group\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> - remind a user to update.\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 ""
-
 #: lib/common.php:136
 msgid "I looked for configuration files in the following places: "
 msgstr ""
@@ -4319,40 +4106,80 @@ msgstr "Ir"
 msgid "Grant this user the \"%s\" role"
 msgstr ""
 
-#: lib/groupeditform.php:168
-msgid "Describe the group or topic"
+#: lib/groupeditform.php:187
+#, php-format
+msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
 msgstr ""
 
-#: lib/groupeditform.php:187
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
 #, php-format
-msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgctxt "TOOLTIP"
+msgid "%s group"
 msgstr ""
 
-#: lib/groupnav.php:85
-msgid "Group"
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
 msgstr ""
 
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Inicio de sesión"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4382,7 +4209,8 @@ msgstr "Formato de ficheiro de imaxe non soportado."
 msgid "Partial upload."
 msgstr "Carga parcial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Aconteceu un erro no sistema namentras se estaba cargando o ficheiro."
 
@@ -4394,10 +4222,6 @@ msgstr "Non é unha imaxe ou está corrupta."
 msgid "Lost our file."
 msgstr "Ningún chío."
 
-#: lib/imagefile.php:163 lib/imagefile.php:224
-msgid "Unknown file type"
-msgstr ""
-
 #: lib/imagefile.php:244
 msgid "MB"
 msgstr ""
@@ -4420,10 +4244,6 @@ msgstr ""
 msgid "Login with a username and password"
 msgstr "Usuario ou contrasinal inválidos."
 
-#: lib/logingroupnav.php:86
-msgid "Sign up for a new account"
-msgstr ""
-
 #. TRANS: Subject for address confirmation email
 #: lib/mail.php:174
 msgid "Email address confirmation"
@@ -4472,22 +4292,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Subject of notification mail for new posting email address
 #: lib/mail.php:304
 #, php-format
@@ -4606,28 +4410,6 @@ msgstr ""
 msgid "%s (@%s) added your notice as a favorite"
 msgstr "Enviar un correo cando alguen enganda un chío meu coma favorito."
 
-#. TRANS: Body for favorite notification email
-#: lib/mail.php:592
-#, php-format
-msgid ""
-"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n"
-"\n"
-"The URL of your notice is:\n"
-"\n"
-"%3$s\n"
-"\n"
-"The text of your notice is:\n"
-"\n"
-"%4$s\n"
-"\n"
-"You can see the list of %1$s's favorites here:\n"
-"\n"
-"%5$s\n"
-"\n"
-"Faithfully yours,\n"
-"%6$s\n"
-msgstr ""
-
 #. TRANS: Line in @-reply notification e-mail. %s is conversation URL.
 #: lib/mail.php:651
 #, php-format
@@ -4637,6 +4419,11 @@ msgid ""
 "\t%s"
 msgstr ""
 
+#: lib/mail.php:657
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
 #, php-format
@@ -4675,10 +4462,6 @@ msgid ""
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
 
-#: lib/mailbox.php:228 lib/noticelist.php:506
-msgid "from"
-msgstr ""
-
 #: lib/mailhandler.php:37
 msgid "Could not parse message."
 msgstr "Non se puido analizaar a mensaxe."
@@ -4695,67 +4478,81 @@ msgstr "Ise é un enderezo IM incorrecto."
 msgid "Sorry, no incoming email allowed."
 msgstr "Aivá, non se permiten correos entrantes."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Non se puido eliminar o favorito."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
 msgid "To"
 msgstr "A"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "Novo chío"
@@ -4773,25 +4570,12 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
-#: lib/noticeform.php:216
-msgid "Do not share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
 
-#. TRANS: Used in coordinates as abbreviation of north
-#: lib/noticelist.php:436
-msgid "N"
-msgstr ""
-
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
@@ -4825,22 +4609,23 @@ msgid "Reply"
 msgstr "Respostas"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Acounteceu un erro ó inserir o novo perfil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Acounteceu un erro ó inserir o avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Acounteceu un erro actualizando o perfil remoto"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Aconteceu un erro ó inserir o perfil remoto"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Non se puido inserir a nova subscrición."
 
@@ -4872,11 +4657,6 @@ msgstr "Band. Saída"
 msgid "Your sent messages"
 msgstr "As túas mensaxes enviadas"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
 #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82
 msgid "Subscriptions"
 msgstr "Subscricións"
@@ -4898,10 +4678,6 @@ msgstr "Membro dende"
 msgid "Daily average"
 msgstr ""
 
-#: lib/profileaction.php:264
-msgid "All groups"
-msgstr ""
-
 #: lib/profileformaction.php:123
 msgid "Unimplemented method."
 msgstr ""
@@ -4910,10 +4686,6 @@ msgstr ""
 msgid "Public"
 msgstr "Público"
 
-#: lib/publicgroupnav.php:82
-msgid "User groups"
-msgstr ""
-
 #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
 msgid "Recent tags"
 msgstr "Etiquetas recentes"
@@ -4926,10 +4698,6 @@ msgstr "Destacado"
 msgid "Popular"
 msgstr "Popular"
 
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
-msgstr ""
-
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr "Si"
@@ -4943,17 +4711,16 @@ msgstr ""
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/sandboxform.php:78
-msgid "Sandbox this user"
-msgstr ""
-
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Buscar"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -4975,12 +4742,9 @@ msgstr ""
 msgid "More..."
 msgstr ""
 
-#: lib/silenceform.php:67
-msgid "Silence"
-msgstr ""
-
-#: lib/silenceform.php:78
-msgid "Silence this user"
+#: lib/subgroupnav.php:99
+#, php-format
+msgid "Groups %s is a member of"
 msgstr ""
 
 #: lib/subgroupnav.php:105
@@ -4997,10 +4761,6 @@ msgstr ""
 msgid "People Tagcloud as tagged"
 msgstr ""
 
-#: lib/tagcloudsection.php:56
-msgid "None"
-msgstr ""
-
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
 msgstr ""
@@ -5049,18 +4809,10 @@ msgstr ""
 msgid "Unsandbox"
 msgstr ""
 
-#: lib/unsandboxform.php:80
-msgid "Unsandbox this user"
-msgstr ""
-
 #: lib/unsilenceform.php:67
 msgid "Unsilence"
 msgstr ""
 
-#: lib/unsilenceform.php:78
-msgid "Unsilence this user"
-msgstr ""
-
 #: lib/unsubscribeform.php:137
 msgid "Unsubscribe"
 msgstr "Eliminar subscrición"
@@ -5088,56 +4840,76 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "fai uns segundos"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "fai un minuto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "fai %d minutos"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "fai unha hora"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "fai %d horas"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "fai un día"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "fai %d días"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "fai un mes"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "fai %d meses"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "fai un ano"
 
@@ -5145,3 +4917,8 @@ msgstr "fai un ano"
 #, php-format
 msgid "%s is not a valid color!"
 msgstr "A páxina persoal semella que non é unha URL válida."
+
+#: lib/webcolor.php:123
+#, php-format
+msgid "%s is not a valid color! Use 3 or 6 hex chars."
+msgstr ""
index fff987a4fa6a37c02d0c4f42e1d63f4c7d8ee943..e2322622e06e4a00d6b187e3ecf9ba33f59151b6 100644 (file)
@@ -1,28 +1,30 @@
-# Translation of StatusNet to Galician
+# Translation of StatusNet - Core to Galician (Galego)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Gallaecio
-# Author@translatewiki.net: Toliño
+# Author: Gallaecio
+# Author: Toliño
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:22+0000\n"
-"Language-Team: Galician\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:54+0000\n"
+"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: gl\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Acceso"
 
@@ -75,10 +77,10 @@ msgstr "Gardar a configuración de acceso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Gardar"
@@ -91,15 +93,15 @@ msgstr "Esa páxina non existe."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -199,16 +201,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Actualizacións de %1$s e amigos en %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -223,21 +225,23 @@ msgstr "Actualizacións de %1$s e amigos en %2$s!"
 msgid "API method not found."
 msgstr "Non se atopou o método da API."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Este método require un POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -245,27 +249,27 @@ msgstr ""
 "Ten que especificar un parámetro chamado \"device\" cun destes valores: sms, "
 "im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Non se puido actualizar o usuario."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "O usuario non ten perfil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Non se puido gardar o perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -277,30 +281,30 @@ msgstr ""
 "O servidor non puido manexar tantos datos POST (%s bytes) por mor da súa "
 "configuración actual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Non se puido gardar a súa configuración de deseño."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Non se puido actualizar o seu deseño."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Non pode bloquearse a si mesmo!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Non se puido bloquear o usuario."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Non se puido desbloquear o usuario."
 
@@ -324,61 +328,61 @@ msgstr "Mensaxes directas a %s"
 msgid "All the direct messages sent to %s"
 msgstr "Todas as mensaxes directas enviadas a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "A mensaxe non ten texto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 "Iso é longo de máis. A lonxitude máxima das mensaxes é de %d caracteres."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Non se atopou o destinatario."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Non pode enviar mensaxes directas a usuarios que non sexan amigos seus."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Non se atopou ningún estado con esa ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Este estado xa é dos favoritos."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Non se puido crear o favorito."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Ese estado non é un dos favoritos."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Non se puido eliminar o favorito."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Non se puido seguir o usuario: non se atopou."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Non se puido seguir o usuario: %s xa está na súa lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Non se puido deixar de seguir o usuario: non se atopou."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Non pode deixar de seguirse a si mesmo."
 
@@ -394,7 +398,7 @@ msgstr "Non se puido determinar o usuario de orixe."
 msgid "Could not find target user."
 msgstr "Non se puido atopar o usuario de destino."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -402,95 +406,95 @@ msgstr ""
 "O alcume debe ter só letras en minúscula e números, e non pode ter espazos "
 "en branco."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Ese alcume xa está en uso. Probe con outro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "O formato do alcume non é correcto."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "O URL da páxina persoal non é correcto."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "O nome completo é longo de máis (o máximo son 255 caracteres)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "A descrición é longa de máis (o máximo son %d caracteres)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "A localidade é longa de máis (o máximo son 255 caracteres)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Demasiados pseudónimos! O número máximo é %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Pseudónimo incorrecto: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "O pseudónimo \"%s\" xa se está a usar. Proba con outro."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "O pseudónimo non pode coincidir co alcume."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Non se atopou o grupo."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Xa forma parte dese grupo."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "O administrador bloqueouno nese grupo."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "O usuario %1$s non se puido engadir ao grupo %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Vostede non pertence a este grupo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -520,7 +524,7 @@ msgstr "grupos %s"
 msgid "groups on %s"
 msgstr "grupos en %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Houbo un erro durante a carga."
 
@@ -534,9 +538,9 @@ msgstr "Pase incorrecto."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -583,8 +587,8 @@ msgstr "Denegouse e revogouse a ficha da solicitude %s."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -648,18 +652,18 @@ msgstr "Este método require un POST ou un DELETE."
 msgid "You may not delete another user's status."
 msgstr "Non pode borrar o estado doutro usuario."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Non existe tal nota."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Non pode repetir a súa propia nota."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Xa repetiu esa nota."
 
@@ -671,21 +675,21 @@ msgstr "Borrouse o estado."
 msgid "No status with that ID found."
 msgstr "Non se atopou ningún estado con esa ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "O cliente debe proporcionar un parámetro de \"estado\" cun valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Iso é longo de máis. A nota non pode exceder os %d caracteres."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Non se atopou."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -889,7 +893,9 @@ msgid "Yes"
 msgstr "Si"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloquear este usuario"
 
@@ -931,11 +937,13 @@ msgstr "Unha lista de usuarios bloqueados fronte á unión a este grupo."
 msgid "Unblock user from group"
 msgstr "Desbloquear o usuario do grupo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloquear"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Desbloquear este usuario"
 
@@ -974,9 +982,9 @@ msgstr "Ese enderezo xa se confirmou."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -984,7 +992,7 @@ msgstr "Non se puido actualizar o usuario."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Non se puido borrar a confirmación por correo electrónico."
@@ -1020,9 +1028,10 @@ msgstr "Non se atopou a aplicación."
 msgid "You are not the owner of this application."
 msgstr "Non é o dono desa aplicación."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Houbo un problema co seu pase."
 
@@ -1056,7 +1065,7 @@ msgstr "Borrar a aplicación"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Non iniciou sesión."
@@ -1119,7 +1128,6 @@ msgstr "Borrar o usuario"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Deseño"
 
@@ -1241,13 +1249,13 @@ msgstr "Restaurar o deseño por defecto"
 msgid "Reset back to default"
 msgstr "Volver ao deseño por defecto"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Gardar"
@@ -1403,7 +1411,7 @@ msgstr "Enderezo de correo electrónico confirmado actualmente."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1421,22 +1429,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Enderezo de correo electrónico, coma \"nomedeusuario@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1444,20 +1456,20 @@ msgstr "Engadir"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Correo entrante"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 "Enviar un correo electrónico a este enderezo para publicar novas notas."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Establece un novo enderezo de correo electrónico no que publicar, e cancela "
@@ -1465,96 +1477,96 @@ msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Novo"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferencias de correo electrónico"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Enviarme notas acerca de novas subscricións por correo electrónico."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Enviádeme un correo electrónico cando alguén marque como favorito algunha "
 "das miñas notas."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "Enviádeme un correo electrónico cando alguén me envíe unha mensaxe privada."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Enviádeme un correo electrónico cando alguén me envíe unha resposta."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 "Permitirlles aos meus amigos facerme acenos e enviarme correos electrónicos."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Quero publicar notas por correo electrónico."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publicar unha MicroID para o meu enderezo de correo electrónico."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Gardáronse as preferencias de correo electrónico."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Non hai enderezo de correo electrónico."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Non se pode normalizar ese enderezo de correo electrónico"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "O enderezo de correo electrónico é incorrecto."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Ese enderezo de correo electrónico é o que ten agora."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Ese enderezo de correo electrónico xa pertence a outro usuario."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Non se puido inserir o código de confirmación."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1566,50 +1578,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Non hai ningunha confirmación pendente que cancelar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Ese enderezo de correo electrónico é incorrecto."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Cancelouse a confirmación por correo electrónico."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Ese non é o seu enderezo de correo electrónico."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Borrouse o enderezo de correo electrónico."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Non hai ningún enderezo ao que enviar."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Non se puido actualizar o rexistro do usuario."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Borrouse o enderezo de correo electrónico entrante."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Engadiuse un novo enderezo de correo electrónico entrante."
 
@@ -1726,7 +1738,7 @@ msgstr "Non se puido converter a ficha da solicitude nun pase."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "O servizo remoto utiliza unha versión descoñecida do protocolo OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Houbo un erro ao actualizar o perfil remoto."
 
@@ -1783,7 +1795,7 @@ msgstr "O usuario xa está excluído do grupo."
 msgid "User is not a member of group."
 msgstr "O usuario non pertence ao grupo."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Excluír do grupo ao usuario"
 
@@ -1865,37 +1877,47 @@ msgstr "Actualizouse o logo."
 msgid "Failed updating logo."
 msgstr "Non se puido actualizar o logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membros do grupo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membros do grupo %1$s, páxina %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Unha lista dos usuarios pertencentes a este grupo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrador"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Excluír"
+msgstr "Bloquear"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Converter ao usuario en administrador do grupo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Converter en administrador"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Converter a este usuario en administrador"
 
@@ -2036,7 +2058,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2047,65 +2072,65 @@ msgstr ""
 "instantánea ou en GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferencias de mensaxería instantánea"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Enviádeme as notas mediante Jabber ou GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Publicar unha nota cando cambie o meu estado en Jabber ou GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Enviádeme as respostas mediante Jabber ou GTalk da xente á que non estou "
 "subscrita."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publicar unha MicroID para o meu enderezo de Jabber ou GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Gardáronse as preferencias."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Non existe ningunha ID de Jabber."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Non se pode normalizar esa ID de Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "A ID de Jabber non é correcta"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Esa xa é a súa ID de Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Esa ID de Jabber xa corresponde a un usuario."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2115,28 +2140,28 @@ msgstr ""
 "engadiu. Ten que aprobar que %s lle envíe mensaxes."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Ese enderezo de mensaxería instantánea é incorrecto."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Non se puido borrar a confirmación por mensaxería instantánea."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Cancelouse a confirmación por mensaxería instantánea."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Esa ID de Jabber non é súa."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Borrouse o enderezo de mensaxería instantánea."
 
@@ -2609,8 +2634,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Só %s enderezos URL sobre HTTP simple."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Non se soporta ese formato de datos."
 
@@ -2753,7 +2778,7 @@ msgid "Password saved."
 msgstr "Gardouse o contrasinal."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Rutas"
 
@@ -2967,7 +2992,7 @@ msgstr "Nome completo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Páxina persoal"
 
@@ -3074,7 +3099,7 @@ msgid "Couldn't save tags."
 msgstr "Non se puideron gardar as etiquetas."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Gardouse a configuración."
 
@@ -3623,7 +3648,7 @@ msgstr "O usuario xa está illado."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sesións"
 
@@ -3661,24 +3686,24 @@ msgid "Application profile"
 msgstr "Perfil da aplicación"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nome"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organización"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descrición"
 
@@ -3794,7 +3819,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Isto é un modo de compartir o que lle gusta."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupo %s"
@@ -3846,7 +3871,7 @@ msgstr "Fonte de novas das notas do grupo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Amigo dun amigo para o grupo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membros"
 
@@ -4304,7 +4329,7 @@ msgstr "Non se introduciu ningún código"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Instantáneas"
 
@@ -4995,18 +5020,18 @@ msgid "Problem saving notice."
 msgstr "Houbo un problema ao gardar a nota."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "O tipo dado para saveKnownGroups era incorrecto"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Houbo un problema ao gardar a caixa de entrada do grupo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "♻ @%1$s %2$s"
@@ -5038,7 +5063,7 @@ msgid "Unable to save tag."
 msgstr "Non se puido gardar a nota do sitio."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Prohibíuselle realizar subscricións de momento."
 
@@ -5186,7 +5211,8 @@ msgid "Change site configuration"
 msgstr "Cambiar a configuración do sitio"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrador"
@@ -5263,7 +5289,7 @@ msgstr "Buscar"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Nota do sitio"
 
@@ -5327,7 +5353,10 @@ msgid "StatusNet software license"
 msgstr "Licenza do software StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5337,13 +5366,16 @@ msgstr ""
 "site.broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** é un servizo de mensaxes de blogue curtas."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5355,20 +5387,20 @@ msgstr ""
 "GNU](http://www.fsf.org/licensing/licenses/agpl-3.0.html) (en inglés)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licenza dos contidos do sitio"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "O contido e os datos de %1$s son privados e confidenciais."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5376,33 +5408,34 @@ msgstr ""
 "todos os dereitos."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Os contidos e datos son propiedade intelectual dos colaboradores. Quedan "
 "reservados todos os dereitos."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 "Todos os contidos e datos de %1$s están dispoñibles baixo a licenza %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paxinación"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Posteriores"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Anteriores"
 
@@ -5412,208 +5445,243 @@ msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 "Esperábase unha fonte de novas raíz pero recibiuse un documento XML completo."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Aínda non é posible manexar contidos remotos."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Aínda non se poden manexar contidos XML integrados."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Aínda non se poden manexar contidos Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Non pode realizar cambios neste sitio."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Non se permite realizar cambios nese panel."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() non está integrado."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() non está integrado."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Non se puido borrar a configuración do deseño."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuración básica do sitio"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Sitio"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuración do deseño"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Deseño"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuración do usuario"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usuario"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuración de acceso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuración das rutas"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuración das sesións"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Modificar a nota do sitio"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuración das instantáneas"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "O recurso API precisa permisos de lectura e escritura, pero só dispón de "
 "permisos de lectura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Modificar a aplicación"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icona para esta aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Describa a súa aplicación en %d caracteres"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Describa a súa aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL do sitio web desta aplicación"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL de orixe"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organización responsable desta aplicación"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL do sitio web da organización"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL ao que ir tras a autenticación"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navegador"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Escritorio"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipo de aplicación, de navegador ou de escritorio"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Lectura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lectura e escritura"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Permisos por defecto para esta aplicación: lectura ou lectura e escritura"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancelar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lectura e escritura"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "lectura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprobado o %1$s - permisos de \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revogar"
@@ -5633,11 +5701,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Provedor"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Notas nas que se anexou este ficheiro"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etiquetas para este ficheiro"
 
@@ -5649,6 +5719,11 @@ msgstr "Non se puido cambiar o contrasinal"
 msgid "Password changing is not allowed"
 msgstr "Non se permite cambiar o contrasinal"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Excluír"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultados da orde"
@@ -5900,7 +5975,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Non está subscrito a ninguén."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5915,7 +5990,7 @@ msgid "No one is subscribed to you."
 msgstr "Non hai ninguén subscrito a vostede."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5930,7 +6005,7 @@ msgid "You are not a member of any groups."
 msgstr "Non forma parte de ningún grupo."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5938,6 +6013,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Vostede pertence a este grupo:"
 msgstr[1] "Vostede pertence a estes grupos:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6161,35 +6237,75 @@ msgstr ""
 "Alcumes adicionais para o grupo, separados por comas ou espazos, %d como "
 "máximo"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Grupo"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Grupo %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Membros"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Membros do grupo %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr "Bloqueado"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s usuarios bloqueados"
+msgstr "Usuarios bloqueados en %s"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr "Modificar as propiedades do grupo %s"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logotipo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr "Engadir ou modificar o logotipo de %s"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr "Engadir ou modificar o deseño de %s"
 
@@ -6224,7 +6340,8 @@ msgstr "Ese ficheiro é grande de máis. O tamaño máximo por ficheiro son %s."
 msgid "Partial upload."
 msgstr "Carga parcial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Houbo un erro no sistema ao cargar o ficheiro."
 
@@ -6627,16 +6744,19 @@ msgstr "Non se permite recibir correo electrónico."
 msgid "Unsupported message type: %s"
 msgstr "Non se soporta o tipo de mensaxe: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Houbo un erro na base de datos ao gardar o seu ficheiro. Volva intentalo."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "O ficheiro subido supera a directiva upload_max_filesize no php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6644,43 +6764,59 @@ msgstr ""
 "O ficheiro subido supera a directiva MAX_FILE_SIZE especificada no "
 "formulario HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "O ficheiro só se subiu parcialmente."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Falta un cartafol temporal."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Non se puido escribir o ficheiro no disco."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Interrompeuse a carga do ficheiro por mor da extensión."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "O ficheiro supera a cota do usuario."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Non se puido mover o ficheiro ao directorio de destino."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Non se puido determinar o tipo MIME do ficheiro."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Inténteo utilizando outro formato %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "Neste servidor non se soporta o tipo de ficheiro %s."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "Neste servidor non se soporta o tipo de ficheiro \"%s\"."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6798,26 +6934,23 @@ msgid "Send a nudge to this user"
 msgstr "Facerlle un aceno a este usuario"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Houbo un erro ao inserir o novo perfil"
+msgid "Error inserting new profile."
+msgstr "Houbo un erro ao inserir o novo perfil."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Houbo un erro ao inserir o avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Houbo un erro ao actualizar o perfil remoto"
+msgid "Error inserting avatar."
+msgstr "Houbo un erro ao inserir o avatar."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Houbo un erro ao inserir o perfil remoto"
+msgid "Error inserting remote profile."
+msgstr "Houbo un erro ao inserir o perfil remoto."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Nota duplicada"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Nota duplicada."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Non se puido inserir unha subscrición nova."
 
@@ -6854,7 +6987,8 @@ msgstr "As mensaxes enviadas"
 msgid "Tags in %s's notices"
 msgstr "Etiquetas nas notas de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Descoñecida"
 
@@ -6948,19 +7082,24 @@ msgstr "Illar"
 msgid "Sandbox this user"
 msgstr "Illar a este usuario"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Buscar no sitio"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Termos de busca"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Buscar"
+msgstr "Procurar"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Buscar na axuda"
 
@@ -7075,7 +7214,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "O tema visual contén nomes de extensión inseguros."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7161,56 +7300,64 @@ msgid "Moderator"
 msgstr "Moderador"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "hai uns segundos"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "hai como un minuto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "hai como %d minutos"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "hai como unha hora"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "hai como %d horas"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "hai como un día"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "hai como %d días"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "hai como un mes"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "hai como %d meses"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "hai como un ano"
 
index 34d71bfe6afb03daf00498bbc77326820a897974..ce4ca83ffc21879104492c105a884b464fd3b775 100644 (file)
@@ -1,22 +1,24 @@
-# Translation of StatusNet to Hebrew
+# Translation of StatusNet - Core to Hebrew (עברית)
+# Expored from translatewiki.net
 #
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:24+0000\n"
-"Language-Team: Hebrew\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:55+0000\n"
+"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: he\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page notice
 #: actions/accessadminpanel.php:67
@@ -43,11 +45,6 @@ msgstr ""
 msgid "Disable new registrations."
 msgstr ""
 
-#. TRANS: Checkbox label for disabling new user registrations.
-#: actions/accessadminpanel.php:185
-msgid "Closed"
-msgstr ""
-
 #. TRANS: Server error when page not found (404)
 #: actions/all.php:68 actions/public.php:98 actions/replies.php:93
 #: actions/showfavorites.php:138 actions/tag.php:52
@@ -56,15 +53,15 @@ msgstr "אין משתמש כזה."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -89,18 +86,6 @@ msgstr "אין משתמש כזה."
 msgid "%s and friends"
 msgstr "%s וחברים"
 
-#. TRANS: %1$s is user nickname
-#: actions/all.php:107
-#, php-format
-msgid "Feed for friends of %s (RSS 1.0)"
-msgstr ""
-
-#. TRANS: %1$s is user nickname
-#: actions/all.php:116
-#, php-format
-msgid "Feed for friends of %s (RSS 2.0)"
-msgstr ""
-
 #. TRANS: %1$s is user nickname
 #: actions/all.php:138
 #, php-format
@@ -138,39 +123,41 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "למשתמש אין פרופיל."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -180,25 +167,21 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
-msgid "You cannot block yourself!"
-msgstr ""
-
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr ""
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr ""
 
@@ -222,118 +205,107 @@ msgstr ""
 msgid "All the direct messages sent to %s"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr ""
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr ""
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "שמירת הפרופיל נכשלה."
 
-#: actions/apifriendshipsdestroy.php:120
-msgid "You cannot unfollow yourself."
+#: actions/apifriendshipscreate.php:119
+#, php-format
+msgid "Could not follow user: %s is already on your list."
 msgstr ""
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
 msgstr ""
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "כינוי יכול להכיל רק אותיות אנגליות קטנות ומספרים, וללא רווחים."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "כינוי זה כבר תפוס. נסה כינוי אחר."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "שם משתמש לא חוקי."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "לאתר הבית יש כתובת לא חוקית."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "שם המיקום ארוך מידי (מותר עד %d אותיות)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "גודל לא חוקי."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "קוד האישור לא נמצא."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "לא שלחנו אלינו את הפרופיל הזה"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr ""
 
-#. TRANS: %s is a user name
-#: actions/apigrouplist.php:98
-#, php-format
-msgid "%s's groups"
-msgstr ""
-
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
-msgstr ""
-
 #: actions/apigrouplistall.php:96
 #, php-format
 msgid "groups on %s"
@@ -345,9 +317,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -378,8 +350,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -435,7 +407,7 @@ msgstr ""
 msgid "You may not delete another user's status."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "אין הודעה כזו."
@@ -444,20 +416,15 @@ msgstr "אין הודעה כזו."
 msgid "No status with that ID found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
 
-#: actions/apitimelinefavorites.php:119
-#, php-format
-msgid "%1$s updates favorited by %2$s / %2$s."
-msgstr ""
-
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
@@ -473,11 +440,6 @@ msgstr ""
 msgid "Notices tagged with %s"
 msgstr ""
 
-#: actions/apitimelinetag.php:107 actions/tagrss.php:65
-#, php-format
-msgid "Updates tagged with %1$s on %2$s!"
-msgstr ""
-
 #: actions/attachment.php:73
 msgid "No such attachment."
 msgstr "אין הודעה כזו."
@@ -518,11 +480,6 @@ msgstr ""
 msgid "Preview"
 msgstr ""
 
-#: actions/avatarsettings.php:149 actions/showapplication.php:252
-#: lib/deleteuserform.php:66 lib/noticelist.php:657
-msgid "Delete"
-msgstr ""
-
 #: actions/avatarsettings.php:166 actions/grouplogo.php:236
 msgid "Upload"
 msgstr "ההעלה"
@@ -554,23 +511,6 @@ msgid ""
 "will not be notified of any @-replies from them."
 msgstr ""
 
-#. TRANS: Button label on the user block form.
-#. TRANS: Button label on the delete application form.
-#. TRANS: Button label on the delete notice form.
-#. TRANS: Button label on the delete user form.
-#. TRANS: Button label on the form to block a user from a group.
-#: actions/block.php:153 actions/deleteapplication.php:154
-#: actions/deletenotice.php:147 actions/deleteuser.php:152
-#: actions/groupblock.php:178
-msgctxt "BUTTON"
-msgid "No"
-msgstr ""
-
-#. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
-msgid "Block this user"
-msgstr ""
-
 #: actions/block.php:187
 msgid "Failed to save block information."
 msgstr ""
@@ -591,25 +531,12 @@ msgstr ""
 msgid "No such group."
 msgstr "אין משתמש כזה."
 
-#: actions/blockedfromgroup.php:97
-#, php-format
-msgid "%s blocked profiles"
-msgstr ""
-
-#: actions/blockedfromgroup.php:100
-#, php-format
-msgid "%1$s blocked profiles, page %2$d"
-msgstr ""
-
 #: actions/blockedfromgroup.php:115
 msgid "A list of the users blocked from joining this group."
 msgstr ""
 
-#: actions/blockedfromgroup.php:288
-msgid "Unblock user from group"
-msgstr ""
-
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr ""
 
@@ -625,12 +552,6 @@ msgstr "קוד האישור לא נמצא."
 msgid "That confirmation code is not for you!"
 msgstr "קוד האישור הזה אינו מיועד לך!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -642,9 +563,9 @@ msgstr "כתובת זו כבר אושרה."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -668,9 +589,10 @@ msgstr "הודעות"
 msgid "Application not found."
 msgstr "קוד האישור לא נמצא."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -687,7 +609,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "לא מחובר."
@@ -706,11 +628,6 @@ msgstr ""
 msgid "Are you sure you want to delete this notice?"
 msgstr ""
 
-#. TRANS: Submit button title for 'No' when deleting a notice.
-#: actions/deletenotice.php:151
-msgid "Do not delete this notice"
-msgstr ""
-
 #. TRANS: Submit button title for 'Yes' when deleting a notice.
 #: actions/deletenotice.php:158 lib/noticelist.php:657
 msgid "Delete this notice"
@@ -725,7 +642,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -733,11 +649,6 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "שנה"
@@ -746,10 +657,6 @@ msgstr "שנה"
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -805,17 +712,21 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "שמור"
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr ""
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
 msgstr ""
@@ -825,14 +736,18 @@ msgstr ""
 msgid "No such document \"%s\""
 msgstr "אין הודעה כזו."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
+#: actions/editapplication.php:66
+msgid "You must be logged in to edit an application."
 msgstr ""
 
 #: actions/editapplication.php:161
 msgid "Use this form to edit your application."
 msgstr ""
 
+#: actions/editapplication.php:177 actions/newapplication.php:159
+msgid "Name is required."
+msgstr ""
+
 #: actions/editapplication.php:186 actions/newapplication.php:168
 msgid "Description is required."
 msgstr "ההרשמה נדחתה"
@@ -841,6 +756,14 @@ msgstr "ההרשמה נדחתה"
 msgid "Source URL is too long."
 msgstr ""
 
+#: actions/editapplication.php:203 actions/newapplication.php:188
+msgid "Organization is required."
+msgstr ""
+
+#: actions/editapplication.php:209 actions/newapplication.php:194
+msgid "Organization homepage is required."
+msgstr ""
+
 #: actions/editapplication.php:218 actions/newapplication.php:206
 msgid "Callback is too long."
 msgstr ""
@@ -854,6 +777,10 @@ msgstr ""
 msgid "Edit %s group"
 msgstr ""
 
+#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
+msgid "You must be logged in to create a group."
+msgstr ""
+
 #: actions/editgroup.php:107 actions/editgroup.php:172
 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109
 msgid "You must be an admin to edit the group."
@@ -885,86 +812,79 @@ msgstr ""
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
 msgid "Remove"
 msgstr "שיחזור"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr ""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr ""
 
+#. TRANS: Message given saving e-mail address without having provided one.
+#: actions/emailsettings.php:357
+msgid "No email address."
+msgstr ""
+
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "הכנסת קוד האישור נכשלה."
@@ -972,25 +892,35 @@ msgstr "הכנסת קוד האישור נכשלה."
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "אין אישור ממתין שניתן לבטל."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "אין אישור ממתין שניתן לבטל."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "כתובת זו כבר אושרה."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr ""
 
+#. TRANS: Message given after successfully removing an incoming e-mail address.
+#: actions/emailsettings.php:512 actions/smssettings.php:581
+msgid "Incoming email address removed."
+msgstr ""
+
+#. TRANS: Message given after successfully adding an incoming e-mail address.
+#: actions/emailsettings.php:536 actions/smssettings.php:605
+msgid "New incoming email address added."
+msgstr ""
+
 #: actions/favor.php:79
 msgid "This notice is already a favorite!"
 msgstr ""
@@ -999,11 +929,6 @@ msgstr ""
 msgid "Disfavor favorite"
 msgstr ""
 
-#: actions/favorited.php:67
-#, php-format
-msgid "Popular notices, page %d"
-msgstr ""
-
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
 msgstr ""
@@ -1031,9 +956,9 @@ msgstr ""
 msgid "%s's favorite notices"
 msgstr ""
 
-#: actions/favoritesrss.php:115
-#, php-format
-msgid "Updates favored by %1$s on %2$s!"
+#: actions/featured.php:69 lib/featureduserssection.php:87
+#: lib/publicgroupnav.php:89
+msgid "Featured users"
 msgstr ""
 
 #: actions/featured.php:71
@@ -1058,10 +983,6 @@ msgstr "אין הודעה כזו."
 msgid "Not expecting this response!"
 msgstr "זו תגובה לא צפויה!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "ניתן להשתמש במנוי המקומי!"
@@ -1074,14 +995,6 @@ msgstr ""
 msgid "You are not authorized."
 msgstr "ההרשמה אושרה"
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:83
 msgid "Cannot read file."
 msgstr "שמירת הפרופיל נכשלה."
@@ -1090,8 +1003,16 @@ msgstr "שמירת הפרופיל נכשלה."
 msgid "This role is reserved and cannot be set."
 msgstr ""
 
-#: actions/grantrole.php:75
-msgid "You cannot grant user roles on this site."
+#: actions/groupblock.php:71 actions/groupunblock.php:71
+#: actions/makeadmin.php:71 actions/subedit.php:46
+#: lib/profileformaction.php:79
+msgid "No profile specified."
+msgstr ""
+
+#: actions/groupblock.php:76 actions/groupunblock.php:76
+#: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
+#: actions/unsubscribe.php:84 lib/profileformaction.php:86
+msgid "No profile with that ID."
 msgstr ""
 
 #: actions/groupblock.php:81 actions/groupunblock.php:81
@@ -1103,10 +1024,6 @@ msgstr ""
 msgid "Only an admin can block group members."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
-msgid "Block user from group"
-msgstr ""
-
 #: actions/groupblock.php:160
 #, php-format
 msgid ""
@@ -1115,16 +1032,6 @@ msgid ""
 "the group in the future."
 msgstr ""
 
-#. TRANS: Submit button title for 'No' when blocking a user from a group.
-#: actions/groupblock.php:182
-msgid "Do not block this user from this group"
-msgstr ""
-
-#. TRANS: Submit button title for 'Yes' when blocking a user from a group.
-#: actions/groupblock.php:189
-msgid "Block this user from this group"
-msgstr ""
-
 #: actions/groupblock.php:206
 msgid "Database error blocking user from group."
 msgstr ""
@@ -1147,41 +1054,50 @@ msgstr ""
 msgid "Pick a square area of the image to be the logo."
 msgstr ""
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
+#, php-format
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr ""
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
-#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
-#: actions/grouprss.php:142
-#, php-format
-msgid "Updates from members of %1$s on %2$s!"
-msgstr ""
-
 #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249
 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
 msgid "Groups"
@@ -1202,15 +1118,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
-#: actions/groupsearch.php:79 actions/noticesearch.php:117
-#: actions/peoplesearch.php:83
-msgid "No results."
-msgstr ""
-
 #: actions/groupsearch.php:82
 #, php-format
 msgid ""
@@ -1229,10 +1136,6 @@ msgstr ""
 msgid "Only an admin can unblock group members."
 msgstr ""
 
-#: actions/groupunblock.php:95
-msgid "User is not blocked from group."
-msgstr ""
-
 #. TRANS: Title for instance messaging settings.
 #: actions/imsettings.php:60
 msgid "IM settings"
@@ -1250,11 +1153,6 @@ msgstr ""
 "אפשר לשלוח ולקבל בודעות דרך Jabber/GTalk [instant messages](%%doc.im%%) הגדר "
 "את כתובתך והעדפותיך למטה."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #: actions/imsettings.php:113
 msgid "Current confirmed Jabber/GTalk address."
 msgstr "כתובת מאושרת נוכחית של Jabber/GTalk."
@@ -1272,7 +1170,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1282,53 +1183,53 @@ msgstr ""
 "החברים בתוכנת ההמסרים המידיים או GTalk שלך."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "העדפות נשמרו."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "שלח לי הודעות דרך Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "פרסם הודעה כששורת הסטטוס שלי ב-Jabber/GTalk מתעדכנת."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "העדפות נשמרו."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "אין זיהוי Jabber כזה."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "לא ניתן לנרמל את זהות ה-Jabber הזה"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "לא עומד בכללים לזיהוי Jabber"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "זהו כבר זיהוי ה-Jabber שלך."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "זיהוי ה-Jabber כבר שייך למשתמש אחר."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1338,18 +1239,18 @@ msgstr ""
 "מידיים אליך."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "זוהי כתובת מסרים מידיים שגויה."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "אין קוד אישור."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "זהו לא זיהוי ה-Jabber שלך."
 
@@ -1371,15 +1272,19 @@ msgstr ""
 msgid "Invites have been disabled."
 msgstr ""
 
-#: actions/invite.php:41
+#: actions/invite.php:72
 #, php-format
-msgid "You must be logged in to invite other users to use %s."
+msgid "Invalid email address: %s"
 msgstr ""
 
 #: actions/invite.php:110
 msgid "Invitation(s) sent"
 msgstr ""
 
+#: actions/invite.php:112
+msgid "Invite new users"
+msgstr ""
+
 #. TRANS: Whois output.
 #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL.
 #: actions/invite.php:131 actions/invite.php:139 lib/command.php:430
@@ -1407,6 +1312,10 @@ msgid ""
 "Use this form to invite your friends and colleagues to use this service."
 msgstr ""
 
+#: actions/invite.php:187
+msgid "Email addresses"
+msgstr ""
+
 #: actions/invite.php:189
 msgid "Addresses of friends to invite (one per line)"
 msgstr ""
@@ -1415,12 +1324,6 @@ msgstr ""
 msgid "Optionally add a personal message to the invitation."
 msgstr ""
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:231
 #, php-format
@@ -1504,37 +1407,12 @@ msgstr "לצרכי אבטחה, הכנס מחדש את שם המשתמש והסי
 msgid "Login with your username and password."
 msgstr "שם משתמש או סיסמה לא נכונים."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:96
-#, php-format
-msgid "%1$s is already an admin for group \"%2$s\"."
-msgstr ""
-
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/makeadmin.php:146
-#, php-format
-msgid "Can't make %1$s an admin for group %2$s."
-msgstr ""
-
-#: actions/microsummary.php:69
-msgid "No current status."
-msgstr ""
-
-#: actions/newapplication.php:52
-msgid "New Application"
+#: actions/newapplication.php:64
+msgid "You must be logged in to register an application."
 msgstr ""
 
 #: actions/newapplication.php:143
@@ -1549,6 +1427,10 @@ msgstr ""
 msgid "Could not create application."
 msgstr "שמירת הפרופיל נכשלה."
 
+#: actions/newgroup.php:53
+msgid "New group"
+msgstr ""
+
 #: actions/newgroup.php:110
 msgid "Use this form to create a new group."
 msgstr ""
@@ -1574,10 +1456,6 @@ msgid ""
 "Don't send a message to yourself; just say it to yourself quietly instead."
 msgstr ""
 
-#: actions/newmessage.php:181
-msgid "Message sent"
-msgstr ""
-
 #. TRANS: Message given have sent a direct message to another user.
 #. TRANS: %s is the name of the other user.
 #: actions/newmessage.php:185 lib/command.php:514
@@ -1606,11 +1484,6 @@ msgstr ""
 msgid "Text search"
 msgstr "חיפוש טקסט"
 
-#: actions/noticesearch.php:91
-#, php-format
-msgid "Search results for \"%1$s\" on %2$s"
-msgstr ""
-
 #: actions/noticesearch.php:121
 #, php-format
 msgid ""
@@ -1625,16 +1498,6 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
-#: actions/noticesearchrss.php:98
-#, php-format
-msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr ""
-
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
@@ -1660,6 +1523,15 @@ msgstr ""
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1686,12 +1558,6 @@ msgstr "למשתמש אין פרופיל."
 msgid "%1$s's status on %2$s"
 msgstr "הסטטוס של %1$s ב-%2$s "
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1726,14 +1592,14 @@ msgstr ""
 msgid "Show or hide profile designs."
 msgstr ""
 
-#: actions/otp.php:69
-msgid "No user ID specified."
-msgstr ""
-
 #: actions/otp.php:90
 msgid "No login token requested."
 msgstr "לא התבקש אישור!"
 
+#: actions/otp.php:104
+msgid "Login token expired."
+msgstr ""
+
 #: actions/outbox.php:58
 #, php-format
 msgid "Outbox for %1$s - page %2$d"
@@ -1798,7 +1664,7 @@ msgid "Password saved."
 msgstr "הסיסמה נשמרה."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1806,26 +1672,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -1882,6 +1728,10 @@ msgstr "תמונה"
 msgid "Backgrounds"
 msgstr ""
 
+#: actions/pathsadminpanel.php:305
+msgid "Background server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:309
 msgid "Background path"
 msgstr ""
@@ -1906,10 +1756,6 @@ msgstr ""
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -1923,16 +1769,6 @@ msgstr ""
 msgid "People search"
 msgstr "חיפוש סיסמה"
 
-#: actions/peopletag.php:68
-#, php-format
-msgid "Not a valid people tag: %s."
-msgstr ""
-
-#: actions/peopletag.php:142
-#, php-format
-msgid "Users self-tagged with %1$s - page %2$d"
-msgstr ""
-
 #: actions/postnotice.php:95
 msgid "Invalid notice content."
 msgstr "גודל לא חוקי."
@@ -1967,7 +1803,7 @@ msgstr "שם מלא"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "אתר בית"
 
@@ -1975,15 +1811,6 @@ msgstr "אתר בית"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr "הכתובת של אתר הבית שלך, בלוג, או פרופיל באתר אחר "
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "ביוגרפיה"
@@ -2054,7 +1881,7 @@ msgid "Couldn't save profile."
 msgstr "שמירת הפרופיל נכשלה."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "ההגדרות נשמרו."
 
@@ -2067,18 +1894,6 @@ msgstr ""
 msgid "Public timeline"
 msgstr "קו זמן ציבורי"
 
-#: actions/public.php:160
-msgid "Public Stream Feed (RSS 1.0)"
-msgstr ""
-
-#: actions/public.php:164
-msgid "Public Stream Feed (RSS 2.0)"
-msgstr ""
-
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2113,10 +1928,6 @@ msgid ""
 "tool."
 msgstr ""
 
-#: actions/publictagcloud.php:57
-msgid "Public tag cloud"
-msgstr ""
-
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
@@ -2396,18 +2207,10 @@ msgstr "הירשם כמנוי"
 msgid "Invalid profile URL (bad format)"
 msgstr "כתובת פרופיל לא חוקית (פורמט לא תקין)"
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
 msgstr ""
@@ -2448,29 +2251,13 @@ msgid ""
 "newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
 
-#: actions/revokerole.php:75
-msgid "You cannot revoke user roles on this site."
-msgstr ""
-
-#: actions/revokerole.php:82
-msgid "User doesn't have this role."
-msgstr ""
-
 #: actions/rsd.php:146 actions/version.php:159
 msgid "StatusNet"
 msgstr "סטטיסטיקה"
 
-#: actions/sandbox.php:65 actions/unsandbox.php:65
-msgid "You cannot sandbox users on this site."
-msgstr ""
-
-#: actions/sandbox.php:72
-msgid "User is already sandboxed."
-msgstr ""
-
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2499,14 +2286,13 @@ msgstr ""
 msgid "Save site settings"
 msgstr "הגדרות הפרופיל"
 
-#. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
-msgid "Icon"
+#: actions/showapplication.php:82
+msgid "You must be logged in to view an application."
 msgstr ""
 
-#. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
-msgid "Organization"
+#. TRANS: Form input field label for application icon.
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
+msgid "Icon"
 msgstr ""
 
 #: actions/showapplication.php:192 actions/showgroup.php:436
@@ -2519,10 +2305,18 @@ msgstr "סטטיסטיקה"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2553,21 +2347,6 @@ msgstr ""
 msgid "Are you sure you want to reset your consumer key and secret?"
 msgstr ""
 
-#: actions/showfavorites.php:79
-#, php-format
-msgid "%1$s's favorite notices, page %2$d"
-msgstr ""
-
-#: actions/showfavorites.php:171
-#, php-format
-msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr ""
-
-#: actions/showfavorites.php:178
-#, php-format
-msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr ""
-
 #: actions/showfavorites.php:206
 msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
@@ -2593,9 +2372,9 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:84
+#: actions/showgroup.php:82
 #, php-format
-msgid "%1$s group, page %2$d"
+msgid "%s group"
 msgstr ""
 
 #: actions/showgroup.php:227
@@ -2611,21 +2390,6 @@ msgstr ""
 msgid "Aliases"
 msgstr ""
 
-#: actions/showgroup.php:338
-#, php-format
-msgid "Notice feed for %s group (RSS 1.0)"
-msgstr ""
-
-#: actions/showgroup.php:344
-#, php-format
-msgid "Notice feed for %s group (RSS 2.0)"
-msgstr ""
-
-#: actions/showgroup.php:355
-#, php-format
-msgid "FOAF for %s group"
-msgstr ""
-
 #: actions/showgroup.php:398 lib/profileaction.php:117
 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
@@ -2673,25 +2437,11 @@ msgstr ""
 msgid "Message from %1$s on %2$s"
 msgstr ""
 
-#: actions/shownotice.php:90
-msgid "Notice deleted."
-msgstr ""
-
 #: actions/showstream.php:73
 #, php-format
 msgid " tagged %s"
 msgstr ""
 
-#: actions/showstream.php:79
-#, php-format
-msgid "%1$s, page %2$d"
-msgstr ""
-
-#: actions/showstream.php:122
-#, php-format
-msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
-msgstr ""
-
 #: actions/showstream.php:148
 #, php-format
 msgid "FOAF for %s"
@@ -2736,10 +2486,6 @@ msgstr ""
 msgid "You cannot silence users on this site."
 msgstr ""
 
-#: actions/silence.php:72
-msgid "User is already silenced."
-msgstr ""
-
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
 msgstr ""
@@ -2853,11 +2599,6 @@ msgstr "הגדרות הפרופיל"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr ""
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form guide in SMS settings form.
 #: actions/smssettings.php:120
 msgid "Current confirmed SMS-enabled phone number."
@@ -2930,10 +2671,14 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -2983,15 +2728,6 @@ msgstr "הכנסת מנוי חדש נכשלה."
 msgid "This action only accepts POST requests."
 msgstr ""
 
-#: actions/subscribe.php:117
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#: actions/subscribers.php:52
-#, php-format
-msgid "%1$s subscribers, page %2$d"
-msgstr ""
-
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
 msgstr "אלה האנשים המאזינים להודעות שלך."
@@ -3042,25 +2778,6 @@ msgstr ""
 msgid "SMS"
 msgstr "סמס"
 
-#: actions/tag.php:69
-#, php-format
-msgid "Notices tagged with %1$s, page %2$d"
-msgstr ""
-
-#: actions/tag.php:87
-#, php-format
-msgid "Notice feed for tag %s (RSS 1.0)"
-msgstr ""
-
-#: actions/tag.php:93
-#, php-format
-msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
-
-#: actions/tagother.php:39
-msgid "No ID argument."
-msgstr ""
-
 #: actions/tagother.php:65
 #, php-format
 msgid "Tag %s"
@@ -3139,12 +2856,12 @@ msgstr ""
 msgid "New users"
 msgstr "הודעה חדשה"
 
-#: actions/useradminpanel.php:236
-msgid "Welcome text for new users (Max 255 chars)."
+#: actions/useradminpanel.php:235
+msgid "New user welcome"
 msgstr ""
 
-#: actions/useradminpanel.php:251
-msgid "Invitations"
+#: actions/useradminpanel.php:236
+msgid "Welcome text for new users (Max 255 chars)."
 msgstr ""
 
 #: actions/useradminpanel.php:256
@@ -3159,13 +2876,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "אשר מנוי"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr ""
@@ -3195,24 +2905,10 @@ msgstr "לא התבקש אישור!"
 msgid "Subscription authorized"
 msgstr "ההרשמה אושרה"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "ההרשמה נדחתה"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3238,16 +2934,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3258,12 +2944,6 @@ msgstr ""
 msgid "Enjoy your hotdog!"
 msgstr ""
 
-#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
-#: actions/usergroups.php:66
-#, php-format
-msgid "%1$s groups, page %2$d"
-msgstr ""
-
 #: actions/usergroups.php:132
 msgid "Search for more groups"
 msgstr ""
@@ -3408,13 +3088,13 @@ msgid "Problem saving notice."
 msgstr "בעיה בשמירת ההודעה."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr ""
@@ -3434,7 +3114,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3485,6 +3165,11 @@ msgstr "שמירת הפרופיל נכשלה."
 msgid "Change email handling"
 msgstr ""
 
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr ""
+
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
@@ -3506,25 +3191,14 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Account"
-#: lib/action.php:460
-msgctxt "TOOLTIP"
-msgid "Change your email, avatar, password, profile"
-msgstr ""
-
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "התחבר"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -3536,24 +3210,12 @@ msgctxt "TOOLTIP"
 msgid "Invite friends and colleagues to join you on %s"
 msgstr ""
 
-#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
-#: lib/action.php:481
-msgctxt "MENU"
-msgid "Invite"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Logout"
 #: lib/action.php:487
 msgctxt "TOOLTIP"
 msgid "Logout from the site"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
@@ -3571,11 +3233,6 @@ msgstr ""
 msgid "Local views"
 msgstr ""
 
-#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
-#: lib/action.php:778
-msgid "Secondary site navigation"
-msgstr ""
-
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
@@ -3620,22 +3277,17 @@ msgstr ""
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** הוא שרות ביקרובלוג."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3648,245 +3300,254 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr ""
 
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
-msgid "After"
-msgstr ""
-
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
-msgid "Before"
-msgstr ""
-
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
-msgctxt "MENU"
-msgid "Site"
-msgstr ""
-
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:345
+msgid "Design configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "אין קוד אישור."
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "מתשמש"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "אין קוד אישור."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "אין קוד אישור."
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
-#, php-format
-msgid "Describe your application in %d characters"
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
-msgid "Describe your application"
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
-msgid "URL of the homepage of this application"
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
-msgid "Organization responsible for this application"
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
-msgid "URL for the homepage of the organization"
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "בטל"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "שיחזור"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr ""
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
 msgstr ""
 
-#: lib/channel.php:229 lib/mailhandler.php:142
-msgid "Command complete"
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
 msgstr ""
 
-#: lib/channel.php:240
-msgid "Command failed"
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
 msgstr ""
 
-#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
-#: lib/command.php:84 lib/command.php:108
-msgid "Notice with that id does not exist."
+#: lib/channel.php:229 lib/mailhandler.php:142
+msgid "Command complete"
 msgstr ""
 
-#. TRANS: Message given requesting a profile for a non-existing user.
-#. TRANS: %s is the nickname of the user for which the profile could not be found.
-#: lib/command.php:130
-#, php-format
-msgid "Could not find a user with nickname %s."
+#: lib/channel.php:240
+msgid "Command failed"
 msgstr ""
 
 #. TRANS: Message given getting a non-existing user.
@@ -3937,6 +3598,13 @@ msgstr ""
 msgid "%1$s joined group %2$s."
 msgstr ""
 
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the bio information of the queried user.
 #: lib/command.php:446
 #, php-format
@@ -3958,13 +3626,6 @@ msgstr ""
 msgid "Message too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
 
-#. TRANS: Message given having repeated a notice from another user.
-#. TRANS: %s is the name of the user for which the notice was repeated.
-#: lib/command.php:554
-#, php-format
-msgid "Notice from %s repeated."
-msgstr ""
-
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
@@ -3982,9 +3643,11 @@ msgstr ""
 msgid "Specify the name of the user to subscribe to."
 msgstr ""
 
-#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
-#: lib/command.php:664
-msgid "Can't subscribe to OMB profiles by command."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
 msgstr ""
 
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
@@ -3993,6 +3656,13 @@ msgstr ""
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4021,8 +3691,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4031,7 +3708,7 @@ msgstr[0] "לא שלחנו אלינו את הפרופיל הזה"
 msgstr[1] "לא שלחנו אלינו את הפרופיל הזה"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4040,7 +3717,7 @@ msgstr[0] "הרשמה מרוחקת"
 msgstr[1] "הרשמה מרוחקת"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4048,6 +3725,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "לא שלחנו אלינו את הפרופיל הזה"
 msgstr[1] "לא שלחנו אלינו את הפרופיל הזה"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4114,6 +3792,10 @@ msgstr ""
 msgid "Updates by SMS"
 msgstr ""
 
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr ""
+
 #: lib/dberroraction.php:60
 msgid "Database error"
 msgstr ""
@@ -4175,45 +3857,80 @@ msgstr ""
 msgid "Grant this user the \"%s\" role"
 msgstr ""
 
-#: lib/groupeditform.php:168
-msgid "Describe the group or topic"
+#: lib/groupeditform.php:187
+#, php-format
+msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
 msgstr ""
 
-#: lib/groupeditform.php:170
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
 #, php-format
-msgid "Describe the group or topic in %d characters"
+msgctxt "TOOLTIP"
+msgid "%s group"
 msgstr ""
 
-#: lib/groupeditform.php:187
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
 #, php-format
-msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgctxt "TOOLTIP"
+msgid "%s group members"
 msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
 msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "היכנס"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4243,7 +3960,8 @@ msgstr "פורמט התמונה אינו נתמך."
 msgid "Partial upload."
 msgstr "העלאה חלקית."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "שגיאת מערכת בהעלאת הקובץ."
 
@@ -4273,10 +3991,6 @@ msgstr ""
 msgid "Unknown inbox source %d."
 msgstr ""
 
-#: lib/logingroupnav.php:86
-msgid "Sign up for a new account"
-msgstr ""
-
 #. TRANS: Body for address confirmation email.
 #: lib/mail.php:177
 #, php-format
@@ -4308,22 +4022,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Subject of notification mail for new posting email address
 #: lib/mail.php:304
 #, php-format
@@ -4399,12 +4097,6 @@ msgid ""
 "%5$s\n"
 msgstr ""
 
-#. TRANS: Subject for favorite notification email
-#: lib/mail.php:589
-#, php-format
-msgid "%s (@%s) added your notice as a favorite"
-msgstr ""
-
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
 #, php-format
@@ -4487,56 +4179,69 @@ msgstr ""
 msgid "Sorry, no incoming email allowed."
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
-msgid "Could not determine file's MIME type."
-msgstr ""
-
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -4547,11 +4252,6 @@ msgstr ""
 msgid "To"
 msgstr "אל"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
@@ -4565,21 +4265,12 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
 
-#. TRANS: Used in coordinates as abbreviation of north
-#: lib/noticelist.php:436
-msgid "N"
-msgstr ""
-
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
@@ -4616,27 +4307,36 @@ msgstr ""
 msgid "Reply"
 msgstr "תגובות"
 
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr ""
+
 #: lib/nudgeform.php:128
 msgid "Nudge"
 msgstr ""
 
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr ""
+
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "שגיאה בהכנסת הפרופיל"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "שגיאה בהכנסת התמונה."
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "שגיאה בעדכון פרופיל מרוחק"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "שגיאה בהכנסת פרופיל מרוחק"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "הכנסת מנוי חדש נכשלה."
 
@@ -4669,7 +4369,8 @@ msgstr ""
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -4710,19 +4411,14 @@ msgstr ""
 msgid "Recent tags"
 msgstr ""
 
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
+#: lib/publicgroupnav.php:88
+msgid "Featured"
 msgstr ""
 
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr "כן"
 
-#: lib/revokeroleform.php:91
-#, php-format
-msgid "Revoke the \"%s\" role from this user"
-msgstr ""
-
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
 msgstr ""
@@ -4731,13 +4427,16 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "חיפוש"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -4763,10 +4462,6 @@ msgstr ""
 msgid "More..."
 msgstr ""
 
-#: lib/silenceform.php:67
-msgid "Silence"
-msgstr ""
-
 #: lib/subgroupnav.php:99
 #, php-format
 msgid "Groups %s is a member of"
@@ -4791,10 +4486,6 @@ msgstr ""
 msgid "People Tagcloud as tagged"
 msgstr ""
 
-#: lib/tagcloudsection.php:56
-msgid "None"
-msgstr ""
-
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
 msgstr ""
@@ -4847,6 +4538,10 @@ msgstr ""
 msgid "Unsubscribe"
 msgstr "בטל מנוי"
 
+#: lib/userprofile.php:234 lib/userprofile.php:248
+msgid "User actions"
+msgstr ""
+
 #: lib/userprofile.php:237
 msgid "User deletion in progress..."
 msgstr ""
@@ -4874,56 +4569,64 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "לפני מספר שניות"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "לפני כדקה"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "לפני כ-%d דקות"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "לפני כשעה"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "לפני כ-%d שעות"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "לפני כיום"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "לפני כ-%d ימים"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "לפני כחודש"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "לפני כ-%d חודשים"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "לפני כשנה"
 
index 0e6a36ac62c850b8c5004b35495559abe0e8926d..05bd870d6304bcd2e39efe44bbdaf71b99338a1e 100644 (file)
@@ -1,30 +1,32 @@
-# Translation of StatusNet to Upper Sorbian
+# Translation of StatusNet - Core to Upper Sorbian (Hornjoserbsce)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Michawiki
+# Author: Brion
+# Author: McDutchie
+# Author: Michawiki
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:27+0000\n"
-"Language-Team: Dutch\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:57+0000\n"
+"Language-Team: Upper Sorbian <http://translatewiki.net/wiki/Portal:hsb>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: hsb\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : (n%100==3 || "
 "n%100==4) ? 2 : 3)\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Přistup"
 
@@ -77,10 +79,10 @@ msgstr "Přistupne nastajenja składować"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Składować"
@@ -93,15 +95,15 @@ msgstr "Strona njeeksistuje."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -193,16 +195,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Aktualizacije wot %1$s a přećelow na %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -217,47 +219,49 @@ msgstr "Aktualizacije wot %1$s a přećelow na %2$s!"
 msgid "API method not found."
 msgstr "API-metoda njenamakana."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Tuta metoda wužaduje sej POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Wužiwar njeje so dał aktualizować."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Wužiwar nima profil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Profil njeje so składować dał."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -267,20 +271,20 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Design njeda so aktualizować."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Njemóžeš so samoho blokować."
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blokowanje wužiwarja je so njeporadźiło."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Wotblokowanje wužiwarja je so njeporadźiło."
 
@@ -304,52 +308,52 @@ msgstr "Direktne powěsće do %s"
 msgid "All the direct messages sent to %s"
 msgstr "Wšě do %s pósłane direktne powěsće"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Žadyn powěsćowy tekst!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "To je předołho. Maksimalna powěsćowa wulkosć je %d znamješkow."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Přijimowar njenamakany."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Njeje móžno, direktne powěsće wužiwarjam pósłać, kotřiž twoji přećeljo "
 "njejsu."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Status z tym ID njenamakany."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Tutón status je hižo faworit."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Faworit njeda so wutworić."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Tón status faworit njeje."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Faworit njeda so zhašeć."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Njebě móžno wužiwarja słědować: profil njenamakany."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Njemóžeš slědowanje swójskich aktiwitow blokować."
 
@@ -365,102 +369,102 @@ msgstr "Žórłowy wužiwar njeda so postajić."
 msgid "Could not find target user."
 msgstr "Cilowy wužiwar njeda so namakać."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 "Přimjeno smě jenož małe pismiki a cyfry wobsahować. Mjezery njejsu dowolene."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Přimjeno so hižo wužiwa. Spytaj druhe."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Žane płaćiwe přimjeno."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Startowa strona njeje płaćiwy URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Dospołne mjeno je předołho (maks. 255 znamješkow)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Wopisanje je předołho (maks. %d znamješkow)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Městno je předołho (maks. 255 znamješkow)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Přewjele aliasow! Maksimum: %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Njepłaćiwy alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" so hižo wužiwa. Spytaj druhi."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias njemóže samsny kaž přimjeno być."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Skupina njenamakana."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Sy hižo čłon teje skupiny."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Administratora tuteje skupiny je će zablokował."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Njebě móžno wužiwarja %1$s skupinje %2%s přidać."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Njejsy čłon tuteje skupiny."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -490,7 +494,7 @@ msgstr "%s skupinow"
 msgid "groups on %s"
 msgstr "skupiny na %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Nahraće je so njeporadźiło."
 
@@ -504,9 +508,9 @@ msgstr "Njepłaćiwy token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -549,8 +553,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -611,18 +615,18 @@ msgstr "Tuta metoda wužaduje sej POST abo DELETE."
 msgid "You may not delete another user's status."
 msgstr "Njemóžeš status druheho wužiwarja zničić."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Zdźělenka njeeksistuje."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Njemóžno twoju zdźělenku wospjetować."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Tuta zdźělenka bu hižo wospjetowana."
 
@@ -634,21 +638,21 @@ msgstr "Status zničeny."
 msgid "No status with that ID found."
 msgstr "Žadyn status z tym ID namakany."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Njenamakany."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -827,7 +831,9 @@ msgid "Yes"
 msgstr "Haj"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Tutoho wužiwarja blokować"
 
@@ -861,11 +867,13 @@ msgstr "%1$s zablokowa profile, stronu %2$d"
 msgid "Unblock user from group"
 msgstr "Wužiwarja za skupinu wotblokować"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Wotblokować"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Tutoho wužiwarja wotblokować"
 
@@ -904,9 +912,9 @@ msgstr "Tuta adresa bu hižo wobkrućena."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -914,7 +922,7 @@ msgstr "Wužiwar njeda aktualizować."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "E-mejlowe wobkrućenje njeda so zhašeć."
@@ -950,9 +958,10 @@ msgstr "Aplikaciska njenamakana."
 msgid "You are not the owner of this application."
 msgstr "Njejsy wobsedźer tuteje aplikacije."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -983,7 +992,7 @@ msgstr "Tutu aplikaciju zničić"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Njepřizjewjeny."
@@ -1042,7 +1051,6 @@ msgstr "Tutoho wužiwarja wušmórnyć"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Design"
 
@@ -1154,13 +1162,13 @@ msgstr "Standardne designy wobnowić"
 msgid "Reset back to default"
 msgstr "Na standard wróćo stajić"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Składować"
@@ -1308,7 +1316,7 @@ msgstr "Aktualna wobkrućena e-mejlowa adresa."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1324,22 +1332,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Přetorhnyć"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-mejlowa adresa, kaž na př. \"WužiwarskeMjeno@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1347,144 +1359,144 @@ msgstr "Přidać"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Dochadźaca e-mejl"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nowy"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-mejlowe nastajenja"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "E-mejl pósłać, hdyž něchtó priwatnu powěsć sćele."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Chcu zdźělenki přez e-mejl pósłać."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "MicroID za moju e-mejlowu adresu publikować"
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "E-mejlowe nastajenja składowane."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Žana e-mejlowa adresa."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Tuta e-mejlowa adresa njehodźi so normalizować"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Njepłaćiwa e-mejlowa adresa."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "To je hižo twoja e-mejlowa adresa."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Ta e-mejlowa adresa hižo słuša k druhemu wužiwarjej."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Wobkrućenski kod njehodźi so zasunyć."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "To je wopačna e-mejlowa adresa."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "E-mejlowe wobkrućenje přetorhnjene."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "To njeje twoja e-mejlowa adresa."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "E-mejlowa adresa bu wotstronjena."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Žana adresa za dochadźace e-mejle."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Datowa sadźba wužiwarja njeda so aktualizować."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Adresa za dochadźaće e-mejle wotstronjena."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nowa adresa za dochadźace e-mejle přidata."
 
@@ -1558,6 +1570,10 @@ msgstr "Žane nahrate přiwěški."
 msgid "Not expecting this response!"
 msgstr "Njewočakowana wotmołwa!"
 
+#: actions/finishremotesubscribe.php:80
+msgid "User being listened to does not exist."
+msgstr ""
+
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Móžeš lokalny abonement wužiwać!"
@@ -1578,7 +1594,7 @@ msgstr ""
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Zmylk při aktualizaciji zdaleneho profila."
 
@@ -1635,7 +1651,7 @@ msgstr "Wužiwar je hižo za skupinu zablokowany."
 msgid "User is not a member of group."
 msgstr "Wužiwar njeje čłon skupiny."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Wužiwarja za skupinu blokować"
 
@@ -1712,39 +1728,49 @@ msgstr "Logo zaktualizowane."
 msgid "Failed updating logo."
 msgstr "Aktualizowanje loga je so njeporadźiło."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s skupinskich čłonow"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s skupinskich čłonow, strona %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Lisćina wužiwarjow w tutej skupinje."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blokować"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Wužiwarja k administratorej skupiny činić"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Za administratora pomjenować"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Tutoho wužiwarja k administratorej činić"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1866,7 +1892,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1874,48 +1903,48 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM-nastajenja"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Nastajenja składowane."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Žadyn ID Jabber."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Njepłaćiwy ID Jabber"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "To je hižo twój ID Jabber."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1923,28 +1952,28 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "to je wopačna IM-adresa."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "IM-wobkrućenje njeda so zhašeć."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM-wobkrućenje přetorhnjene."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "To njeje twój ID Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "IM-adresa bu wotstronjena."
 
@@ -2353,8 +2382,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Njeje podpěrany datowy format."
 
@@ -2478,7 +2507,7 @@ msgid "Password saved."
 msgstr "Hesło składowane."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Šćežki"
 
@@ -2678,7 +2707,7 @@ msgstr "Dospołne mjeno"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Startowa strona"
 
@@ -2768,7 +2797,7 @@ msgid "Couldn't save profile."
 msgstr "Profil njeda so składować."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Nastajenja składowane."
 
@@ -3184,7 +3213,7 @@ msgstr "StatusNet"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Posedźenja"
 
@@ -3222,24 +3251,24 @@ msgid "Application profile"
 msgstr "Aplikaciski profil"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Symbol"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Mjeno"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organizacija"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Wopisanje"
 
@@ -3325,7 +3354,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "skupina %s"
@@ -3352,7 +3381,7 @@ msgstr "Aliasy"
 msgid "Group actions"
 msgstr "Skupinske akcije"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Čłonojo"
 
@@ -3717,7 +3746,7 @@ msgstr "Žadyn kod zapodaty"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4230,18 +4259,18 @@ msgid ""
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4404,7 +4433,8 @@ msgid "Change site configuration"
 msgstr "Sydłowu konfiguraciju změnić"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrator"
@@ -4524,7 +4554,10 @@ msgid "StatusNet software license"
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -4532,13 +4565,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4548,38 +4584,39 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Po"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Před"
 
@@ -4588,184 +4625,219 @@ msgstr "Před"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Njemóžeš tute sydło změnić."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Změny na tutym woknje njejsu dowolene."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() njeimplementowany."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() njeimplementowany."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Zakładna sydłowa konfiguracija"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Sydło"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Design"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Wužiwarska konfiguracija"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Wužiwar"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Přistupna konfiguracija"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Konfiguracija posedźenjow"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Sydłowu zdźělenku wobdźěłać"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Konfiguracija wobrazowkowych fotow"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Aplikaciju wobdźěłać"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Symbol za tutu aplikaciju"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Wopisaj swoju aplikaciju z %d znamješkami"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Wopisaj swoju aplikaciju"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL žórła"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organizacija, kotraž je za tutu aplikaciju zamołwita"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL za startowu stronu organizacije"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Wobhladowak"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Jenož čitajomny"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Popisujomny"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Přetorhnyć"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "popisujomny"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "jenož čitajomny"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Wotwołać"
@@ -4785,7 +4857,8 @@ msgstr "Awtor"
 msgid "Provider"
 msgstr "Poskićowar"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
@@ -4797,6 +4870,11 @@ msgstr "Změnjenje hesła je so njeporadźiło"
 msgid "Password changing is not allowed"
 msgstr "Změnjenje hesła njeje dowolene"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokować"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Přikazowe wuslědki"
@@ -4820,6 +4898,20 @@ msgstr "Zdźělenka z tym ID njeeksistuje."
 msgid "User has no last notice."
 msgstr "Wužiwar nima poslednju powěsć."
 
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr ""
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4849,6 +4941,20 @@ msgid ""
 "Notices: %3$s"
 msgstr ""
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4909,6 +5015,13 @@ msgstr "Powěsć wot %s wospjetowana."
 msgid "Error repeating notice."
 msgstr "Zmylk při wospjetowanju zdźělenki"
 
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr ""
+
 #. TRANS: Text shown having sent a reply to a notice successfully.
 #. TRANS: %s is the nickname of the user of the notice the reply was sent to.
 #: lib/command.php:603
@@ -4931,12 +5044,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "OMB-profile njedadźa so přez přikaz abonować."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4975,13 +5102,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "Njejsy nikoho abonował."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4998,7 +5132,7 @@ msgid "No one is subscribed to you."
 msgstr "Nichtó njeje će abonował."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5015,7 +5149,7 @@ msgid "You are not a member of any groups."
 msgstr "Njejsy čłon w žanej skupinje."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5025,6 +5159,7 @@ msgstr[1] "Sy čłon tuteju skupinow:"
 msgstr[2] "Sy čłon tutych skupinow:"
 msgstr[3] "Sy čłon tutych skupinow:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5188,30 +5323,75 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Skupina"
+msgstr ""
 
-#: lib/groupnav.php:101
-msgid "Blocked"
-msgstr "Blokowany"
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Kajkosće skupiny %s wobdźěłać"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -5243,7 +5423,8 @@ msgstr "Tuta dataja je přewulka. Maksimalna datajowa wulkosć je %s."
 msgid "Partial upload."
 msgstr "Dźělne nahraće."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Systemowy zmylk při nahrawanju dataje."
 
@@ -5534,59 +5715,78 @@ msgstr "Wodaj, dochadźaće e-mejle njejsu dowolene."
 msgid "Unsupported message type: %s"
 msgstr "Njepodpěrany powěsćowy typ: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Při składowanju twojeje dataje je zmylk w datowej bance wustupił. Prošu "
 "spytaj hišće raz."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Nahrata dataja bu jenož zdźěla nahrata."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Temporerny rjadowka faluje."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Dataju njeda so na tačel pisać."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Datajowe nahraće přez rozšěrjenje zastajene."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Dataja njeda so do ciloweho zapisa přesunyć."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "MIME-typ dataje njeda so zwěsćić."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Spytaj druhi format %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s njeje podpěrany datajowy typ na tutym serwerje."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -5694,26 +5894,23 @@ msgid "Nudge"
 msgstr ""
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Zmylk při zasunjenju noweho profila"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Zmylk při zasunjenju awatara"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Zmylk při aktualizowanju zdaleneho profila"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Zmylk při zasunjenju zdaleneho profila"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Dwójna zdźělenka"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Nowy abonement njeda so zasunyć."
 
@@ -5745,12 +5942,8 @@ msgstr "Wuchadny póst"
 msgid "Your sent messages"
 msgstr "Twoje pósłane powěsće"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Njeznaty"
 
@@ -5832,19 +6025,24 @@ msgstr "Rólu \"%s\" tutoho wužiwarja wotwołać"
 msgid "No single user defined for single-user mode."
 msgstr "Žadyn jednotliwy wužiwar za modus jednotliweho wužiwarja definowany."
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Pytanske sydło"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Klučowe hesła"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Pytać"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Pytanska pomoc"
 
@@ -6018,56 +6216,72 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "před něšto sekundami"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "před něhdźe jednej mjeńšinu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "před %d mjeńšinami"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "před něhdźe jednej hodźinu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "před něhdźe %d hodźinami"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "před něhdźe jednym dnjom"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "před něhdźe %d dnjemi"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "před něhdźe jednym měsacom"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "před něhdźe %d měsacami"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "před něhdźe jednym lětom"
 
index 3e831d160da88f88ec520e22f319653d12a54934..aa3e0c055aceeeaf6d07a2ba3a2c03e233011ef3 100644 (file)
@@ -1,27 +1,29 @@
-# Translation of StatusNet to Interlingua
+# Translation of StatusNet - Core to Interlingua (Interlingua)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: McDutchie
+# Author: McDutchie
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:33+0000\n"
-"Language-Team: Interlingua\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:07:58+0000\n"
+"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ia\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Accesso"
 
@@ -74,10 +76,10 @@ msgstr "Salveguardar configurationes de accesso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Salveguardar"
@@ -90,15 +92,15 @@ msgstr "Pagina non existe."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -198,16 +200,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Actualisationes de %1$s e su amicos in %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -222,21 +224,23 @@ msgstr "Actualisationes de %1$s e su amicos in %2$s!"
 msgid "API method not found."
 msgstr "Methodo API non trovate."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Iste methodo require un POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -244,27 +248,27 @@ msgstr ""
 "Tu debe specificar un parametro nominate 'device' con un del valores: sms, "
 "im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Non poteva actualisar le usator."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Le usator non ha un profilo."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Non poteva salveguardar le profilo."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -276,30 +280,30 @@ msgstr ""
 "Le servitor non ha potite tractar tante datos POST (%s bytes) a causa de su "
 "configuration actual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Impossibile salveguardar le configurationes del apparentia."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Non poteva actualisar le apparentia."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Tu non pote blocar te mesme!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Le blocada del usator ha fallite."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Le disblocada del usator ha fallite."
 
@@ -323,59 +327,59 @@ msgstr "Messages directe a %s"
 msgid "All the direct messages sent to %s"
 msgstr "Tote le messages directe inviate a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Message sin texto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Isto es troppo longe. Le maximo es %d characteres."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Usator destinatario non trovate."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Non pote inviar messages directe a usatores que non es tu amicos."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Nulle stato trovate con iste ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Iste stato es ja favorite."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Non poteva crear le favorite."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Iste stato non es favorite."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Non poteva deler le favorite."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Non poteva sequer le usator: profilo non trovate."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Non poteva sequer le usator: %s es ja in tu lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Non poteva cessar de sequer le usator: Usator non trovate."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Tu non pote cessar de sequer te mesme."
 
@@ -391,101 +395,101 @@ msgstr "Non poteva determinar le usator de origine."
 msgid "Could not find target user."
 msgstr "Non poteva trovar le usator de destination."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Le pseudonymo pote solmente haber minusculas e numeros, sin spatios."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Pseudonymo ja in uso. Proba un altere."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Non un pseudonymo valide."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Le pagina personal non es un URL valide."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Le nomine complete es troppo longe (max. 255 characteres)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Description es troppo longe (max %d charachteres)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Loco es troppo longe (max. 255 characteres)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Troppo de aliases! Maximo: %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Alias invalide: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Le alias \"%s\" es ja in uso. Proba un altere."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Le alias non pote esser identic al pseudonymo."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Gruppo non trovate."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Tu es ja membro de iste gruppo."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Le administrator te ha blocate de iste gruppo."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Non poteva inscriber le usator %1$s in le gruppo %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Tu non es membro de iste gruppo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -515,7 +519,7 @@ msgstr "Gruppos de %s"
 msgid "groups on %s"
 msgstr "gruppos in %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Le incargamento ha fallite."
 
@@ -529,9 +533,9 @@ msgstr "Indicio invalide."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -579,8 +583,8 @@ msgstr "Le indicio de requesta %s ha essite refusate e revocate."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -644,18 +648,18 @@ msgstr "Iste methodo require un commando POST o DELETE."
 msgid "You may not delete another user's status."
 msgstr "Tu non pote deler le stato de un altere usator."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Nota non trovate."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Non pote repeter tu proprie nota."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Iste nota ha ja essite repetite."
 
@@ -667,22 +671,22 @@ msgstr "Stato delite."
 msgid "No status with that ID found."
 msgstr "Nulle stato trovate con iste ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Le cliente debe fornir un parametro 'status' con un valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr ""
 "Isto es troppo longe. Le longitude maximal del notas es %d characteres."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Non trovate."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -886,7 +890,9 @@ msgid "Yes"
 msgstr "Si"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blocar iste usator"
 
@@ -928,11 +934,13 @@ msgstr "Un lista del usatores excludite del membrato de iste gruppo."
 msgid "Unblock user from group"
 msgstr "Disblocar le usator del gruppo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Disblocar"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Disblocar iste usator"
 
@@ -971,9 +979,9 @@ msgstr "Iste adresse ha ja essite confirmate."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -981,7 +989,7 @@ msgstr "Non poteva actualisar usator."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Non poteva deler confirmation de e-mail."
@@ -1017,9 +1025,10 @@ msgstr "Application non trovate."
 msgid "You are not the owner of this application."
 msgstr "Tu non es le proprietario de iste application."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Il habeva un problema con tu indicio de session."
 
@@ -1053,7 +1062,7 @@ msgstr "Deler iste application"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Tu non ha aperite un session."
@@ -1116,7 +1125,6 @@ msgstr "Deler iste usator"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Apparentia"
 
@@ -1239,13 +1247,13 @@ msgstr "Restaurar apparentias predefinite"
 msgid "Reset back to default"
 msgstr "Revenir al predefinitiones"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Salveguardar"
@@ -1401,7 +1409,7 @@ msgstr "Adresse de e-mail actualmente confirmate."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1419,22 +1427,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancellar"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Le adresse de e-mail, como \"nomine@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1442,111 +1454,111 @@ msgstr "Adder"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "E-mail entrante"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Invia e-mail a iste adresse pro publicar nove notas."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Face un nove adresse de e-mail per le qual publicar; cancella le vetule."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nove"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferentias de e-mail"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Inviar me notificationes de nove subscriptiones per e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Inviar me e-mail quando alcuno adde mi nota al favorites."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Inviar me e-mail quando alcuno me invia un message private."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Inviar me e-mail quando alcuno me invia un \"responsa @\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permitte que amicos me pulsa e me invia e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Io vole publicar notas per e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publicar un MicroID pro mi adresse de e-mail."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Preferentias de e-mail salveguardate."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Nulle adresse de e-mail."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Non pote normalisar iste adresse de e-mail"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Adresse de e-mail invalide."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Isto es ja tu adresse de e-mail."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Iste adresse de e-mail pertine ja a un altere usator."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Non poteva inserer le codice de confirmation."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1558,50 +1570,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Nulle confirmation pendente a cancellar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Iste adresse de e-mail es erronee."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Confirmation de e-mail cancellate."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Isto non es tu adresse de e-mail."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Le adresse de e-mail ha essite removite."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Nulle adresse de e-mail entrante."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Non poteva actualisar le datos del usator."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Adresse de e-mail entrante removite."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nove adresse de e-mail entrante addite."
 
@@ -1719,7 +1731,7 @@ msgstr "Non poteva converter le indicio de requesta in un indicio de accesso."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Le servicio remote usa un version incognite del protocollo OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Error durante le actualisation del profilo remote."
 
@@ -1776,7 +1788,7 @@ msgstr "Le usator es ja blocate del gruppo."
 msgid "User is not a member of group."
 msgstr "Le usator non es membro del gruppo."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Blocar usator del gruppo"
 
@@ -1858,39 +1870,49 @@ msgstr "Logotypo actualisate."
 msgid "Failed updating logo."
 msgstr "Falleva de actualisar le logotypo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membros del gruppo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membros del gruppo %1$s, pagina %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Un lista de usatores in iste gruppo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Blocar"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Facer le usator administrator del gruppo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Facer administrator"
+msgstr "Facer admin"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Facer iste usator administrator"
+msgstr "Facer iste usator un administrator"
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2029,7 +2051,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2040,65 +2065,65 @@ msgstr ""
 "in GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferentias de messageria instantanee"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Inviar me notas per Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Publicar un nota quando mi stato de Jabber/GTalk cambia."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Inviar me responsas per Jabber/GTalk de personas al quales io non es "
 "subscribite."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publicar un MicroID pro mi adresse Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferentias confirmate."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Nulle ID de Jabber."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Non pote normalisar iste ID de Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "ID de Jabber non valide"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Isto es ja tu ID de Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Le ID de Jabber pertine ja a un altere usator."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2108,28 +2133,28 @@ msgstr ""
 "instantanee specificate. Tu debe approbar que %s invia messages a te."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Iste adresse de messageria instantanee es erronee."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Non poteva deler confirmation de messageria instantanee."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Confirmation de messageria instantanee cancellate."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Isto non es tu ID de Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Le adresse de messageria instantanee ha essite removite."
 
@@ -2604,8 +2629,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Solmente le URLs %s es permittite super HTTP simple."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Formato de datos non supportate."
 
@@ -2746,7 +2771,7 @@ msgid "Password saved."
 msgstr "Contrasigno salveguardate."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Camminos"
 
@@ -2959,7 +2984,7 @@ msgstr "Nomine complete"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Pagina personal"
 
@@ -3065,7 +3090,7 @@ msgid "Couldn't save tags."
 msgstr "Non poteva salveguardar etiquettas."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Preferentias confirmate."
 
@@ -3603,7 +3628,7 @@ msgstr "Usator es ja in cassa de sablo."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessiones"
 
@@ -3641,24 +3666,24 @@ msgid "Application profile"
 msgstr "Profilo del application"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icone"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nomine"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisation"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Description"
 
@@ -3773,7 +3798,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Isto es un modo de condivider lo que te place."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Gruppo %s"
@@ -3825,7 +3850,7 @@ msgstr "Syndication de notas pro le gruppo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Amico de un amico pro le gruppo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membros"
 
@@ -4279,7 +4304,7 @@ msgstr "Nulle codice entrate"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Instantaneos"
 
@@ -4969,18 +4994,18 @@ msgid "Problem saving notice."
 msgstr "Problema salveguardar nota."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Mal typo fornite a saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problema salveguardar le cassa de entrata del gruppo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5012,7 +5037,7 @@ msgid "Unable to save tag."
 msgstr "Impossibile salveguardar le etiquetta."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Tu ha essite blocate del subscription."
 
@@ -5160,7 +5185,8 @@ msgid "Change site configuration"
 msgstr "Modificar le configuration del sito"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Admin"
@@ -5237,7 +5263,7 @@ msgstr "Cercar"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Aviso del sito"
 
@@ -5301,7 +5327,10 @@ msgid "StatusNet software license"
 msgstr "Licentia del software StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5311,13 +5340,16 @@ msgstr ""
 "%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** es un servicio de microblog."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5329,50 +5361,51 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licentia del contento del sito"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Le contento e datos de %1$s es private e confidential."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "Contento e datos sub copyright de %1$s. Tote le derectos reservate."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Contento e datos sub copyright del contributores. Tote le derectos reservate."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Tote le contento e datos de %1$s es disponibile sub le licentia %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Pagination"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Post"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Ante"
 
@@ -5383,209 +5416,244 @@ msgstr ""
 "Expectava le elemento-radice de un syndication, ma recipeva un documento XML "
 "integre."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Non pote ancora tractar contento remote."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Non pote ancora tractar contento XML incastrate."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Non pote ancora tractar contento Base64 incastrate."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Tu non pote facer modificationes in iste sito."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Le modification de iste pannello non es permittite."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() non implementate."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() non implementate."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Impossibile deler configuration de apparentia."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuration basic del sito"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Sito"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuration del apparentia"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Apparentia"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuration del usator"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usator"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuration del accesso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuration del camminos"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuration del sessiones"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Modificar aviso del sito"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuration del instantaneos"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "Le ressource de API require accesso pro lectura e scriptura, ma tu ha "
 "solmente accesso pro lectura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Nulle application pro iste clave de consumitor."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Mal indicio de accesso."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "Nulle usator pro iste indicio."
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "Non poteva authenticar te."
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr "Tentava revocar un indicio non cognoscite."
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr "Falleva de deler le indicio revocate."
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Modificar application"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icone pro iste application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Describe tu application in %d characteres"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Describe tu application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL del pagina initial de iste application"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL de origine"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organisation responsabile de iste application"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL del pagina initial del organisation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL verso le qual rediriger post authentication"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navigator"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Scriptorio"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Typo de application, navigator o scriptorio"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Lectura solmente"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lectura e scriptura"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Accesso predefinite pro iste application: lectura solmente, o lectura e "
 "scriptura"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancellar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lectura-scriptura"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "lectura solmente"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Accesso \"%2$s\" approbate le %1$s."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revocar"
@@ -5605,11 +5673,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Providitor"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Notas ubi iste annexo appare"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etiquettas pro iste annexo"
 
@@ -5621,6 +5691,11 @@ msgstr "Cambio del contrasigno fallite"
 msgid "Password changing is not allowed"
 msgstr "Cambio del contrasigno non permittite"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blocar"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultatos del commando"
@@ -5871,7 +5946,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Tu non es subscribite a alcuno."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5886,7 +5961,7 @@ msgid "No one is subscribed to you."
 msgstr "Necuno es subscribite a te."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5901,7 +5976,7 @@ msgid "You are not a member of any groups."
 msgstr "Tu non es membro de alcun gruppo."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5909,6 +5984,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Tu es membro de iste gruppo:"
 msgstr[1] "Tu es membro de iste gruppos:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6130,35 +6206,75 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Pseudonymos additional pro le gruppo, separate per commas o spatios, max %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Gruppo"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Gruppo %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Membros"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Membros del gruppo %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr "Blocate"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
 msgstr "%s usatores blocate"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr "Modificar proprietates del gruppo %s"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logotypo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr "Adder o modificar logotypo de %s"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr "Adder o modificar apparentia de %s"
 
@@ -6193,7 +6309,8 @@ msgstr "Iste file es troppo grande. Le dimension maximal es %s."
 msgid "Partial upload."
 msgstr "Incargamento partial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Error de systema durante le incargamento del file."
 
@@ -6595,17 +6712,20 @@ msgstr "Pardono, le reception de e-mail non es permittite."
 msgid "Unsupported message type: %s"
 msgstr "Typo de message non supportate: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Un error de base de datos occurreva durante le salveguarda de tu file. Per "
 "favor reproba."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Le file incargate excede le directiva upload_max_filesize in php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6613,43 +6733,61 @@ msgstr ""
 "Le file incargate excede le directiva MAX_FILE_SIZE specificate in le "
 "formulario HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Le file incargate ha solmente essite incargate partialmente."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Manca un dossier temporari."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Falleva de scriber le file in disco."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Incargamento de file stoppate per un extension."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "File excede quota del usator."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "File non poteva esser displaciate in le directorio de destination."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Non poteva determinar le typo MIME del file."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "  Tenta usar un altere formato %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"\"%1$s\" non es un typo de file supportate in iste servitor. Tenta usar un "
+"altere formato de %2$s."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s non es un typo de file supportate in iste servitor."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "\"%s\" non es un typo de file supportate in iste servitor."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6767,26 +6905,23 @@ msgid "Send a nudge to this user"
 msgstr "Inviar un pulsata a iste usator"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Error durante le insertion del nove profilo"
+msgid "Error inserting new profile."
+msgstr "Error durante le insertion del nove profilo."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Error durante le insertion del avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Error in actualisar le profilo remote"
+msgid "Error inserting avatar."
+msgstr "Error durante le insertion del avatar."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Error durante le insertion del profilo remote"
+msgid "Error inserting remote profile."
+msgstr "Error durante le insertion del profilo remote."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicar nota"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Nota duplicate."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Non poteva inserer nove subscription."
 
@@ -6823,7 +6958,8 @@ msgstr "Tu messages inviate"
 msgid "Tags in %s's notices"
 msgstr "Etiquettas in le notas de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Incognite"
 
@@ -6917,19 +7053,24 @@ msgstr "Cassa de sablo"
 msgid "Sandbox this user"
 msgstr "Mitter iste usator in le cassa de sablo"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Cercar in sito"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Parola(s)-clave"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr "Cercar"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Adjuta super le recerca"
 
@@ -7045,6 +7186,7 @@ msgstr ""
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"Le thema contine nomines de extension de file insecur; pote esser insecur."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7131,56 +7273,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "alcun secundas retro"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "circa un minuta retro"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "circa %d minutas retro"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "un minuta"
+msgstr[1] "%d minutas"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "circa un hora retro"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "circa %d horas retro"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "un hora"
+msgstr[1] "%d horas"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "circa un die retro"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "circa %d dies retro"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "un die"
+msgstr[1] "%d dies"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "circa un mense retro"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "circa %d menses retro"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "un mense"
+msgstr[1] "%d menses"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "circa un anno retro"
 
index 2c8ab1c6b73944caa169282af57fdc8f7428af91..d9819ca594facdc82b264b73feb73cab03454331 100644 (file)
@@ -1,25 +1,25 @@
-# Translation of StatusNet to Icelandic
+# Translation of StatusNet - Core to Icelandic (Íslenska)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: McDutchie
+# Author: McDutchie
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:35+0000\n"
-"Language-Team: Icelandic\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:00+0000\n"
+"Language-Team: Icelandic <http://translatewiki.net/wiki/Portal:is>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: is\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=2; plural=(n % 100 != 1 && n % 100 != 21 && n % 100 !"
-"= 31 && n % 100 != 41 && n % 100 != 51 && n % 100 != 61 && n % 100 != 71 && "
-"n % 100 != 81 && n % 100 != 91);\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Checkbox instructions for admin setting "Private"
 #: actions/accessadminpanel.php:165
@@ -43,15 +43,15 @@ msgstr ""
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -94,6 +94,12 @@ msgstr ""
 msgid "Feed for friends of %s (RSS 2.0)"
 msgstr ""
 
+#. TRANS: %1$s is user nickname
+#: actions/all.php:125
+#, php-format
+msgid "Feed for friends of %s (Atom)"
+msgstr ""
+
 #. TRANS: %1$s is user nickname
 #: actions/all.php:138
 #, php-format
@@ -131,39 +137,41 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Færslur frá %1$s og vinum á %2$s!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Þessi aðferð krefst POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Notandi hefur enga persónulega síðu."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -173,11 +181,21 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:126
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
+#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
+#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
+#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
+msgid "Unable to save your design settings."
+msgstr ""
+
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Mistókst að loka á notanda."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Mistókst að opna fyrir notanda."
 
@@ -196,127 +214,128 @@ msgstr "Bein skilaboð til %s"
 msgid "All the direct messages sent to %s"
 msgstr "Öll bein skilaboð til %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Enginn texti í skilaboðum!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Þetta er of langt. Hámarkslengd babls er %d tákn."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Móttakandi fannst ekki."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Gat ekki sent bein skilaboð til notenda sem eru ekki vinir þínir."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Engin staða fundin með þessu kenni."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Gat ekki búið til uppáhald."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Gat ekki eytt uppáhaldi."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr ""
 "Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr ""
 "Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Get ekki fylgst með notanda: %s. Þessi notandi er nú þegar í listanum þínum."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Stuttnefni geta bara verið lágstafir og tölustafir en engin bil."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ekki tækt stuttnefni."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Heimasíða er ekki gild vefslóð."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Staðsetning er of löng (í mesta lagi %d stafir)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Fannst ekki."
 
+#. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Gat ekki skráð hópmeðlimi."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -335,9 +354,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -368,8 +387,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -426,13 +445,13 @@ msgstr "Þessi aðferð krefst POST eða DELETE."
 msgid "You may not delete another user's status."
 msgstr "Þú getur ekki eytt stöðu annars notanda."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ekkert svoleiðis babl."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Get ekki eytt þessu babli."
 
@@ -444,15 +463,15 @@ msgstr ""
 msgid "No status with that ID found."
 msgstr "Engin staða með þessu kenni fannst."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Fannst ekki."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -591,7 +610,9 @@ msgid "No"
 msgstr "Athugasemd"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Loka á þennan notanda"
 
@@ -615,11 +636,13 @@ msgstr "Mistókst að vista upplýsingar um notendalokun"
 msgid "No such group."
 msgstr "Enginn þannig hópur."
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Opna"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Opna á þennan notanda"
 
@@ -641,12 +664,6 @@ msgstr "Staðfestingarlykill fannst ekki."
 msgid "That confirmation code is not for you!"
 msgstr "Þessi staðfestingarlykill er ekki fyrir þig!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -658,9 +675,9 @@ msgstr "Þetta tölvupóstfang hefur nú þegar verið staðfest."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -668,7 +685,7 @@ msgstr "Gat ekki uppfært notanda."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Gat ekki eytt tölvupóstsstaðfestingu."
@@ -696,9 +713,10 @@ msgstr "Þú verður aða hafa skráð þig inn til að ganga úr hóp."
 msgid "Application not found."
 msgstr "Staðfestingarlykill fannst ekki."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Það komu upp vandamál varðandi setutókann þinn."
 
@@ -720,7 +738,7 @@ msgstr "Get ekki eytt þessu babli."
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Ekki innskráð(ur)."
@@ -757,7 +775,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -765,19 +782,10 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:431
 msgid "Site logo"
 msgstr "Babl vefsíðunnar"
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -833,13 +841,13 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Vista"
@@ -861,10 +869,6 @@ msgstr "Bæta við sem uppáhaldsbabli"
 msgid "No such document \"%s\""
 msgstr "Ekkert svoleiðis babl."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
-msgstr ""
-
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
 msgstr ""
@@ -938,7 +942,7 @@ msgstr "Núverandi staðfesta tölvupóstfangið."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -953,116 +957,104 @@ msgstr ""
 "Býð eftir staðfestingu frá þessu netfangi. Athugaðu innhólfið þitt (og "
 "ruslpóstinn þinn!). Þar ættu að vera skilaboð með ítarlegri leiðbeiningum."
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Tölvupóstfang eins og \"notandi@example.org\""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Móttökutölvupóstur"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Sendu tölvupóst á þetta póstfang til þess að senda inn nýtt babl."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Búa til nýtt tölvupóstfang til að senda til. Skrifar yfir það gamla."
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Tölvupóstföng"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Sendu mér tilkynningu varðandi nýjar áskriftir í gegnum tölvupóst."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Senda mér tölvupóst þegar einhver setur babl í mér í uppáhald hjá sér."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Senda mér tölvupóst þegar einhver sendir mér persónuleg skilaboð."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Leyfa vinum að ýta við mér og senda mér tölvupóst."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Ég vil babla í gegnum tölvupóst."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Birta MicroID fyrir tölvupóstfangið mitt."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Ekkert tölvupóstfang."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Get ekki staðlað þetta tölvupóstfang"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Ekki tækt tölvupóstfang."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Þetta er nú þegar tölvupóstfangið þitt."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Þetta tölvupóstfang tilheyrir öðrum notanda."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Gat ekki sett inn staðfestingarlykil."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1074,45 +1066,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Engin staðfesting í bið sem þarf að hætta við."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Engin staðfesting í bið sem þarf að hætta við."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Þetta er ekki tölvupóstfangið þitt."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Móttökutölvupóstfang fjarlægt."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ekkert móttökutölvupóstfang."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Gat ekki uppfært skráarfærslu notanda."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Móttökutölvupóstfang fjarlægt."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nýju móttökutölvupóstfangi bætt við."
 
@@ -1171,15 +1163,6 @@ msgstr "Notendur í sviðsljósinu"
 msgid "Featured users, page %d"
 msgstr "Notendur í sviðsljósinu, síða %d"
 
-#: actions/featured.php:99
-#, php-format
-msgid "A selection of some great users on %s"
-msgstr ""
-
-#: actions/file.php:42
-msgid "No attachments."
-msgstr ""
-
 #: actions/file.php:51
 msgid "No uploaded attachments."
 msgstr ""
@@ -1188,10 +1171,6 @@ msgstr ""
 msgid "Not expecting this response!"
 msgstr "Bjóst ekki við þessu svari!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Þú getur notað staðbundna áskrift!"
@@ -1204,14 +1183,6 @@ msgstr "Þessi notandi hefur bannað þér að gerast áskrifandi"
 msgid "You are not authorized."
 msgstr "Þú ert ekki áskrifandi."
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/grantrole.php:66 actions/revokerole.php:66
 msgid "This role is reserved and cannot be set."
 msgstr ""
@@ -1270,29 +1241,47 @@ msgstr "Einkennismynd uppfærð."
 msgid "Failed updating logo."
 msgstr "Tókst ekki að uppfæra einkennismynd"
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Hópmeðlimir %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Hópmeðlimir %s"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Listi yfir notendur í þessum hóp."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Stjórnandi"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Loka"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#: actions/groupmembers.php:498
+msgid "Make user an admin of the group"
+msgstr ""
+
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
+
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1373,11 +1362,6 @@ msgstr ""
 "[snarskilaboðaþjónustuna](%%doc.im%%). Settu upp netfangið þitt hér fyrir "
 "neðan og stilltu notkunina."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1402,7 +1386,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1413,64 +1400,64 @@ msgstr ""
 "á GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Stillingar vistaðar."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Sendur mér babl í gegnum Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Senda inn babl þegar Jabber/GTalk staðan breytist."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Sendu mér svör í gegnum Jabber/GTalk frá fólki sem ég er ekki áskrifandi að."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Birta MicroID fyrir Jabber/GTalk netfangið mitt."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Stillingar vistaðar."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Ekkert Jabber-kenni"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Get ekki staðlað þetta Jabber kenni"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Ekki tækt Jabber-kenni"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Þetta er nú þegar Jabber-kennið þitt."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber-kennið tilheyrir öðrum notanda."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1480,23 +1467,23 @@ msgstr ""
 "við. Þú verður að leyfa %s að senda snarskilaboð til þín."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Þetta er rangt snarskilaboðafang."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Enginn staðfestingarlykill."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Þetta er ekki Jabber-kennið þitt."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Móttökutölvupóstfang fjarlægt."
 
@@ -1584,12 +1571,6 @@ msgstr "Persónuleg skilaboð"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt."
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1710,23 +1691,13 @@ msgstr ""
 "Af öryggisástæðum, vinsamlegast sláðu aftur inn notendanafnið þitt og "
 "lykilorð áður en þú breytir stillingunum þínum."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:133
+#: actions/makeadmin.php:96
 #, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/microsummary.php:69
-msgid "No current status."
+msgid "%1$s is already an admin for group \"%2$s\"."
 msgstr ""
 
 #: actions/newapplication.php:176
@@ -1818,11 +1789,6 @@ msgstr ""
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "Færslur frá %1$s á %2$s!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "Ýtt við notanda"
@@ -1835,6 +1801,15 @@ msgstr "Ýtt við notanda!"
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1874,8 +1849,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Enginn stuðningur við gagnasnið."
 
@@ -1992,7 +1967,7 @@ msgid "Password saved."
 msgstr "Lykilorð vistað."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -2000,26 +1975,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -2096,18 +2051,10 @@ msgstr ""
 msgid "When to use SSL"
 msgstr ""
 
-#: actions/pathsadminpanel.php:335
-msgid "SSL server"
-msgstr ""
-
 #: actions/pathsadminpanel.php:336
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2162,7 +2109,7 @@ msgstr "Fullt nafn"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Heimasíða"
 
@@ -2172,15 +2119,6 @@ msgstr ""
 "Veffang heimasíðunnar þinnar, bloggsins þíns eða persónulegrar síðu á öðru "
 "vefsvæði"
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "Lýsing"
@@ -2267,7 +2205,7 @@ msgid "Couldn't save tags."
 msgstr "Gat ekki vistað merki."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Stillingar vistaðar."
 
@@ -2565,25 +2503,6 @@ msgid ""
 "email address, IM address, and phone number."
 msgstr ""
 
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2633,18 +2552,6 @@ msgstr "Gerast áskrifandi"
 msgid "Invalid profile URL (bad format)"
 msgstr "Ótækt veffang persónulegrar síðu (vitlaust snið)"
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
-#: actions/remotesubscribe.php:176
-msgid "That’s a local profile! Login to subscribe."
-msgstr ""
-
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:119
 msgid "Repeated!"
 msgstr ""
@@ -2660,6 +2567,16 @@ msgstr "Svör við %s"
 msgid "Replies to %1$s, page %2$d"
 msgstr "Svör við %s"
 
+#: actions/replies.php:145
+#, php-format
+msgid "Replies feed for %s (RSS 1.0)"
+msgstr ""
+
+#: actions/replies.php:152
+#, php-format
+msgid "Replies feed for %s (RSS 2.0)"
+msgstr ""
+
 #: actions/replies.php:159
 #, php-format
 msgid "Replies feed for %s (Atom)"
@@ -2696,7 +2613,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2721,13 +2638,13 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Lýsing"
 
@@ -2741,10 +2658,18 @@ msgstr "Tölfræði"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2775,16 +2700,6 @@ msgstr ""
 msgid "Could not retrieve favorite notices."
 msgstr "Gat ekki sótt uppáhaldsbabl."
 
-#: actions/showfavorites.php:171
-#, php-format
-msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr ""
-
-#: actions/showfavorites.php:178
-#, php-format
-msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr ""
-
 #: actions/showfavorites.php:206
 msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
@@ -2810,7 +2725,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s hópurinn"
@@ -2852,7 +2767,12 @@ msgstr ""
 msgid "Notice feed for %s group (RSS 2.0)"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:350
+#, php-format
+msgid "Notice feed for %s group (Atom)"
+msgstr ""
+
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Meðlimir"
 
@@ -2908,9 +2828,19 @@ msgstr "Skilaboð frá %1$s á %2$s"
 msgid "%1$s, page %2$d"
 msgstr "Hópar, síða %d"
 
-#: actions/showstream.php:122
+#: actions/showstream.php:129
 #, php-format
-msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
+msgid "Notice feed for %s (RSS 1.0)"
+msgstr ""
+
+#: actions/showstream.php:136
+#, php-format
+msgid "Notice feed for %s (RSS 2.0)"
+msgstr ""
+
+#: actions/showstream.php:143
+#, php-format
+msgid "Notice feed for %s (Atom)"
 msgstr ""
 
 #: actions/showstream.php:200
@@ -3053,11 +2983,6 @@ msgstr "Stillingar fyrir mynd"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr "Þú getur fengið SMS í gegnum tölvupóst frá %%site.name%%."
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -3172,7 +3097,7 @@ msgstr "Enginn lykill sleginn inn"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3180,6 +3105,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Staðfesting tölvupóstfangs"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3321,13 +3250,9 @@ msgstr "Babl merkt með %s"
 msgid "Notice feed for tag %s (RSS 1.0)"
 msgstr ""
 
-#: actions/tag.php:93
+#: actions/tag.php:99
 #, php-format
-msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
-
-#: actions/tagother.php:39
-msgid "No ID argument."
+msgid "Notice feed for tag %s (Atom)"
 msgstr ""
 
 #: actions/tagother.php:65
@@ -3442,13 +3367,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Heimila áskriftir"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr ""
@@ -3474,24 +3392,10 @@ msgstr "Engin heimildarbeiðni!"
 msgid "Subscription authorized"
 msgstr "Áskrift heimiluð"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Áskrift hafnað"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3517,16 +3421,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3692,13 +3586,13 @@ msgid "Problem saving notice."
 msgstr "Vandamál komu upp við að vista babl."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -3797,24 +3691,12 @@ msgstr "Ónafngreind síða"
 msgid "Primary site navigation"
 msgstr "Stikl aðalsíðu"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
 msgid "Change your email, avatar, password, profile"
 msgstr "Breyta lykilorðinu þínu"
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
@@ -3844,15 +3726,9 @@ msgctxt "TOOLTIP"
 msgid "Help me!"
 msgstr "Hjálp"
 
-#. TRANS: Tooltip for main menu option "Search"
-#: lib/action.php:513
-msgctxt "TOOLTIP"
-msgid "Search for people or text"
-msgstr ""
-
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Babl vefsíðunnar"
 
@@ -3911,22 +3787,17 @@ msgstr "Tengiliður"
 msgid "StatusNet software license"
 msgstr "Hugbúnaðarleyfi StatusNet"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** er örbloggsþjónusta."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3939,43 +3810,44 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Uppröðun"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Eftir"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Áður"
 
@@ -3984,103 +3856,146 @@ msgstr "Áður"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Notandi"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Lýsing"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
+msgstr ""
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Hætta við"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Endurheimta"
@@ -4095,14 +4010,21 @@ msgstr ""
 msgid "Author"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Loka"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Niðurstöður skipunar"
@@ -4115,6 +4037,13 @@ msgstr "Fullkláruð skipun"
 msgid "Command failed"
 msgstr "Misheppnuð skipun"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4142,6 +4071,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Babl gert að uppáhaldi."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4176,13 +4119,6 @@ msgid ""
 "same server."
 msgstr ""
 
-#. TRANS: Message given if content is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:491 lib/xmppmanager.php:403
-#, php-format
-msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
@@ -4193,22 +4129,18 @@ msgstr "Villa kom upp við að senda bein skilaboð"
 msgid "Error repeating notice."
 msgstr "Villa kom upp í stillingu notanda."
 
-#. TRANS: Message given if content of a notice for a reply is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:592
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
 #, php-format
-msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -4249,8 +4181,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4259,7 +4198,7 @@ msgstr[0] "Þú ert nú þegar í áskrift að þessum notendum:"
 msgstr[1] "Þú ert nú þegar í áskrift að þessum notendum:"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4268,7 +4207,7 @@ msgstr[0] "Gat ekki leyft öðrum að gerast áskrifandi að þér."
 msgstr[1] "Gat ekki leyft öðrum að gerast áskrifandi að þér."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4276,6 +4215,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Þú ert ekki meðlimur í þessum hópi."
 msgstr[1] "Þú ert ekki meðlimur í þessum hópi."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4326,10 +4266,6 @@ msgstr ""
 msgid "You may wish to run the installer to fix this."
 msgstr ""
 
-#: lib/common.php:139
-msgid "Go to the installer."
-msgstr ""
-
 #: lib/connectsettingsaction.php:110
 msgid "IM"
 msgstr "Snarskilaboð"
@@ -4415,11 +4351,6 @@ msgstr ""
 msgid "URL of the homepage or blog of the group or topic"
 msgstr "Vefslóð vefsíðu hópsins eða umfjöllunarefnisins"
 
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
-msgstr ""
-
 #: lib/groupeditform.php:179
 msgid ""
 "Location for the group, if any, like \"City, State (or Region), Country\""
@@ -4430,23 +4361,77 @@ msgstr "Staðsetning hópsins, ef einhver, eins og \"Borg, landshluti, land\""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Hópur"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
 
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Breyta hópstillingum %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Einkennismerki"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Bæta við eða breyta einkennismerki %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -4475,7 +4460,8 @@ msgstr "Skráarsnið myndar ekki stutt."
 msgid "Partial upload."
 msgstr "Upphal að hluta til."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Kerfisvilla kom upp við upphal skráar."
 
@@ -4708,6 +4694,11 @@ msgid ""
 "\t%s"
 msgstr ""
 
+#: lib/mail.php:657
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
 #, php-format
@@ -4746,10 +4737,6 @@ msgid ""
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
 
-#: lib/mailbox.php:228 lib/noticelist.php:506
-msgid "from"
-msgstr ""
-
 #: lib/mailhandler.php:37
 msgid "Could not parse message."
 msgstr "Gat ekki þáttað skilaboðin."
@@ -4766,52 +4753,69 @@ msgstr "Afsakið en þetta er ekki móttökutölvupóstfangið þitt."
 msgid "Sorry, no incoming email allowed."
 msgstr "Því miður er móttökutölvupóstur ekki leyfður."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -4826,11 +4830,6 @@ msgstr "Til"
 msgid "Available characters"
 msgstr "Leyfileg tákn"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "Senda babl"
@@ -4848,10 +4847,6 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
@@ -4886,10 +4881,6 @@ msgstr ""
 msgid "web"
 msgstr ""
 
-#: lib/noticelist.php:603
-msgid "Repeated by"
-msgstr ""
-
 #: lib/noticelist.php:630
 msgid "Reply to this notice"
 msgstr "Svara þessu babli"
@@ -4911,22 +4902,23 @@ msgid "Send a nudge to this user"
 msgstr "Ýta við þessum notanda"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Villa kom upp við að setja inn nýja persónulega síðu"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Villa kom upp við að setja inn mynd"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Villa kom upp í uppfærslu persónulegrar fjarsíðu"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Villa kom upp við að setja inn persónulega fjarsíðu"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Gat ekki sett inn nýja áskrift."
 
@@ -5016,10 +5008,6 @@ msgstr "Í sviðsljósinu"
 msgid "Popular"
 msgstr "Vinsælt"
 
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
-msgstr ""
-
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr "Já"
@@ -5033,13 +5021,16 @@ msgstr ""
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Leita"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -5198,56 +5189,64 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "fyrir nokkrum sekúndum"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "fyrir um einni mínútu síðan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "fyrir um %d mínútum síðan"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "fyrir um einum klukkutíma síðan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "fyrir um %d klukkutímum síðan"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "fyrir um einum degi síðan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "fyrir um %d dögum síðan"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "fyrir um einum mánuði síðan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "fyrir um %d mánuðum síðan"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "fyrir um einu ári síðan"
 
index 06f0841805adb5a142c49743a0f4ee067923b085..505f6abaf2b1ef05045e85e3581b27fe1ef551b2 100644 (file)
@@ -1,29 +1,31 @@
-# Translation of StatusNet to Italian
+# Translation of StatusNet - Core to Italian (Italiano)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: HalphaZ
-# Author@translatewiki.net: Milocasagrande
-# Author@translatewiki.net: Nemo bis
+# Author: HalphaZ
+# Author: Milocasagrande
+# Author: Nemo bis
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:40+0000\n"
-"Language-Team: Italian\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:01+0000\n"
+"Language-Team: Italian <http://translatewiki.net/wiki/Portal:it>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: it\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Accesso"
 
@@ -78,10 +80,10 @@ msgstr "Salva impostazioni di accesso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Salva"
@@ -94,15 +96,15 @@ msgstr "Pagina inesistente."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -200,16 +202,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Messaggi da %1$s e amici su %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -224,21 +226,23 @@ msgstr "Messaggi da %1$s e amici su %2$s!"
 msgid "API method not found."
 msgstr "Metodo delle API non trovato."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Questo metodo richiede POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -246,27 +250,27 @@ msgstr ""
 "È necessario specificare un parametro chiamato \"device\" con un valore tra: "
 "\"sms\", \"im\" o \"none\"."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Impossibile aggiornare l'utente."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "L'utente non ha un profilo."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Impossibile salvare il profilo."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -278,30 +282,30 @@ msgstr ""
 "Il server non è in grado di gestire tutti quei dati POST (%s byte) con la "
 "configurazione attuale."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Impossibile salvare la impostazioni dell'aspetto."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Impossibile aggiornare l'aspetto."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Non puoi bloccarti!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blocco dell'utente non riuscito."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Sblocco dell'utente non riuscito."
 
@@ -325,66 +329,62 @@ msgstr "Messaggi diretti a %s"
 msgid "All the direct messages sent to %s"
 msgstr "Tutti i messaggi diretti inviati a %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Nessun testo nel messaggio!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Troppo lungo. La dimensione massima di un messaggio è di %d caratteri."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Destinatario non trovato."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Non puoi inviare messaggi diretti a utenti che non sono tuoi amici."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Nessuno messaggio trovato con quel ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Questo messaggio è già un preferito."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Impossibile creare un preferito."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Questo messaggio non è un preferito."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Impossibile eliminare un preferito."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Impossibile non seguire l'utente: utente non trovato."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Impossibile seguire l'utente: %s è già nel tuo elenco."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Impossibile non seguire l'utente: utente non trovato."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Non puoi non seguirti."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Impossibile determinare l'utente sorgente."
@@ -393,7 +393,7 @@ msgstr "Impossibile determinare l'utente sorgente."
 msgid "Could not find target user."
 msgstr "Impossibile trovare l'utente destinazione."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -401,95 +401,95 @@ msgstr ""
 "Il soprannome deve essere composto solo da lettere minuscole e numeri, senza "
 "spazi."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Soprannome già in uso. Prova con un altro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Non è un soprannome valido."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "L'indirizzo della pagina web non è valido."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Nome troppo lungo (max 255 caratteri)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "La descrizione è troppo lunga (max %d caratteri)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Ubicazione troppo lunga (max 255 caratteri)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Troppi alias! Massimo %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Alias non valido: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "L'alias \"%s\" è già in uso. Prova con un altro."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "L'alias non può essere lo stesso del soprannome."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Gruppo non trovato."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Fai già parte di quel gruppo."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "L'amministratore ti ha bloccato l'accesso a quel gruppo."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Impossibile iscrivere l'utente %1$s al gruppo %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Non fai parte di questo gruppo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -529,9 +529,9 @@ msgstr "Token non valido."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -577,8 +577,8 @@ msgstr "Il token di richiesta %s è stato rifiutato o revocato."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -642,18 +642,18 @@ msgstr "Questo metodo richiede POST o DELETE."
 msgid "You may not delete another user's status."
 msgstr "Non puoi eliminare il messaggio di un altro utente."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Nessun messaggio."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Non puoi ripetere un tuo messaggio."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Hai già ripetuto quel messaggio."
 
@@ -665,21 +665,21 @@ msgstr "Messaggio eliminato."
 msgid "No status with that ID found."
 msgstr "Nessuno stato trovato con quel ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Troppo lungo. Lunghezza massima %d caratteri."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Non trovato."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -881,7 +881,9 @@ msgid "Yes"
 msgstr "Sì"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blocca questo utente"
 
@@ -923,11 +925,13 @@ msgstr "Un elenco degli utenti a cui è bloccato l'accesso a questo gruppo."
 msgid "Unblock user from group"
 msgstr "Sblocca l'utente dal gruppo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Sblocca"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Sblocca questo utente"
 
@@ -966,9 +970,9 @@ msgstr "Quell'indirizzo è già stato confermato."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -976,7 +980,7 @@ msgstr "Impossibile aggiornare l'utente."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Impossibile eliminare l'email di conferma."
@@ -1012,9 +1016,10 @@ msgstr "Applicazione non trovata."
 msgid "You are not the owner of this application."
 msgstr "Questa applicazione non è di tua proprietà."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Si è verificato un problema con il tuo token di sessione."
 
@@ -1047,7 +1052,7 @@ msgstr "Elimina l'applicazione"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Accesso non effettuato."
@@ -1110,7 +1115,6 @@ msgstr "Elimina questo utente"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Aspetto"
 
@@ -1231,13 +1235,13 @@ msgstr "Ripristina i valori predefiniti"
 msgid "Reset back to default"
 msgstr "Reimposta i valori predefiniti"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Salva"
@@ -1393,7 +1397,7 @@ msgstr "Indirizzo email attualmente confermato."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1412,22 +1416,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Annulla"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Indirizzo email, del tipo \"nomeutente@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1435,19 +1443,19 @@ msgstr "Aggiungi"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Email di ricezione"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Invia le email a questo indirizzo per scrivere nuovi messaggi."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Crea un nuovo indirizzo email a cui inviare i messaggi e rimuovi quello "
@@ -1455,93 +1463,93 @@ msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nuovo"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferenze dell'email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Inviami avvisi di nuovi abbonamenti via email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Inviami un'email quando qualcuno aggiunge un mio messaggio ai preferiti"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Inviami un'email quando qualcuno mi invia un messaggio privato"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Inviami un'email quando qualcuno mi invia una \"@-risposta\""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Consenti ai miei amici di richiamarmi e inviami un'email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Voglio inviare i messaggi via email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Pubblica un MicroID per il mio indirizzo email"
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Preferenze dell'email salvate."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Nessun indirizzo email."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Impossibile normalizzare quell'indirizzo email"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Non è un indirizzo email valido."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Quello è già il tuo indirizzo email."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Quell'indirizzo email appartiene già a un altro utente."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Impossibile inserire il codice di conferma."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1553,50 +1561,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Nessuna conferma da annullare."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Quello è l'indirizzo email sbagliato."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Conferma dell'email annullata."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Quello non è il tuo indirizzo email."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "L'indirizzo email è stato rimosso."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Nessun indirizzo email di ricezione."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Impossibile aggiornare il record dell'utente."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Indirizzo email di ricezione rimosso."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Nuovo indirizzo email di ricezione aggiunto."
 
@@ -1715,7 +1723,7 @@ msgstr "Impossibile convertire il token di richiesta in uno di accesso."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Il servizio remoto usa una versione del protocollo OMB sconosciuta."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Errore nell'aggiornare il profilo remoto."
 
@@ -1772,7 +1780,7 @@ msgstr "L'utente è già bloccato dal gruppo."
 msgid "User is not a member of group."
 msgstr "L'utente non fa parte del gruppo."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Blocca l'utente dal gruppo"
 
@@ -1854,39 +1862,49 @@ msgstr "Logo aggiornato."
 msgid "Failed updating logo."
 msgstr "Aggiornamento del logo non riuscito."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membri del gruppo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membri del gruppo %1$s, pagina %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Un elenco degli utenti in questo gruppo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Amministra"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blocca"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Rende l'utente amministratore del gruppo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Rendi amm."
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Rende questo utente un amministratore"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2027,7 +2045,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2038,63 +2059,63 @@ msgstr ""
 "di messaggistica o su GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferenze messaggistica"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Inviami i messaggi via Jabber/GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Pubblica un messaggio quando il mio stato Jabber/GTalk cambia"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Inviami le risposte delle persone a cui sono abbonato via Jabber/GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Pubblica un MicroID per il mio indirizzo Jabber/GTalk"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferenze salvate."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Nessun ID di Jabber."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Impossibile normalizzare quell'ID Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Non è un ID Jabber valido"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Quello è già il tuo ID di Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "ID Jabber già assegnato a un altro utente."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2104,28 +2125,28 @@ msgstr ""
 "istantanea che hai aggiunto. Devi approvare %s affinché ti invii messaggi."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Quello è l'indirizzo di messaggistica sbagliato."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Impossibile eliminare la conferma della messaggistica."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Conferma della messaggistica annullata."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Quello non è il tuo ID di Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "L'indirizzo di messaggistica è stato rimosso."
 
@@ -2513,11 +2534,6 @@ msgstr "Messaggi con \"%s\""
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "Messaggi che corrispondono al termine \"%1$s\" su %2$s!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "Richiamo inviato"
@@ -2592,8 +2608,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Solo URL %s attraverso HTTP semplice."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Non è un formato di dati supportato."
 
@@ -2735,7 +2751,7 @@ msgid "Password saved."
 msgstr "Password salvata."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Percorsi"
 
@@ -2949,7 +2965,7 @@ msgstr "Nome"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Pagina web"
 
@@ -3055,7 +3071,7 @@ msgid "Couldn't save tags."
 msgstr "Impossibile salvare le etichette."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Impostazioni salvate."
 
@@ -3591,7 +3607,7 @@ msgstr "L'utente è già nella \"sandbox\"."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessioni"
 
@@ -3629,24 +3645,24 @@ msgid "Application profile"
 msgstr "Profilo applicazione"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icona"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nome"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organizzazione"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descrizione"
 
@@ -3750,7 +3766,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Questo è un modo per condividere ciò che ti piace."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Gruppo %s"
@@ -3802,7 +3818,7 @@ msgstr "Feed dei messaggi per il gruppo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF per il gruppo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membri"
 
@@ -4254,7 +4270,7 @@ msgstr "Nessun codice inserito"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Snapshot"
 
@@ -4816,15 +4832,6 @@ msgstr ""
 msgid "Robin thinks something is impossible."
 msgstr ""
 
-#. TRANS: Message given if an upload is larger than the configured maximum.
-#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
-#: classes/File.php:190
-#, php-format
-msgid ""
-"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
-"Try to upload a smaller version."
-msgstr ""
-
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
 #: classes/File.php:202
@@ -4940,18 +4947,18 @@ msgid "Problem saving notice."
 msgstr "Problema nel salvare il messaggio."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problema nel salvare la casella della posta del gruppo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4971,7 +4978,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Non ti è possibile abbonarti."
 
@@ -5119,7 +5126,8 @@ msgid "Change site configuration"
 msgstr "Modifica la configurazione del sito"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Amministra"
@@ -5196,7 +5204,7 @@ msgstr "Cerca"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Messaggio del sito"
 
@@ -5260,7 +5268,10 @@ msgid "StatusNet software license"
 msgstr "Licenza del software StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5270,13 +5281,16 @@ msgstr ""
 "(%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** è un servizio di microblog."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5288,34 +5302,35 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licenza del contenuto del sito"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "I contenuti e i dati di %1$s sono privati e confidenziali."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 "I contenuti e i dati sono copyright di %1$s. Tutti i diritti riservati."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "I contenuti e i dati sono forniti dai collaboratori. Tutti i diritti "
 "riservati."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
@@ -5323,19 +5338,19 @@ msgstr ""
 "licenza %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginazione"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Successivi"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Precedenti"
 
@@ -5344,208 +5359,243 @@ msgstr "Precedenti"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Atteso un elemento root del feed, ma ricevuto un documento XML intero."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Impossibile gestire contenuti remoti."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Impossibile gestire contenuti XML incorporati."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Impossibile gestire contenuti Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Non puoi apportare modifiche al sito."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Le modifiche al pannello non sono consentite."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() non implementata."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() non implementata."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Impossibile eliminare le impostazioni dell'aspetto."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configurazione di base"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Sito"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configurazione aspetto"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Aspetto"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configurazione utente"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Utente"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configurazione di accesso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configurazione percorsi"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configurazione sessioni"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Modifica messaggio del sito"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configurazione snapshot"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "Le risorse API richiedono accesso lettura-scrittura, ma si dispone del solo "
 "accesso in lettura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Modifica applicazione"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icona per questa applicazione"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Descrivi l'applicazione in %d caratteri"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Descrivi l'applicazione"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL della pagina web di questa applicazione"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL sorgente"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organizzazione responsabile per questa applicazione"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL della pagina web dell'organizzazione"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL verso cui redirigere dopo l'autenticazione"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Browser"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipo di applicazione, browser o desktop"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Sola lettura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lettura-scrittura"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Accesso predefinito per questa applicazione, sola lettura o lettura-scrittura"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Annulla"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "Lettura-scrittura"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "Sola lettura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Approvata %1$s - Accesso \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revoca"
@@ -5565,11 +5615,13 @@ msgstr "Autore"
 msgid "Provider"
 msgstr "Provider"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Messaggi in cui appare questo allegato"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etichette per questo allegato"
 
@@ -5581,6 +5633,11 @@ msgstr "Modifica della password non riuscita"
 msgid "Password changing is not allowed"
 msgstr "La modifica della password non è permessa"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blocca"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Risultati comando"
@@ -5611,6 +5668,13 @@ msgstr "L'utente non ha un ultimo messaggio."
 msgid "Could not find a user with nickname %s."
 msgstr "Impossibile trovare un utente col soprannome %s."
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5648,6 +5712,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Messaggio indicato come preferito."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5737,12 +5815,26 @@ msgstr "Specifica il nome dell'utente a cui abbonarti."
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "Impossibile abbonarsi ai profili OMB attraverso un comando."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr "Specifica il nome dell'utente da cui annullare l'abbonamento."
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -5781,13 +5873,20 @@ msgstr "Il comando di accesso è disabilitato."
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "Il tuo abbonamento è stato annullato."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5802,7 +5901,7 @@ msgid "No one is subscribed to you."
 msgstr "Nessuno è abbonato ai tuoi messaggi."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5817,7 +5916,7 @@ msgid "You are not a member of any groups."
 msgstr "Non fai parte di alcun gruppo."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5825,6 +5924,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Non fai parte di questo gruppo:"
 msgstr[1] "Non fai parte di questi gruppi:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6049,37 +6149,77 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Soprannomi aggiuntivi per il gruppo, separati da virgole o spazi, max %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Gruppo"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Bloccato"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "Utenti bloccati di %s"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Modifica le proprietà del gruppo %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Aggiungi o modifica il logo di %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Aggiungi o modifica l'aspetto di %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6112,7 +6252,8 @@ msgstr "Quel file è troppo grande. La dimensione massima è %s."
 msgid "Partial upload."
 msgstr "Caricamento parziale."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Errore di sistema nel caricare il file."
 
@@ -6517,16 +6658,19 @@ msgstr "Email di ricezione non consentita."
 msgid "Unsupported message type: %s"
 msgstr "Tipo di messaggio non supportato: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Si è verificato un errore nel database nel salvare il file. Prova di nuovo."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Il file caricato eccede la direttiva upload_max_filesize in php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6534,43 +6678,59 @@ msgstr ""
 "Il file caricato eccede la direttiva MAX_FILE_SIZE specificata nel modulo "
 "HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Il file caricato è stato caricato solo parzialmente."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Manca una directory temporanea."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Scrittura del file su disco non riuscita."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Caricamento del file bloccato dall'estensione."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Il file supera la quota dell'utente."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Impossibile spostare il file nella directory di destinazione."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Impossibile determinare il tipo MIME del file."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Prova a usare un altro formato per %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s non è un tipo di file supportato su server."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6688,26 +6848,23 @@ msgid "Send a nudge to this user"
 msgstr "Invia un richiamo a questo utente"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Errore nell'inserire il nuovo profilo"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Errore nell'inserire l'immagine"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Errore nell'aggiornare il profilo remoto"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Errore nell'inserire il profilo remoto"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Messaggio duplicato"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Impossibile inserire un nuovo abbonamento."
 
@@ -6744,7 +6901,8 @@ msgstr "I tuoi messaggi inviati"
 msgid "Tags in %s's notices"
 msgstr "Etichette nei messaggi di %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Sconosciuto"
 
@@ -6838,19 +6996,24 @@ msgstr "Sandbox"
 msgid "Sandbox this user"
 msgstr "Metti questo utente nella \"sandbox\""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Cerca nel sito"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Parole"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Cerca"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Aiuto sulla ricerca"
 
@@ -7049,56 +7212,64 @@ msgid "Moderator"
 msgstr "Moderatore"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "pochi secondi fa"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "circa un minuto fa"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "circa %d minuti fa"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "circa un'ora fa"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "circa %d ore fa"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "circa un giorno fa"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "circa %d giorni fa"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "circa un mese fa"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "circa %d mesi fa"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "circa un anno fa"
 
index b6678b6bc4e5e7756bd694724ff4f371408410a5..c9d1ed3352b168dfc94f81c68ce1b6126674930e 100644 (file)
@@ -1,30 +1,32 @@
-# Translation of StatusNet to Japanese
+# Translation of StatusNet - Core to Japanese (日本語)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Fryed-peach
-# Author@translatewiki.net: Sonoda
-# Author@translatewiki.net: Whym
+# Author: Brion
+# Author: Fryed-peach
+# Author: Sonoda
+# Author: Whym
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:42+0000\n"
-"Language-Team: Japanese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:03+0000\n"
+"Language-Team: Japanese <http://translatewiki.net/wiki/Portal:ja>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ja\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "アクセス"
 
@@ -82,15 +84,15 @@ msgstr "そのようなタグはありません。"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -188,16 +190,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "%2$s に %1$s と友人からの更新があります!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -212,47 +214,43 @@ msgstr "%2$s に %1$s と友人からの更新があります!"
 msgid "API method not found."
 msgstr "API メソッドが見つかりません。"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "このメソッドには POST が必要です。"
 
-#: actions/apiaccountupdatedeliverydevice.php:106
-msgid ""
-"You must specify a parameter named 'device' with a value of one of: sms, im, "
-"none."
-msgstr ""
-
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "ユーザを更新できませんでした。"
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "ユーザはプロフィールをもっていません。"
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "プロフィールを保存できませんでした。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -264,30 +262,30 @@ msgstr ""
 "サーバーの現在の構成が理由で、大量の POST データ (%sバイト) を処理することが"
 "できませんでした。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "あなたのデザイン設定を保存できません。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "デザインを更新できませんでした。"
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "自分自身をブロックすることはできません!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "ユーザのブロックに失敗しました。"
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "ユーザのブロック解除に失敗しました。"
 
@@ -311,67 +309,63 @@ msgstr "%s へのダイレクトメッセージ"
 msgid "All the direct messages sent to %s"
 msgstr "%s へ送った全てのダイレクトメッセージ"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "メッセージの本文がありません!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "長すぎます。メッセージは最大 %d 字までです。"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "受け取り手のユーザが見つかりません。"
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "友人でないユーザにダイレクトメッセージを送ることはできません。"
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "そのIDのステータスが見つかりません。"
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "このステータスはすでにお気に入りです。"
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "お気に入りを作成できません。"
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "そのステータスはお気に入りではありません。"
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "お気に入りを取り消すことができません。"
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "ユーザのフォローを停止できませんでした: ユーザが見つかりません。"
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr ""
 "ユーザをフォローできませんでした: %s は既にあなたのリストに入っています。"
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "ユーザのフォローを停止できませんでした: ユーザが見つかりません。"
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "自分自身をフォロー停止することはできません。"
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "ソースユーザーを決定できません。"
@@ -380,7 +374,7 @@ msgstr "ソースユーザーを決定できません。"
 msgid "Could not find target user."
 msgstr "ターゲットユーザーを見つけられません。"
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -388,90 +382,90 @@ msgstr ""
 "ニックネームには、小文字アルファベットと数字のみ使用できます。スペースは使用"
 "できません。"
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。"
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "有効なニックネームではありません。"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "ホームページのURLが不適切です。"
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "フルネームが長すぎます。(255字まで)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "記述が長すぎます。(最長%d字)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "場所が長すぎます。(255字まで)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "別名が多すぎます! 最大 %d。"
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "別名 \"%s\" は既に使用されています。他のものを試してみて下さい。"
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "別名はニックネームと同じではいけません。"
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "見つかりません。"
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "すでにこのグループのメンバーです。"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "管理者によってこのグループからブロックされています。"
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "ユーザ %1$s はグループ %2$s に参加できません。"
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "このグループのメンバーではありません。"
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -505,9 +499,9 @@ msgstr "不正なトークン。"
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -552,8 +546,8 @@ msgstr "リクエストトークン%sは、拒否されて、取り消されま
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -614,18 +608,18 @@ msgstr "このメソッドには POST か DELETE が必要です。"
 msgid "You may not delete another user's status."
 msgstr "他のユーザのステータスを消すことはできません。"
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "そのようなつぶやきはありません。"
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "あなたのつぶやきを繰り返せません。"
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "すでにつぶやきを繰り返しています。"
 
@@ -637,21 +631,21 @@ msgstr "ステータスを削除しました。"
 msgid "No status with that ID found."
 msgstr "そのIDでのステータスはありません。"
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "長すぎます。つぶやきは最大 %d 字までです。"
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "見つかりません。"
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "つぶやきは URL を含めて最大 %d 字までです。"
@@ -825,7 +819,9 @@ msgid "Do not block this user"
 msgstr "このユーザをアンブロックする"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "このユーザをブロックする"
 
@@ -867,11 +863,13 @@ msgstr "このグループへの参加をブロックされたユーザのリス
 msgid "Unblock user from group"
 msgstr "グループからのアンブロックユーザ"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "アンブロック"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "このユーザをアンブロックする"
 
@@ -893,12 +891,6 @@ msgstr "確認コードが見つかりません。"
 msgid "That confirmation code is not for you!"
 msgstr "その確認コードはあなたのものではありません!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -910,9 +902,9 @@ msgstr "そのアドレスは既に承認されています。"
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -920,7 +912,7 @@ msgstr "ユーザを更新できません"
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "メール承認を削除できません"
@@ -956,9 +948,10 @@ msgstr "アプリケーションが見つかりません。"
 msgid "You are not the owner of this application."
 msgstr "このアプリケーションのオーナーではありません。"
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "あなたのセッショントークンに関する問題がありました。"
 
@@ -982,7 +975,7 @@ msgstr "このアプリケーションを削除"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "ログインしていません。"
@@ -1045,7 +1038,6 @@ msgstr "このユーザを削除"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "デザイン"
 
@@ -1162,13 +1154,13 @@ msgstr "デフォルトデザインに戻す。"
 msgid "Reset back to default"
 msgstr "デフォルトへリセットする"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "保存"
@@ -1324,7 +1316,7 @@ msgstr "現在確認されているメールアドレス。"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1339,124 +1331,112 @@ msgstr ""
 "このアドレスは承認待ちです。受信ボックス(とスパムボックス)に追加の指示が書"
 "かれたメッセージが届いていないか確認してください。"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "メールアドレス、\"UserName@example.org\" のような"
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "入ってくるメール"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "新しいつぶやき投稿にこのアドレスへメールする"
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "投稿のための新しいEメールアドレスを作ります; 古い方を取り消します。"
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "メールアドレス"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "メールで新規フォローの通知を私に送ってください。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "だれかがお気に入りとして私のつぶやきを加えたら、メールを私に送ってください。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "だれかがプライベート・メッセージを私に送るときには、メールを私に送ってくださ"
 "い。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "だれかが\"@-返信\"を私を送るときには、メールを私に送ってください、"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "友達が私に合図とメールを送ることを許可する。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "メールでつぶやきを投稿したい。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "私のメールアドレスのためにMicroIDを発行してください。"
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "メールアドレスがありません。"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "そのメールアドレスを正規化できません"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "有効なメールアドレスではありません。"
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "これはすでにあなたのメールアドレスです。"
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "このメールアドレスは既に他の人が使っています。"
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "承認コードを追加できません"
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1468,45 +1448,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "承認待ちのものはありません。"
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "承認待ちのものはありません。"
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "これはあなたのメールアドレスではありません。"
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "入ってくるメールアドレスは削除されました。"
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "入ってくるメールアドレスではありません。"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "ユーザレコードを更新できません。"
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "入ってくるメールアドレスは削除されました。"
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "新しい入ってくるメールアドレスが追加されました。"
 
@@ -1667,7 +1647,7 @@ msgstr "ユーザはすでにグループからブロックされています。
 msgid "User is not a member of group."
 msgstr "ユーザはグループのメンバーではありません。"
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "グループからユーザをブロック"
 
@@ -1748,39 +1728,49 @@ msgstr "ロゴが更新されました。"
 msgid "Failed updating logo."
 msgstr "ロゴの更新に失敗しました。"
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s グループメンバー"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s グループメンバー、ページ %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "このグループのユーザのリスト。"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "管理者"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "ブロック"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "ユーザをグループの管理者にする"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "管理者にする"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "このユーザを管理者にする"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1919,7 +1909,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1929,65 +1922,65 @@ msgstr ""
 "IMクライアントやGTalkに追加して下さい。"
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "設定が保存されました。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Jabber/GTalk で私に通知を送って下さい。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Jabber/GTalkのステータスが変更された時に通知を送る。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Jabber/GTalkを通して回答を、私がフォローされていない人々から私に送ってくださ"
 "い。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "私のJabber/GTalkアドレスのためにMicroIDを発行してください。"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "設定が保存されました。"
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Jabbar ID はありません。"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "その Jabbar ID を正規化できません"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "有効な Jabber ID ではありません。"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "その Jabber ID は既にあなたのものです。"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID jは既に別のユーザが使用しています。"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1997,23 +1990,23 @@ msgstr ""
 "ようにするには%sを承認してください。"
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "その IM アドレスは不正です。"
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "確認コードがありません。"
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "その Jabber ID はあなたのものではありません。"
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "入ってくるメールアドレスは削除されました。"
 
@@ -2106,12 +2099,6 @@ msgstr "パーソナルメッセージ"
 msgid "Optionally add a personal message to the invitation."
 msgstr "任意に招待にパーソナルメッセージを加えてください。"
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -2239,12 +2226,6 @@ msgstr ""
 "セキュリティー上の理由により、設定を変更する前にユーザ名とパスワードを入力し"
 "て下さい。"
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr "管理者だけが別のユーザを管理者にすることができます。"
@@ -2391,11 +2372,6 @@ msgstr "%s で更新"
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "\"%2$s\" 上の検索語 \"$1$s\" に一致するすべての更新"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "合図を送った"
@@ -2433,11 +2409,6 @@ msgstr "あなたのアカウントにアクセスする以下のアプリケー
 msgid "You are not a user of that application."
 msgstr "あなたはそのアプリケーションのユーザではありません。"
 
-#: actions/oauthconnectionssettings.php:186
-#, php-format
-msgid "Unable to revoke access for app: %s."
-msgstr ""
-
 #: actions/oauthconnectionssettings.php:198
 msgid "You have not authorized any applications to use your account."
 msgstr ""
@@ -2457,12 +2428,6 @@ msgstr "ユーザはプロフィールをもっていません。"
 msgid "%1$s's status on %2$s"
 msgstr "%2$s における %1$s のステータス"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2470,8 +2435,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "サポートされていないデータ形式。"
 
@@ -2613,7 +2578,7 @@ msgid "Password saved."
 msgstr "パスワードが保存されました。"
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "パス"
 
@@ -2820,7 +2785,7 @@ msgstr "フルネーム"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "ホームページ"
 
@@ -2925,15 +2890,10 @@ msgid "Couldn't save tags."
 msgstr "タグを保存できません。"
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "設定が保存されました。"
 
-#: actions/public.php:83
-#, php-format
-msgid "Beyond the page limit (%s)."
-msgstr ""
-
 #: actions/public.php:92
 msgid "Could not retrieve public stream."
 msgstr "パブリックストリームを検索できません。"
@@ -3191,12 +3151,6 @@ msgstr "メールアドレスが既に存在します。"
 msgid "Invalid username or password."
 msgstr "不正なユーザ名またはパスワード。"
 
-#: actions/register.php:350
-msgid ""
-"With this form you can create a new account. You can then post notices and "
-"link up to friends and colleagues. "
-msgstr ""
-
 #: actions/register.php:432
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required."
 msgstr ""
@@ -3245,14 +3199,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
 #: actions/register.php:583
 #, php-format
 msgid ""
@@ -3448,7 +3394,7 @@ msgstr "ユーザはすでにサンドボックスです。"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "セッション"
 
@@ -3486,24 +3432,24 @@ msgid "Application profile"
 msgstr "アプリケーションプロファイル"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "アイコン"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "名前"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "組織"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "概要"
 
@@ -3604,7 +3550,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "これは、あなたが好きなことを共有する方法です。"
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s グループ"
@@ -3656,7 +3602,7 @@ msgstr "%s グループのつぶやきフィード (Atom)"
 msgid "FOAF for %s group"
 msgstr "%s グループの FOAF"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "メンバー"
 
@@ -3840,14 +3786,6 @@ msgstr "有効な連絡用メールアドレスがなければなりません。
 msgid "Unknown language \"%s\"."
 msgstr "不明な言語 \"%s\""
 
-#: actions/siteadminpanel.php:165
-msgid "Minimum text limit is 0 (unlimited)."
-msgstr ""
-
-#: actions/siteadminpanel.php:171
-msgid "Dupe limit must be one or more seconds."
-msgstr ""
-
 #: actions/siteadminpanel.php:221
 msgid "General"
 msgstr "一般"
@@ -4069,7 +4007,7 @@ msgstr "コードが入力されていません"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "スナップショット"
 
@@ -4499,10 +4437,6 @@ msgstr ""
 "あなたのプロフィールがバックグラウンド画像とあなたの選択の色のパレットで見る"
 "方法をカスタマイズしてください。"
 
-#: actions/userdesignsettings.php:282
-msgid "Enjoy your hotdog!"
-msgstr ""
-
 #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
 #: actions/usergroups.php:66
 #, php-format
@@ -4599,15 +4533,6 @@ msgstr ""
 msgid "Robin thinks something is impossible."
 msgstr ""
 
-#. TRANS: Message given if an upload is larger than the configured maximum.
-#. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
-#: classes/File.php:190
-#, php-format
-msgid ""
-"No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
-"Try to upload a smaller version."
-msgstr ""
-
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
 #: classes/File.php:202
@@ -4717,15 +4642,22 @@ msgid "Problem saving notice."
 msgstr "つぶやきを保存する際に問題が発生しました。"
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "グループ受信箱を保存する際に問題が発生しました。"
 
+#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
+#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
+#: classes/Notice.php:1759
+#, php-format
+msgid "RT @%1$s %2$s"
+msgstr ""
+
 #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
 #: classes/Profile.php:737
@@ -4746,7 +4678,7 @@ msgid "Unable to save tag."
 msgstr "タグをを保存できません。"
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "あなたはフォローが禁止されました。"
 
@@ -4853,12 +4785,6 @@ msgstr "名称未設定ページ"
 msgid "Primary site navigation"
 msgstr "プライマリサイトナビゲーション"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
@@ -4914,7 +4840,7 @@ msgstr "もっとグループを検索"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "サイトつぶやき"
 
@@ -4977,22 +4903,17 @@ msgstr "バッジ"
 msgid "StatusNet software license"
 msgstr "StatusNet ソフトウェアライセンス"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** はマイクロブログサービスです。"
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5004,49 +4925,50 @@ msgstr ""
 "org/licensing/licenses/agpl-3.0.html)。"
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "サイト内容ライセンス"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "ページ化"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "<<後"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "前>>"
 
@@ -5055,177 +4977,211 @@ msgstr "前>>"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "あなたはこのサイトへの変更を行うことができません。"
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "そのパネルへの変更は許可されていません。"
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() は実装されていません。"
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() は実装されていません。"
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "デザイン設定を削除できません。"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "基本サイト設定"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "デザイン設定"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "ユーザ設定"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "ユーザ"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "アクセス設定"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "パス設定"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "セッション設定"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "APIリソースは読み書きアクセスが必要です、しかしあなたは読みアクセスしか持って"
 "いません。"
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "アプリケーション編集"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "このアプリケーションのアイコン"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "あなたのアプリケーションを %d 字以内記述"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "あなたのアプリケーションを記述"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "このアプリケーションのホームページの URL"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "ソース URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "このアプリケーションに責任がある組織"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "組織のホームページのURL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "認証の後にリダイレクトするURL"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "ブラウザ"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "デスクトップ"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "アプリケーション、ブラウザ、またはデスクトップのタイプ"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "リードオンリー"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "リードライト"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "このアプリケーションのためのデフォルトアクセス: リードオンリー、またはリード"
 "ライト"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "中止"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "回復"
@@ -5245,11 +5201,13 @@ msgstr "作者"
 msgid "Provider"
 msgstr "プロバイダ"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "この添付が現れるつぶやき"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "この添付のタグ"
 
@@ -5261,6 +5219,11 @@ msgstr "パスワード変更に失敗しました"
 msgid "Password changing is not allowed"
 msgstr "パスワード変更は許可されていません"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "ブロック"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "コマンド結果"
@@ -5273,6 +5236,13 @@ msgstr "コマンド完了"
 msgid "Command failed"
 msgstr "コマンド失敗"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5303,6 +5273,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "お気に入りにされているつぶやき。"
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5359,15 +5343,18 @@ msgstr "つぶやき繰り返しエラー"
 msgid "Error saving notice."
 msgstr "つぶやき保存エラー。"
 
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -5396,11 +5383,6 @@ msgstr "通知オン。"
 msgid "Can't turn on notification."
 msgstr "通知をオンできません。"
 
-#. TRANS: Error text shown when issuing the login command while login is disabled.
-#: lib/command.php:771
-msgid "Login command is disabled."
-msgstr ""
-
 #. TRANS: Text shown after issuing the login command successfully.
 #. TRANS: %s is a logon link..
 #: lib/command.php:784
@@ -5408,13 +5390,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "あなたはだれにもフォローされていません。"
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5428,7 +5417,7 @@ msgid "No one is subscribed to you."
 msgstr "誰もフォローしていません。"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5442,13 +5431,14 @@ msgid "You are not a member of any groups."
 msgstr "あなたはどのグループのメンバーでもありません。"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "あなたはこのグループのメンバーではありません:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5632,37 +5622,77 @@ msgstr "グループの場所, 例えば \"都市, 都道府県 (または 地
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr "グループのエクストラニックネーム、カンマまたはスペース区切り、最大 %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "グループ"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "ブロック"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s ブロックユーザ"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "%s グループプロパティを編集"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "ロゴ"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "%s ロゴの追加や編集"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "%s デザインの追加や編集"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5695,7 +5725,8 @@ msgstr "ファイルが大きすぎます。最大ファイルサイズは %s 
 msgid "Partial upload."
 msgstr "不完全なアップロード。"
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "ファイルのアップロードでシステムエラー"
 
@@ -5793,22 +5824,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/mail.php:274
 #, php-format
@@ -5821,20 +5836,6 @@ msgstr "自己紹介: %s"
 msgid "New email address for posting to %s"
 msgstr "%s へ投稿のための新しいメールアドレス"
 
-#. TRANS: Body of notification mail for new posting email address
-#: lib/mail.php:308
-#, php-format
-msgid ""
-"You have a new posting address on %1$s.\n"
-"\n"
-"Send email to %2$s to post new messages.\n"
-"\n"
-"More email instructions at %3$s.\n"
-"\n"
-"Faithfully yours,\n"
-"%4$s"
-msgstr ""
-
 #. TRANS: Subject line for SMS-by-email notification messages
 #: lib/mail.php:433
 #, php-format
@@ -5852,77 +5853,18 @@ msgstr "SMS確認"
 msgid "You've been nudged by %s"
 msgstr "あなたは %s に合図されています"
 
-#. TRANS: Body for 'nudge' notification email
-#: lib/mail.php:489
-#, 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 ""
-
 #. TRANS: Subject for direct-message notification email
 #: lib/mail.php:536
 #, php-format
 msgid "New private message from %s"
 msgstr "%s からの新しいプライベートメッセージ"
 
-#. TRANS: Body for direct-message notification email
-#: lib/mail.php:541
-#, 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 ""
-
 #. TRANS: Subject for favorite notification email
 #: lib/mail.php:589
 #, php-format
 msgid "%s (@%s) added your notice as a favorite"
 msgstr "%s (@%s) はお気に入りとしてあなたのつぶやきを加えました"
 
-#. TRANS: Body for favorite notification email
-#: lib/mail.php:592
-#, php-format
-msgid ""
-"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n"
-"\n"
-"The URL of your notice is:\n"
-"\n"
-"%3$s\n"
-"\n"
-"The text of your notice is:\n"
-"\n"
-"%4$s\n"
-"\n"
-"You can see the list of %1$s's favorites here:\n"
-"\n"
-"%5$s\n"
-"\n"
-"Faithfully yours,\n"
-"%6$s\n"
-msgstr ""
-
 #. TRANS: Line in @-reply notification e-mail. %s is conversation URL.
 #: lib/mail.php:651
 #, php-format
@@ -6003,19 +5945,22 @@ msgstr "すみません、入ってくるメールは許可されていません
 msgid "Unsupported message type: %s"
 msgstr "サポート外のメッセージタイプ: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "データベースエラーがあなたのファイルを保存しているときにありました。 再試行し"
 "てください。"
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "アップロードされたファイルは php.ini の upload_max_filesize ディレクティブを"
 "超えています。"
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6023,43 +5968,59 @@ msgstr ""
 "アップロードされたファイルはHTMLフォームで指定された MAX_FILE_SIZE ディレク"
 "ティブを超えています。"
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "アップロードされたファイルは部分的にアップロードされていただけです。"
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "一時フォルダを失いました。"
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "ディスクへのファイル書き込みに失敗しました。"
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "エクステンションによってファイルアップロードを中止しました。"
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "ファイルはユーザの割当てを超えています。"
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "ファイルを目的ディレクトリに動かすことができませんでした。"
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "ファイルのMIMEタイプを決定できません。"
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "別の %s フォーマットを試してください。"
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s はこのサーバのサポートしているファイルタイプではありません。"
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6073,11 +6034,6 @@ msgstr "To"
 msgid "Available characters"
 msgstr "利用可能な文字"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "つぶやきを送る"
@@ -6111,21 +6067,6 @@ msgstr ""
 "すみません、あなたの位置を検索するのが予想より長くかかっています、後でもう一"
 "度試みてください"
 
-#. TRANS: Used in coordinates as abbreviation of south
-#: lib/noticelist.php:438
-msgid "S"
-msgstr ""
-
-#. TRANS: Used in coordinates as abbreviation of east
-#: lib/noticelist.php:440
-msgid "E"
-msgstr ""
-
-#. TRANS: Used in coordinates as abbreviation of west
-#: lib/noticelist.php:442
-msgid "W"
-msgstr ""
-
 #: lib/noticelist.php:444
 #, php-format
 msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
@@ -6172,26 +6113,23 @@ msgid "Send a nudge to this user"
 msgstr "このユーザへ合図を送る"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "プロファイル追加エラー"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "アバター追加エラー"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "リモートプロファイル更新エラー"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "リモートプロファイル追加エラー"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "重複したつぶやき"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "サブスクリプションを追加できません"
 
@@ -6228,7 +6166,8 @@ msgstr "あなたが送ったメッセージ"
 msgid "Tags in %s's notices"
 msgstr "%s のつぶやきのタグ"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "不明"
 
@@ -6317,19 +6256,24 @@ msgstr "サンドボックス"
 msgid "Sandbox this user"
 msgstr "このユーザをサンドボックス"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "サイト検索"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "キーワード"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "検索"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "ヘルプ検索"
 
@@ -6499,66 +6443,61 @@ msgstr "この利用者にダイレクトメッセージを送る"
 msgid "Message"
 msgstr "メッセージ"
 
-#: lib/userprofile.php:326
-msgid "Moderate"
-msgstr ""
-
-#: lib/userprofile.php:367
-msgctxt "role"
-msgid "Moderator"
-msgstr ""
-
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "数秒前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "約 1 分前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "約 %d 分前"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "約 1 時間前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "約 %d 時間前"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "約 1 日前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "約 %d 日前"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "約 1 ヵ月前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "約 %d ヵ月前"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "約 1 年前"
 
index 4f47a57fe6ccb3466ede1a9d83e4113cb1dbcdd8..a76101d6cdfda68646dc81ca375c07b33c2540a3 100644 (file)
@@ -1,27 +1,29 @@
-# Translation of StatusNet to Georgian
+# Translation of StatusNet - Core to Georgian (ქართული)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Zaal
-# --
+# Author: Zaal
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:45+0000\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:04+0000\n"
+"Language-Team: Georgian <http://translatewiki.net/wiki/Portal:ka>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ka\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "შესვლა"
 
@@ -74,10 +76,10 @@ msgstr "შეინახე შესვლის პარამეტრე
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "შეინახე"
@@ -90,15 +92,15 @@ msgstr "ასეთი გვერდი არ არსებობს."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -165,6 +167,14 @@ msgstr ""
 " გახდი მეტი მომხმარებლის მიმდევარი, [გაწევრიანდი ჯგუფში](%%action.groups%%) "
 "ან თავად დაპოსტე რამე."
 
+#. TRANS: %1$s is user nickname, %2$s is user nickname, %2$s is user nickname prefixed with "@"
+#: actions/all.php:146
+#, php-format
+msgid ""
+"You can try to [nudge %1$s](../%2$s) from their profile or [post something "
+"to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
+msgstr ""
+
 #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
 #, php-format
 msgid ""
@@ -188,16 +198,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr " %1$s და მეგობრების განახლებები %2$s-ზე!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -212,21 +222,23 @@ msgstr " %1$s და მეგობრების განახლებე
 msgid "API method not found."
 msgstr "API მეთოდი ვერ მოიძებნა."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "ეს მეთოდი მოითხოვს POST-ს."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -234,27 +246,27 @@ msgstr ""
 "აუცილებელია პარამეტრ 'device'-ს მიუთითოთ შემდეგი მნიშვნელობებიდან ერთერთი: "
 "sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "მომხმარებლის განახლება ვერ მოხერხდა."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "მომხმარებელს პროფილი არ გააჩნია."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "პროფილის შენახვა ვერ მოხერხდა."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -266,30 +278,30 @@ msgstr ""
 "სამწუხაროდ სერვერმა ვერ გაუძლო ამდენ POST მონაცემებს (%s ბაიტი) მიმდინარე "
 "კონფიგურაციის გამო."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "სამწუხაროდ თქვენი დიზაინის პარამეტრების შენახვა ვერ მოხერხდა."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "დიზაინის განახლება ვერ მოხერხდა."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "საკუთარი თავის დაბლოკვა შეუძლებელია."
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "მომხმარებლის დაბლოკვა ვერ მოხერხდა."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "ვერ მოხერხდა მომხმარებელზე ბლოკის მოხსნა."
 
@@ -313,59 +325,59 @@ msgstr "%s-სთვის გაგზავნილი პირდაპი
 msgid "All the direct messages sent to %s"
 msgstr "%s-სთვის გაგზავნილი ყველა პირდაპირი შეტყობინება"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "შეტყობინების ტექსტი არ არის!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "ეს ძალიან გრძელია. შეტყობინებაში დასაშვებია %d სიმბოლო."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "მიმღები მომხმარებელი ვერ მოიძებნა."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "ვერ გაუგზავნი პირდაპირ შეტყობინებას იმას, ვისთანაც არ მეგობრობ."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "სტატუსი ასეთი ID-თ ვერ მოიძებნა."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "ეს სტატუსი უკვე ფავორიტია."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "ფავორიტის შექმნა ვერ მოხერხდა."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "ეს სტატუსი არა არის ფავორიტი."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "ფავორიტის წაშლა ვერ მოხერხდა."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "ამ მომხმარებლის მიმდევარი ვერ გახდებით, რადგან პროფილი ვერ მოიძებნა"
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "თქვენ უკვე ხართ %s-ის მიმდევარი."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "მომხმარებლის ჩამოშორება ვერ მოხერხდა. მომხმარებელი ვერ მოიძებნა."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "საკუთარი თავის ჩამოშორება შეუძლებელია."
 
@@ -381,90 +393,101 @@ msgstr "ავტორი მომხმარებლის განსა
 msgid "Could not find target user."
 msgstr "სასურველი მომხმარებელი ვერ მოიძებნა."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "მეტსახელში დასაშვებია მხოლოდ პატარა ასოები და ციფრები."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "მეტსახელი უკვე გამოყენებულია. სცადე სხვა."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "მეტსახელი არასწორია."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "სასტარტო გვერდი არასწორი URL-ია."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "სრული სახელი ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "აღწერა ძალიან გრძელია (არაუმეტეს %d სიმბოლო)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "ადგილმდებარეობა ძალიან გრძელია (არაუმეტეს 255 სიმბოლო)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:268
+#, php-format
+msgid "Invalid alias: \"%s\"."
+msgstr ""
+
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
+#: actions/newgroup.php:172
+#, php-format
+msgid "Alias \"%s\" already in use. Try another one."
+msgstr ""
+
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "ჯგუფი ვერ მოიძებნა."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "თქვენ უკვე ხართ ამ ჯგუფის წევრი."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "თქვენ დაბლოკილი ხართ ამ ჯგუფიდან ადმინისტრატორის მიერ."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "ვერ მოხერხდა მომხმარებელ %1$s-სთან ერთად ჯგუფ %2$s-ში გაერთიანება."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "თვენ არ ხართ ამ ჯგუფის წევრი."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -494,7 +517,7 @@ msgstr "%s ჯგუფები"
 msgid "groups on %s"
 msgstr "ჯგუფები %s-ზე"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "ატვირთვა ვერ მოხერხდა."
 
@@ -502,11 +525,15 @@ msgstr "ატვირთვა ვერ მოხერხდა."
 msgid "No oauth_token parameter provided."
 msgstr "oauth_token პარამეტრი არ არის მოწოდებული."
 
+#: actions/apioauthauthorize.php:106
+msgid "Invalid token."
+msgstr ""
+
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -544,6 +571,18 @@ msgstr ""
 msgid "The request token %s has been denied and revoked."
 msgstr ""
 
+#. TRANS: Message given submitting a form with an unknown action in e-mail settings.
+#. TRANS: Message given submitting a form with an unknown action in IM settings.
+#. TRANS: Message given submitting a form with an unknown action in SMS settings.
+#: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
+#: actions/designadminpanel.php:104 actions/editapplication.php:139
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
+#: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
+#: actions/smssettings.php:277 lib/designsettings.php:304
+msgid "Unexpected form submission."
+msgstr ""
+
 #: actions/apioauthauthorize.php:259
 msgid "An application would like to connect to your account"
 msgstr "აპლიკაციას უნდა რომ დაუკავშირდეს თქვენს ანგარიშს"
@@ -599,18 +638,18 @@ msgstr "ეს მეთოდი მოითხოვს POST-ს ან DELET
 msgid "You may not delete another user's status."
 msgstr "სხვა მომხმარებლის სტატუსის წაშლა არ შეგიძლიათ."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "ასეთი შეტყობინება არ არსებობს."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "საკუთარი შეტყობინების გამეორება არ შეიძლება."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "ეს შეტყობინება უკვე გამეორებულია."
 
@@ -622,21 +661,21 @@ msgstr "სტატუსი წაშლილია."
 msgid "No status with that ID found."
 msgstr "ასეთი ID-ს სტატუსი ვერ მოიძებნა."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "შეტყობინების დასაძვები ზომაა %d სიმბოლო."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "ვერ მოიძებნა."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "შეყობინების დასაშვები ზომაა %d სიმბოლო მიმაგრებული URL-ის ჩათვლით."
@@ -645,6 +684,21 @@ msgstr "შეყობინების დასაშვები ზომ
 msgid "Unsupported format."
 msgstr "ფორმატი არ არის მხარდაჭერილი."
 
+#: actions/apitimelinefavorites.php:110
+#, php-format
+msgid "%1$s / Favorites from %2$s"
+msgstr ""
+
+#: actions/apitimelinefavorites.php:119
+#, php-format
+msgid "%1$s updates favorited by %2$s / %2$s."
+msgstr ""
+
+#: actions/apitimelinementions.php:118
+#, php-format
+msgid "%1$s / Updates mentioning %2$s"
+msgstr ""
+
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
@@ -660,6 +714,16 @@ msgstr "%s საჯარო ნაკადი"
 msgid "%s updates from everyone!"
 msgstr "%s განახლებები ყველასგან!"
 
+#: actions/apitimelineretweetedtome.php:111
+#, php-format
+msgid "Repeated to %s"
+msgstr ""
+
+#: actions/apitimelineretweetsofme.php:114
+#, php-format
+msgid "Repeats of %s"
+msgstr ""
+
 #: actions/apitimelinetag.php:105 actions/tag.php:67
 #, php-format
 msgid "Notices tagged with %s"
@@ -771,6 +835,13 @@ msgstr "თქვენ უკვე დაბლოკეთ ეს მომ
 msgid "Block user"
 msgstr "მომხმარებლის დაბლოკვა"
 
+#: actions/block.php:138
+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 ""
+
 #. TRANS: Button label on the user block form.
 #. TRANS: Button label on the delete application form.
 #. TRANS: Button label on the delete notice form.
@@ -802,7 +873,9 @@ msgid "Yes"
 msgstr "დიახ"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "დაბლოკე ეს მომხმარებელი"
 
@@ -844,11 +917,13 @@ msgstr "ამ ჯგუფში გაწევრიანებისგა
 msgid "Unblock user from group"
 msgstr "მომხმარებლის ბლოკირების მოხსნა ჯგუფიდან"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "ბლოკირების მოხსნა"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "მომხმარებლის ბლოკირების მოხსნა"
 
@@ -887,9 +962,9 @@ msgstr "ეს მისამართი უკვე დადასტურ
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -897,7 +972,7 @@ msgstr "მომხმარებლის განახლება ვე
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "ელ. ფოსტის დადასტურების წაშლა ვერ მოხერხდა."
@@ -933,9 +1008,10 @@ msgstr "აპლიკაცია ვერ მოიძებნა."
 msgid "You are not the owner of this application."
 msgstr "თქვენ არ ხართ ამ აპლიკაციის მფლობელი."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -968,7 +1044,7 @@ msgstr "აპლიკაციის წაშლა"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "ავტორიზებული არ ხართ."
@@ -1029,7 +1105,6 @@ msgstr "ამ მომხმარებლის წაშლა"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "ამ მომხმარებლის წაშლა"
 
@@ -1151,13 +1226,13 @@ msgstr "დააბრუნე პირვანდელი დიზაი
 msgid "Reset back to default"
 msgstr "პირვანდელის პარამეტრების დაბრუნება"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "შენახვა"
@@ -1232,6 +1307,14 @@ msgstr "ორგანიზაცია ძალიან გრძელი
 msgid "Organization homepage is required."
 msgstr "ორგანიზაციის ვებ. გვერდი სავალდებულოა."
 
+#: actions/editapplication.php:218 actions/newapplication.php:206
+msgid "Callback is too long."
+msgstr ""
+
+#: actions/editapplication.php:225 actions/newapplication.php:215
+msgid "Callback URL is not valid."
+msgstr ""
+
 #: actions/editapplication.php:258
 msgid "Could not update application."
 msgstr "აპლიკაციის განახლება ვერ მოხერხდა."
@@ -1259,10 +1342,20 @@ msgstr "ჯგუფის რედაქტირებისათვის 
 msgid "description is too long (max %d chars)."
 msgstr "აღწერა ძალიან გრძელია (არაუმეტეს %d სიმბოლო)."
 
+#: actions/editgroup.php:228 actions/newgroup.php:168
+#, php-format
+msgid "Invalid alias: \"%s\""
+msgstr ""
+
 #: actions/editgroup.php:258
 msgid "Could not update group."
 msgstr "ჯგუფის განახლება ვერ მოხერხდა."
 
+#. TRANS: Server exception thrown when creating group aliases failed.
+#: actions/editgroup.php:264 classes/User_group.php:514
+msgid "Could not create aliases."
+msgstr ""
+
 #: actions/editgroup.php:280
 msgid "Options saved."
 msgstr "პარამეტრები შენახულია."
@@ -1295,7 +1388,7 @@ msgstr "მიმდინარე დადასტურებული ე
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1313,22 +1406,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "გაუქმება"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "ელ. ფოსტის მისამართი, როგორც \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1336,107 +1433,112 @@ msgstr "დამატება"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "შემომავალი ელ. ფოსტა"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "გააგზავნე ელ. ფოსტა ამ მისამართზე ახალი შეტყობინებების დასაპოსტად."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "ახალი"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "ელ. ფოსტის პარამეტრები"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 "გამომიგზავნე შეტყობინებები ახალი გამოწერების შესახებ ელ. ფოსტის საშუალებით."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "გამომიგზავნე ელ. წერილი როდესაც ვინმე ჩემს შეტყობინებას რჩეულებში დაიმატებს."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "გამომიგზავნე ელ. წერილი როდესაც ვინმე პირად შეტყობინებას მომწერს."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "გამომიგზავნე წერილი როდესაც ვინმე გამომიგზავნის \"@-პასუხს\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "მინდა დავპოსტო შეტყობინებები ელ. ფოსტით."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "გამოაქვეყნე MicroID ჩემი ელ. ფოსტის მისამართისთვის."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "ელ. ფოსტის პარამეტრები შენახულია."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr " ელ. ფოსტის მისამართი მითითებული არ არის."
 
+#. TRANS: Message given saving e-mail address that cannot be normalised.
+#: actions/emailsettings.php:365
+msgid "Cannot normalize that email address"
+msgstr ""
+
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "არასწორი ელ. ფოსტის მისამართი."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "ეს უკვე არის თქვენი ელ. ფოსტის მისამართი."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "ეს ელ. ფოსტის მისამართი დაკავებულია."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "დასტურის კოდის ჩასმა ვერ მოხერხდა."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1448,50 +1550,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "გასაუქმებელიარაფერია. არ არის მომლოდინე დასტური."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "ეს არასწორი ელ. ფოსტის მისამართია."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "ელ. ფოსტის დადასტურება გაუქმებულია."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "ეს არ არის თქვენი ელ. ფოსტის მისამართი."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "ელ. ფოსტის მისამართი მოშორებულია."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "შემომავალი ელ. ფოსტის მისამართი არ არის."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "მომხმარებლის ჩანაწერის განახლება ვერ მოხერხდა."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "შემომავალი ელ. ფოსტის მისამართი მოშორებულია."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "დამატებულია ახალი შემომავალი ელ. ფოსტა."
 
@@ -1609,7 +1711,7 @@ msgstr ""
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "დაშორებული სერვისი OMB პროტოკოლის უცნობ ვერსიას იყენებს."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "შეცდომა დაშორებული პროფილის განახლებისას."
 
@@ -1666,7 +1768,7 @@ msgstr "მომხმარებელი უკვე გარიცხუ
 msgid "User is not a member of group."
 msgstr "მომხმარებელი არ არის ჯგუფის წევრი."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "მომხმარებლის გარიცხვა ჯგუფიდან."
 
@@ -1747,39 +1849,49 @@ msgstr "ლოგო განახლდა."
 msgid "Failed updating logo."
 msgstr "ლოგოს განახლება ვერ მოხერხდა."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s ჯგუფის წევრი"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s ჯგუფის წევრი, გვერდი %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "ამ ჯგუფის წევრების სია."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "ადმინი"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "ბლოკირება"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "მიანიჭე მომხმარებელს ჯგუფის ადმინობა"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "მიანიჭე ადმინობა"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "მიანიჭე ამ მომხმარებელს ადმინობა"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1919,7 +2031,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1929,64 +2044,64 @@ msgstr ""
 "დარწმუნდით, რომ დაიმატეთ %s მეგობრების სიაში თქვენს IM კლიენტში ან GTalk-ში."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM პარამეტრები"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "გამომიგზავნე შეტყობინებები  Jabber/GTalk-ის მეშვეობით."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "დაპოსტე შეტყობინება, როდესაც ჩემი Jabber/GTalk სტატუსი შეიცვლება."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "გამომიგზავნე პასუხები Jabber/GTalk-ით ხალხისგან, რომლთა მიმდევარი არ ვარ."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "გამოაქვეყნე  MicroID ჩემი Jabber/GTalk მისამართისთვის."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "პარამეტრები შენახულია."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Jabber ID უცნობია."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Jabber ID-ს ნორმალიზაცია ვერ ხერხდება"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "არასწორი Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "ეს უკვე არის თქვენი Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID უკვე ეკუთვნის სხვა მომხმარებელს."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1996,28 +2111,28 @@ msgstr ""
 "s-ს გამოგიგზავნოთ შეტყობინებები."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "ეს არასწორი IM მისამართია."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "IM დასტურის წაშლა ვერ მოხერხდა."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM დასტური გაუქმდა."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "ეს არ არის თქვენი Jabber ID"
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "IM მისამართი მოშორებულია."
 
@@ -2217,6 +2332,10 @@ msgstr "უკვე ავტორიზირებული ხართ."
 msgid "Incorrect username or password."
 msgstr "არასწორი მომხმარებლის სახელი ან პაროლი."
 
+#: actions/login.php:154 actions/otp.php:120
+msgid "Error setting user. You are probably not authorized."
+msgstr ""
+
 #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79
 msgid "Login"
 msgstr "შესვლა"
@@ -2407,6 +2526,14 @@ msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
 
+#: actions/nudge.php:94
+msgid "Nudge sent"
+msgstr ""
+
+#: actions/nudge.php:97
+msgid "Nudge sent!"
+msgstr ""
+
 #: actions/oauthappssettings.php:59
 msgid "You must be logged in to list your applications."
 msgstr "თქვენი აპლიკაციების სიის სანახავად საჭიროა ავროტიზაცია."
@@ -2473,8 +2600,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "გთხოვთ გამოიყენოთ მხოლოდ %s URL–ები წმინდა HTTP მეთოდით."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "მონაცემთა ფორმატი მხარდაჭერილი არ არის."
 
@@ -2522,10 +2649,22 @@ msgstr "URL–ს შემოკლების სერვისი ძალ
 msgid "No user ID specified."
 msgstr "მომხმარებლის ID მითითებული არ არის."
 
+#: actions/otp.php:83
+msgid "No login token specified."
+msgstr ""
+
 #: actions/otp.php:90
 msgid "No login token requested."
 msgstr ""
 
+#: actions/otp.php:95
+msgid "Invalid login token specified."
+msgstr ""
+
+#: actions/otp.php:104
+msgid "Login token expired."
+msgstr ""
+
 #: actions/outbox.php:58
 #, php-format
 msgid "Outbox for %1$s - page %2$d"
@@ -2604,7 +2743,7 @@ msgid "Password saved."
 msgstr "პაროლი შენახულია."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "გზები"
 
@@ -2627,6 +2766,11 @@ msgstr "ავატარის დირექტორია არ არი
 msgid "Background directory not writable: %s."
 msgstr "ფონის დირექტორია არ არის ჩაწერადი: %s."
 
+#: actions/pathsadminpanel.php:177
+#, php-format
+msgid "Locales directory not readable: %s."
+msgstr ""
+
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr "არასწორი SSL სერვერი. მაქსიმალური სიგრძე არის 255 სიმბოლო."
@@ -2812,7 +2956,7 @@ msgstr "სრული სახელი"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "ვებ. გვერსი"
 
@@ -2918,7 +3062,7 @@ msgid "Couldn't save tags."
 msgstr "სანიშნეების შენახვა ვერ მოხერხდა."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "პარამეტრები შენახულია."
 
@@ -3394,6 +3538,11 @@ msgstr ""
 msgid "Replies feed for %s (RSS 2.0)"
 msgstr ""
 
+#: actions/replies.php:159
+#, php-format
+msgid "Replies feed for %s (Atom)"
+msgstr ""
+
 #: actions/replies.php:199
 #, php-format
 msgid ""
@@ -3412,6 +3561,13 @@ msgstr ""
 "თქვენ შეგიძლიათ ჩაერთოთ საუბარში სხვა მომხმარებლებთან ერთად, გამოიწეროთ მეტი "
 "პიროვნებების განახლებები, ან [გაწევრიანდეთ ჯგუფში](%%action.groups%%)."
 
+#: actions/replies.php:206
+#, php-format
+msgid ""
+"You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
+"newnotice%%%%?status_textarea=%3$s)."
+msgstr ""
+
 #: actions/repliesrss.php:72
 #, php-format
 msgid "Replies to %1$s on %2$s!"
@@ -3439,7 +3595,7 @@ msgstr "მომხმარებელი უკვე იზოლირე
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "სესიები"
 
@@ -3477,24 +3633,24 @@ msgid "Application profile"
 msgstr "აპლიკაციის პროფილი"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "დასახელება"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "ორგანიზაცია"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "აღწერა"
 
@@ -3593,15 +3749,50 @@ msgid ""
 "would add to their favorites :)"
 msgstr ""
 
+#: actions/showfavorites.php:212
+#, php-format
+msgid ""
+"%s hasn't added any favorite notices yet. Why not [register an account](%%%%"
+"action.register%%%%) and then post something interesting they would add to "
+"their favorites :)"
+msgstr ""
+
 #: actions/showfavorites.php:243
 msgid "This is a way to share what you like."
 msgstr ""
 
+#: actions/showgroup.php:82
+#, php-format
+msgid "%s group"
+msgstr ""
+
+#: actions/showgroup.php:84
+#, php-format
+msgid "%1$s group, page %2$d"
+msgstr ""
+
+#: actions/showgroup.php:227
+msgid "Group profile"
+msgstr ""
+
 #: actions/showgroup.php:272 actions/tagother.php:118
 #: actions/userauthorization.php:175 lib/userprofile.php:178
 msgid "URL"
 msgstr ""
 
+#: actions/showgroup.php:283 actions/tagother.php:128
+#: actions/userauthorization.php:187 lib/userprofile.php:195
+msgid "Note"
+msgstr "შენიშვნა"
+
+#: actions/showgroup.php:293 lib/groupeditform.php:184
+msgid "Aliases"
+msgstr ""
+
+#: actions/showgroup.php:302
+msgid "Group actions"
+msgstr ""
+
 #: actions/showgroup.php:338
 #, php-format
 msgid "Notice feed for %s group (RSS 1.0)"
@@ -3617,24 +3808,84 @@ msgstr ""
 msgid "Notice feed for %s group (Atom)"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
-msgid "Members"
+#: actions/showgroup.php:355
+#, php-format
+msgid "FOAF for %s group"
 msgstr ""
 
+#: actions/showgroup.php:393 actions/showgroup.php:445
+msgid "Members"
+msgstr "წევრები"
+
 #: actions/showgroup.php:398 lib/profileaction.php:117
 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
 msgid "(None)"
-msgstr ""
+msgstr "(არცერთი)"
 
 #: actions/showgroup.php:404
 msgid "All members"
 msgstr ""
 
+#: actions/showgroup.php:439
+msgid "Created"
+msgstr "შექმნილია"
+
+#: actions/showgroup.php:455
+#, 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 "
+"[StatusNet](http://status.net/) 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 ""
+
+#: actions/showgroup.php:461
+#, 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 "
+"[StatusNet](http://status.net/) tool. Its members share short messages about "
+"their life and interests. "
+msgstr ""
+
+#: actions/showgroup.php:489
+msgid "Admins"
+msgstr ""
+
+#: actions/showmessage.php:81
+msgid "No such message."
+msgstr ""
+
 #: actions/showmessage.php:98
 msgid "Only the sender and recipient may read this message."
 msgstr ""
 
+#: actions/showmessage.php:108
+#, php-format
+msgid "Message to %1$s on %2$s"
+msgstr ""
+
+#: actions/showmessage.php:113
+#, php-format
+msgid "Message from %1$s on %2$s"
+msgstr ""
+
+#: actions/shownotice.php:90
+msgid "Notice deleted."
+msgstr ""
+
+#: actions/showstream.php:73
+#, php-format
+msgid " tagged %s"
+msgstr ""
+
+#: actions/showstream.php:79
+#, php-format
+msgid "%1$s, page %2$d"
+msgstr ""
+
 #: actions/showstream.php:122
 #, php-format
 msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
@@ -3655,12 +3906,51 @@ msgstr ""
 msgid "Notice feed for %s (Atom)"
 msgstr ""
 
+#: actions/showstream.php:148
+#, php-format
+msgid "FOAF for %s"
+msgstr ""
+
+#: actions/showstream.php:200
+#, php-format
+msgid "This is the timeline for %1$s but %2$s hasn't posted anything yet."
+msgstr ""
+
 #: actions/showstream.php:205
 msgid ""
 "Seen anything interesting recently? You haven't posted any notices yet, now "
 "would be a good time to start :)"
 msgstr ""
 
+#: actions/showstream.php:207
+#, php-format
+msgid ""
+"You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
+"%?status_textarea=%2$s)."
+msgstr ""
+
+#: actions/showstream.php:243
+#, 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 "
+"[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to "
+"follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
+msgstr ""
+
+#: actions/showstream.php:248
+#, 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 "
+"[StatusNet](http://status.net/) tool. "
+msgstr ""
+
+#: actions/showstream.php:305
+#, php-format
+msgid "Repeat of %s"
+msgstr ""
+
 #: actions/silence.php:65 actions/unsilence.php:65
 msgid "You cannot silence users on this site."
 msgstr "თქვენ ვერ შეძლებთ მომხმარებლების დადუმებას ამ საიტზე."
@@ -3716,7 +4006,7 @@ msgstr "ტექსტი გამოყენებული თითოე
 
 #: actions/siteadminpanel.php:234
 msgid "Brought by URL"
-msgstr ""
+msgstr "მომწოდებლის URL"
 
 #: actions/siteadminpanel.php:235
 msgid "URL used for credits link in footer of each page"
@@ -3758,6 +4048,10 @@ msgstr "ტექსტის ზღვარი"
 msgid "Maximum number of characters for notices."
 msgstr "შეტყობინების სიმბოლოთა მაქსიმალური რაოდენობა."
 
+#: actions/siteadminpanel.php:278
+msgid "Dupe limit"
+msgstr ""
+
 #: actions/siteadminpanel.php:278
 msgid "How long users must wait (in seconds) to post the same thing again."
 msgstr ""
@@ -3785,22 +4079,76 @@ msgstr "საიტის შეტყობინების ტექსტ
 
 #: actions/sitenoticeadminpanel.php:178
 msgid "Site-wide notice text (255 chars max; HTML okay)"
+msgstr "საერთო სასაიტო შეტყობინების ტექსტი (მაქს. 255 სიმბოლო; HTML შეიძლება)"
+
+#: actions/sitenoticeadminpanel.php:198
+msgid "Save site notice"
+msgstr "შეინახე საერთოსასაიტო შეტყობინება"
+
+#. TRANS: Title for SMS settings.
+#: actions/smssettings.php:59
+msgid "SMS settings"
+msgstr "SMS პარამეტრები"
+
+#. TRANS: SMS settings page instructions.
+#. TRANS: %%site.name%% is the name of the site.
+#: actions/smssettings.php:74
+#, php-format
+msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr ""
+"თქვენ შეგიძლიათ მიიღოთ SMS შეტყობინებები %%site.name%%-სგან ელ. ფოსტის "
+"საშუალებით."
+
+#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
+#: actions/smssettings.php:97
+msgid "SMS is not available."
+msgstr "SMS არ არის ხელმისაწვდომი."
+
+#. TRANS: Form legend for SMS settings form.
+#: actions/smssettings.php:111
+msgid "SMS address"
+msgstr "SMS მისამართი"
+
+#. TRANS: Form guide in SMS settings form.
+#: actions/smssettings.php:120
+msgid "Current confirmed SMS-enabled phone number."
+msgstr "მიმდინარე დადასტურებული SMS გააქტიურებული ტელ. ნომერი."
 
 #. TRANS: Form guide in IM settings form.
 #: actions/smssettings.php:133
 msgid "Awaiting confirmation on this phone number."
-msgstr ""
+msgstr "ამ ტელ. ნომრის დასტური მოლოდინშია."
+
+#. TRANS: Field label for SMS address input in SMS settings form.
+#: actions/smssettings.php:142
+msgid "Confirmation code"
+msgstr "დასტურის კოდი"
 
 #. TRANS: Form field instructions in SMS settings form.
 #: actions/smssettings.php:144
 msgid "Enter the code you received on your phone."
-msgstr ""
+msgstr "შეიყვანეთ კოდი, რომელიც მიიღეთ თქვენს ტელეფონზე."
+
+#. TRANS: Button label to confirm SMS confirmation code in SMS settings.
+#: actions/smssettings.php:148
+msgctxt "BUTTON"
+msgid "Confirm"
+msgstr "დასტური"
 
 #. TRANS: Field label for SMS phone number input in SMS settings form.
 #: actions/smssettings.php:153
 msgid "SMS phone number"
-msgstr ""
+msgstr "SMS ტელეფონის ნომერი"
+
+#. TRANS: SMS phone number input field instructions in SMS settings form.
+#: actions/smssettings.php:156
+msgid "Phone number, no punctuation or spaces, with area code"
+msgstr "ტელ. ნომერი, პუნქტუაციის ან სივრცეების გარეშე, ქვეყნის კოდით."
+
+#. TRANS: Form legend for SMS preferences form.
+#: actions/smssettings.php:195
+msgid "SMS preferences"
+msgstr "SMS კონფიგურაცია"
 
 #. TRANS: Checkbox label in SMS preferences form.
 #: actions/smssettings.php:201
@@ -3808,16 +4156,74 @@ msgid ""
 "Send me notices through SMS; I understand I may incur exorbitant charges "
 "from my carrier."
 msgstr ""
+"გამომიგზავნე ცნობები SMS-ით; ვაცნობიერებ, რომ შესაძლებელია ჩემმა ოპერატორმა "
+"საგრძნობი გადასახადები დამაკისროს."
+
+#. TRANS: Confirmation message for successful SMS preferences save.
+#: actions/smssettings.php:315
+msgid "SMS preferences saved."
+msgstr "SMS კონფიგურაცია შენახულია."
+
+#. TRANS: Message given saving SMS phone number without having provided one.
+#: actions/smssettings.php:338
+msgid "No phone number."
+msgstr "ტელეფონის ნომერი არ არის."
+
+#. TRANS: Message given saving SMS phone number without having selected a carrier.
+#: actions/smssettings.php:344
+msgid "No carrier selected."
+msgstr "ოპერატორი შერჩეული არ არის."
+
+#. TRANS: Message given saving SMS phone number that is already set.
+#: actions/smssettings.php:352
+msgid "That is already your phone number."
+msgstr "ეს უკვე არის ტქვენი ტელეფონის მისამართი."
+
+#. TRANS: Message given saving SMS phone number that is already set for another user.
+#: actions/smssettings.php:356
+msgid "That phone number already belongs to another user."
+msgstr "ეს ტელეფონის ნომერი სხვას ეკუთვნის."
+
+#. TRANS: Message given saving valid SMS phone number that is to be confirmed.
+#: actions/smssettings.php:384
+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 ""
+"დასადასტურებელი კოდი გამოგზავნილია თქვენს მიერ მითითებულ ტელეფონის ნომერზე. "
+"შეამოწმეთ შეამოწმეთ თქვენი ტელეფონი, რომ მიიღოთ დასადასტურებელი კოდი და "
+"ინსტრუქცია გამოყენებისთვის."
+
+#. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number.
+#: actions/smssettings.php:413
+msgid "That is the wrong confirmation number."
+msgstr "ეს დასტურის კოდი არასწორია."
+
+#. TRANS: Message given after successfully canceling SMS phone number confirmation.
+#: actions/smssettings.php:427
+msgid "SMS confirmation cancelled."
+msgstr "SMS დადასტურება გაუქმებულია."
+
+#. TRANS: Message given trying to remove an SMS phone number that is not
+#. TRANS: registered for the active user.
+#: actions/smssettings.php:448
+msgid "That is not your phone number."
+msgstr "ეს არ არის თქვენი ნომერი."
+
+#. TRANS: Message given after successfully removing a registered SMS phone number.
+#: actions/smssettings.php:470
+msgid "The SMS phone number was removed."
+msgstr "SMS ტელეფონის ნომერი წაშლილია."
 
 #. TRANS: Label for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:511
 msgid "Mobile carrier"
-msgstr ""
+msgstr "მობილური ოპერატორი"
 
 #. TRANS: Default option for mobile carrier dropdown menu in SMS settings.
 #: actions/smssettings.php:516
 msgid "Select a carrier"
-msgstr ""
+msgstr "აირჩიეთ ოპერატორი"
 
 #. TRANS: Form instructions for mobile carrier dropdown menu in SMS settings.
 #. TRANS: %s is an administrative contact's e-mail address.
@@ -3827,19 +4233,35 @@ 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 ""
+"თქვენი ტელეფონის მობილური ოპერატორი. თუ იცით ოპერატორი, რომელსაც შეუძლია "
+"მიიღოს SMS ელ. ფოსტის გავლით, მაგრამ ამ სიაში ვერ აღმოაჩინეთ, მაშინ "
+"გაგვაგებინეთ ამის შესახებ, მოგვწერეთ მისამართზე - %s."
+
+#. TRANS: Message given saving SMS phone number confirmation code without having provided one.
+#: actions/smssettings.php:548
+msgid "No code entered"
+msgstr "კოდი არ არის შეყვანილი"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
-msgstr ""
+msgstr "წინა ვერსიები"
 
 #: actions/snapshotadminpanel.php:65
 msgid "Manage snapshot configuration"
-msgstr ""
+msgstr "წინა ვერსიების მართვა"
+
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr "წინა ვერსიის გაშვების არასწორი მონაცემი."
 
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
+msgstr "წინა ვერსიის სიხშირე ციფრი უნდა იყოს."
+
+#: actions/snapshotadminpanel.php:144
+msgid "Invalid snapshot report URL."
 msgstr ""
 
 #: actions/snapshotadminpanel.php:200
@@ -3856,11 +4278,11 @@ msgstr ""
 
 #: actions/snapshotadminpanel.php:208
 msgid "When to send statistical data to status.net servers"
-msgstr ""
+msgstr "როდის გაეგზავნოს სტატისტიკური მონაცემები status.net სერვერს"
 
 #: actions/snapshotadminpanel.php:217
 msgid "Frequency"
-msgstr ""
+msgstr "სიხშირე"
 
 #: actions/snapshotadminpanel.php:218
 msgid "Snapshots will be sent once every N web hits"
@@ -3872,44 +4294,97 @@ msgstr ""
 
 #: actions/snapshotadminpanel.php:227
 msgid "Snapshots will be sent to this URL"
-msgstr ""
+msgstr "მდგომარეობა გაიგზავნება ამ URL-ზე"
+
+#: actions/snapshotadminpanel.php:248
+msgid "Save snapshot settings"
+msgstr "დაიმახსოვრე მდგომარეობის პარამეტრები"
+
+#: actions/subedit.php:70
+msgid "You are not subscribed to that profile."
+msgstr "თქვენ არ გაქვთ გამოწერილი ამ პროფილის განახლებები."
+
+#. TRANS: Exception thrown when a subscription could not be stored on the server.
+#: actions/subedit.php:83 classes/Subscription.php:136
+msgid "Could not save subscription."
+msgstr "გამოწერის დამახსოვრება ვერ მოხერხდა."
 
 #: actions/subscribe.php:77
 msgid "This action only accepts POST requests."
-msgstr ""
+msgstr "ეს მოქმედება მხოლოდ POST მოთხოვნებს იღებს."
+
+#: actions/subscribe.php:107
+msgid "No such profile."
+msgstr "ასეთი პროფილი არ არსებობს."
 
 #: actions/subscribe.php:117
 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
 msgstr ""
+"თქვენ არ შეგიძლიათ გამოიწეროთ 0მბ-იანი 0.1 დაშორებული პროფილი ამ მოქმედებით."
+
+#: actions/subscribe.php:145
+msgid "Subscribed"
+msgstr "გამოწერილია"
+
+#: actions/subscribers.php:50
+#, php-format
+msgid "%s subscribers"
+msgstr "%s გამომწერი"
+
+#: actions/subscribers.php:52
+#, php-format
+msgid "%1$s subscribers, page %2$d"
+msgstr "%1$s გამომწერი, გვერდი %2$d"
 
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
-msgstr ""
+msgstr "არის ხალხი, ვინც თქვენს შეტყობინებებს თვალ-ყურს ადევნებს."
 
 #: actions/subscribers.php:67
 #, php-format
 msgid "These are the people who listen to %s's notices."
-msgstr ""
+msgstr "არის ხალხი, ვინც %s-ს შეტყობინებებს თვალ-ყურს ადევნებს."
 
 #: actions/subscribers.php:108
 msgid ""
 "You have no subscribers. Try subscribing to people you know and they might "
 "return the favor"
 msgstr ""
+"თქვენ არ გყავთ გამომწერები. სცადეთ გამოიწეროთ თქვენი ნაცნობების განახლებები "
+"და შესაძლოა იგივეთი გიპასუხონ"
 
 #: actions/subscribers.php:110
 #, php-format
 msgid "%s has no subscribers. Want to be the first?"
+msgstr "%s არ ჰყავს გამომწერები. გინდა გახდე პირველი?"
+
+#: actions/subscribers.php:114
+#, php-format
+msgid ""
+"%s has no subscribers. Why not [register an account](%%%%action.register%%%"
+"%) and be the first?"
 msgstr ""
+"%s არ ჰყავს გამომწერები. [დარეგისტრირდი](%%%%action.register%%%%) და გახდი "
+"პირველი."
+
+#: actions/subscriptions.php:52
+#, php-format
+msgid "%s subscriptions"
+msgstr "%s გამოწერები"
+
+#: actions/subscriptions.php:54
+#, php-format
+msgid "%1$s subscriptions, page %2$d"
+msgstr "%1$s გამოწერები, გვერდი %2$d"
 
 #: actions/subscriptions.php:65
 msgid "These are the people whose notices you listen to."
-msgstr ""
+msgstr "ეს არის ხალხი, ვის შეტყობინებებსაც უსმენთ."
 
 #: actions/subscriptions.php:69
 #, php-format
 msgid "These are the people whose notices %s listens to."
-msgstr ""
+msgstr "ეს არის ხალხი ვის შეტყობინებებსაც ყურს უგდებს %s."
 
 #: actions/subscriptions.php:126
 #, php-format
@@ -3920,70 +4395,236 @@ msgid ""
 "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can "
 "automatically subscribe to people you already follow there."
 msgstr ""
+"თუ ჯერ არ უსმენთ არავის შეტყობიენბებს, სცადეთ გამოიწეროთ თქვენთვის "
+"საინტერესო ადამიანები. სცადეთ [ხალხის ძიება](%%action.peoplesearch%%), "
+"გადახედეთ საინტერესო ჯგუფების წევრებს და ჩვენს მიერ [შემოთავაზებულ "
+"მომხმარებლებს](%%action.featured%%). თუ ხართ [Twitter-ის მომხმარებელი](%%"
+"action.twittersettings%%), შეგიძლიათ ავტომატურად გამოიწეროთ ხალხი, რომლებსაც "
+"იქ მიჰყვებით."
 
 #: actions/subscriptions.php:128 actions/subscriptions.php:132
 #, php-format
 msgid "%s is not listening to anyone."
-msgstr ""
+msgstr "%s არავის უსმენს."
+
+#: actions/subscriptions.php:208
+msgid "Jabber"
+msgstr "Jabber"
+
+#: actions/subscriptions.php:222 lib/connectsettingsaction.php:115
+msgid "SMS"
+msgstr "SMS"
+
+#: actions/tag.php:69
+#, php-format
+msgid "Notices tagged with %1$s, page %2$d"
+msgstr "შეტყობინებები მონიშნული %1$s-ით, გვერდი %2$d"
 
 #: actions/tag.php:87
 #, php-format
 msgid "Notice feed for tag %s (RSS 1.0)"
-msgstr ""
+msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 1.0)"
 
 #: actions/tag.php:93
 #, php-format
 msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
+msgstr "შეტყობინებების RSS მონიშნული %s-თ (RSS 2.0)"
 
 #: actions/tag.php:99
 #, php-format
 msgid "Notice feed for tag %s (Atom)"
+msgstr "შეტყობინებების RSS მონიშნული %s-თ (Atom)"
+
+#: actions/tagother.php:39
+msgid "No ID argument."
 msgstr ""
 
+#: actions/tagother.php:65
+#, php-format
+msgid "Tag %s"
+msgstr "სანიშნე %s"
+
+#: actions/tagother.php:77 lib/userprofile.php:76
+msgid "User profile"
+msgstr "მომხმარებლის პროფილი"
+
 #: actions/tagother.php:81 actions/userauthorization.php:132
 #: lib/userprofile.php:103
 msgid "Photo"
+msgstr "ფოტო"
+
+#: actions/tagother.php:141
+msgid "Tag user"
+msgstr "მონიშნე მომხმარებელი"
+
+#: actions/tagother.php:151
+msgid ""
+"Tags for this user (letters, numbers, -, ., and _), comma- or space- "
+"separated"
 msgstr ""
+"სანიშნეები ამ მომხმარებლისთვის (ასოები, ციფრები, -, ., და _). გამოყავით "
+"მძიმით ან სივრცით"
 
 #: actions/tagother.php:193
 msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
 msgstr ""
+"ადამიანების მონიშვნა შესაძლებელია მხოლოდ მაშინ, როდესაც ან თქვენ გაქვთ "
+"გამოწერილი მისი განახლებები, ან იმას."
+
+#: actions/tagother.php:200
+msgid "Could not save tags."
+msgstr "სანიშნეების შენახვა ვერ მოხერხდა."
+
+#: actions/tagother.php:236
+msgid "Use this form to add tags to your subscribers or subscriptions."
+msgstr ""
+"გამოიყენეთ ეს ფორმა, რომ მიანიჭოთ სანიშნეები თქვენს გამოწერებს ან "
+"გამომწერებს."
+
+#: actions/tagrss.php:35
+msgid "No such tag."
+msgstr "ასეთი სანიშნე არ არსებობს."
+
+#: actions/unblock.php:59
+msgid "You haven't blocked that user."
+msgstr "თქვენ არ დაგიბლოკავთ ეს მომხმარებელი."
+
+#: actions/unsandbox.php:72
+msgid "User is not sandboxed."
+msgstr "მომხმარებელი არ არის იზოლირებული."
+
+#: actions/unsilence.php:72
+msgid "User is not silenced."
+msgstr "მომხმარებელი არ არის დადუმებული."
+
+#: actions/unsubscribe.php:77
+msgid "No profile ID in request."
+msgstr "არცერთი პროფილის ID არ არის მოთხოვნილი."
+
+#: actions/unsubscribe.php:98
+msgid "Unsubscribed"
+msgstr "გამოწერა გაუქმებულია"
+
+#: actions/updateprofile.php:64 actions/userauthorization.php:337
+#, php-format
+msgid ""
+"Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’."
+msgstr ""
+"გამოსაწერი მომხმარებლის ნაკადის ლიცენზია ‘%1$s’ შეუთავსებელია საიტის "
+"ლიცენზიასთან ‘%2$s’."
 
 #. TRANS: User admin panel title
 #: actions/useradminpanel.php:59
 msgctxt "TITLE"
 msgid "User"
-msgstr ""
+msgstr "მომხმარებელი"
+
+#: actions/useradminpanel.php:70
+msgid "User settings for this StatusNet site."
+msgstr "მომხმარებლის პარამეტრები ამ საიტისათვის."
 
 #: actions/useradminpanel.php:149
 msgid "Invalid bio limit. Must be numeric."
-msgstr ""
+msgstr "ბიოგრაფიის არასწორი ლიმიტი. უნდა იყოს ციფრი."
+
+#: actions/useradminpanel.php:155
+msgid "Invalid welcome text. Max length is 255 characters."
+msgstr "არასწორი მისასალმებელი ტექსტი. სიმბოლოების მაქს. რაოდენობაა 255."
 
 #: actions/useradminpanel.php:165
 #, php-format
 msgid "Invalid default subscripton: '%1$s' is not user."
 msgstr ""
 
+#. TRANS: Link description in user account settings menu.
+#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111
+#: lib/personalgroupnav.php:109
+msgid "Profile"
+msgstr "პროფილი"
+
+#: actions/useradminpanel.php:222
+msgid "Bio Limit"
+msgstr "ბიოგრაფიის ლიმიტი"
+
 #: actions/useradminpanel.php:223
 msgid "Maximum length of a profile bio in characters."
-msgstr ""
+msgstr "პროფილის ბიოგრაფიის მაქსიმალური ზომა სიმბოლოებში."
+
+#: actions/useradminpanel.php:231
+msgid "New users"
+msgstr "ახალი მომხმარებლები"
 
 #: actions/useradminpanel.php:235
 msgid "New user welcome"
+msgstr "ახალი მომხმარებლის მისალმება"
+
+#: actions/useradminpanel.php:236
+msgid "Welcome text for new users (Max 255 chars)."
+msgstr "მისალმების ტექსტი ახალი მომხმარებლებისთვის (მაქს. 255 სიმბოლო)."
+
+#: actions/useradminpanel.php:241
+msgid "Default subscription"
 msgstr ""
 
+#: actions/useradminpanel.php:242
+msgid "Automatically subscribe new users to this user."
+msgstr "ავტომატურად გამოაწერინე ამ მომხმარებელს ახალი მომხმარებლები."
+
+#: actions/useradminpanel.php:251
+msgid "Invitations"
+msgstr "მოსაწვევეი"
+
+#: actions/useradminpanel.php:256
+msgid "Invitations enabled"
+msgstr "მოსაწვევები გააქტიურებულია"
+
+#: actions/useradminpanel.php:258
+msgid "Whether to allow users to invite new users."
+msgstr "მიეცეთ თუ არა მომხმარებლებს სხვების მოწვევის უფლება."
+
+#: actions/userauthorization.php:105
+msgid "Authorize subscription"
+msgstr "გამოწერის ავტორიზაცია"
+
 #: actions/userauthorization.php:110
 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 ""
+"გთხოვთ გადახედოთ ამ დეტალებს, რომ დარწმუნდეთ რომ გინდათ ამ მომხმარებლის "
+"განახლებების გამოწერა. თუ თქვენ არ გინდოდათ გამოწერა, მაშინ გააჭირეთ ღილაკს "
+"\"უარყოფა\"."
+
+#: actions/userauthorization.php:196 actions/version.php:167
+msgid "License"
+msgstr "ლიცენზია"
+
+#: actions/userauthorization.php:217
+msgid "Accept"
+msgstr "მიღება"
+
+#: actions/userauthorization.php:218 lib/subscribeform.php:115
+#: lib/subscribeform.php:139
+msgid "Subscribe to this user"
+msgstr "გამოიწერე ეს მომხმარებელი"
+
+#: actions/userauthorization.php:219
+msgid "Reject"
+msgstr "უარყოფა"
+
+#: actions/userauthorization.php:220
+msgid "Reject this subscription"
+msgstr "ამ გამოწერის უარყოფა"
 
 #: actions/userauthorization.php:232
 msgid "No authorization request!"
-msgstr ""
+msgstr "ავტორიზაციის მოთხოვნა არ არის!"
+
+#: actions/userauthorization.php:254
+msgid "Subscription authorized"
+msgstr "გამოწერა ავტორიზირებულია"
 
 #: actions/userauthorization.php:256
 msgid ""
@@ -3991,6 +4632,13 @@ msgid ""
 "with the site’s instructions for details on how to authorize the "
 "subscription. Your subscription token is:"
 msgstr ""
+"გამოწერა ავტორიზირებულია, მაგრამ უკან დასაბრუნებელი URL არ მოწოდებულა. "
+"გადაამოწმეთ საიტის ინსტრუქციებში გამოწერის ავტორიზირების დეტალები. თქვენი "
+"გამოწერის ტოკენია:"
+
+#: actions/userauthorization.php:266
+msgid "Subscription rejected"
+msgstr "გამოწერა უარყოფილია"
 
 #: actions/userauthorization.php:268
 msgid ""
@@ -3998,11 +4646,14 @@ msgid ""
 "with the site’s instructions for details on how to fully reject the "
 "subscription."
 msgstr ""
+"გამოწერა უარყოფილია, მაგრამ უკან დასაბრუნებელი URL არ მოწოდებულა. "
+"გადაამოწმეთ საიტის ინსტრუქციებში გამოწერის მთლიანად უარყოფის შესახებ "
+"დეტალები."
 
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
-msgstr ""
+msgstr "მსმენელის  URI ‘%s’ აქ ვერ მოიძებნა."
 
 #: actions/userauthorization.php:308
 #, php-format
@@ -4017,30 +4668,74 @@ msgstr ""
 #: actions/userauthorization.php:329
 #, php-format
 msgid "Profile URL ‘%s’ is for a local user."
-msgstr ""
+msgstr "პროფილის URL ‘%s’ ლოკალური მომხმარებლისთვისაა განკუთვნილი."
+
+#: actions/userauthorization.php:345
+#, php-format
+msgid "Avatar URL ‘%s’ is not valid."
+msgstr "ავატარის URL ‘%s’ არ არის სწორი."
 
 #: actions/userauthorization.php:350
 #, php-format
 msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
+msgstr "ვერ ვკითხულობ ავატარის URL ‘%s’."
 
 #: actions/userauthorization.php:355
 #, php-format
 msgid "Wrong image type for avatar URL ‘%s’."
+msgstr "ავატარის სურათის ფორმატი არასწორია URL ‘%s’."
+
+#: actions/userdesignsettings.php:76 lib/designsettings.php:65
+msgid "Profile design"
+msgstr "პროფილის დიზაინი"
+
+#: actions/userdesignsettings.php:87 lib/designsettings.php:76
+msgid ""
+"Customize the way your profile looks with a background image and a colour "
+"palette of your choice."
 msgstr ""
+"აირჩიეთ, როგორ გნებავთ გამოიყურებოდეს თქვენი პროფილი ფონური სურათისა და "
+"ფერთა პალიტრის შეცვლით."
 
 #: actions/userdesignsettings.php:282
 msgid "Enjoy your hotdog!"
-msgstr ""
+msgstr "ისიამოვნეთ ჰოთ დოგით!"
+
+#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
+#: actions/usergroups.php:66
+#, php-format
+msgid "%1$s groups, page %2$d"
+msgstr "%1$s ჯგუფი, გვერდი %2$d"
 
 #: actions/usergroups.php:132
 msgid "Search for more groups"
-msgstr ""
+msgstr "მოძებნე მეტი ჯგუფები"
+
+#: actions/usergroups.php:159
+#, php-format
+msgid "%s is not a member of any group."
+msgstr "მომხმარებელი %s არ არის არცერთი ჯგუფის წევრი."
 
 #: actions/usergroups.php:164
 #, php-format
 msgid "Try [searching for groups](%%action.groupsearch%%) and joining them."
-msgstr ""
+msgstr "სცადეთ [ჯგუფების მოძებნა](%%action.groupsearch%%) გაერთიენდით მათში."
+
+#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
+#. TRANS: Message is used as a subtitle in atom group notice feed.
+#. TRANS: %1$s is a group name, %2$s is a site name.
+#. TRANS: Message is used as a subtitle in atom user notice feed.
+#. TRANS: %1$s is a user name, %2$s is a site name.
+#: actions/userrss.php:97 lib/atomgroupnoticefeed.php:70
+#: lib/atomusernoticefeed.php:76
+#, php-format
+msgid "Updates from %1$s on %2$s!"
+msgstr "%1$s-ს განახლებები %2$s-ზე!"
+
+#: actions/version.php:75
+#, php-format
+msgid "StatusNet %s"
+msgstr "StatusNet %s"
 
 #: actions/version.php:155
 #, php-format
@@ -4048,10 +4743,12 @@ msgid ""
 "This site is powered by %1$s version %2$s, Copyright 2008-2010 StatusNet, "
 "Inc. and contributors."
 msgstr ""
+"ეს საიტი მუშაობს %1$s-ის %2$s ვერსიაზე, ყველა უფლება დაცულია 2008-2010 "
+"StatusNet, Inc. და წვლილის შემომტანები."
 
 #: actions/version.php:163
 msgid "Contributors"
-msgstr ""
+msgstr "წვლილის შემომტანები"
 
 #: actions/version.php:170
 msgid ""
@@ -4060,6 +4757,10 @@ msgid ""
 "Software Foundation, either version 3 of the License, or (at your option) "
 "any later version. "
 msgstr ""
+"StatusNet არის უფასო კოდი: თქვენ შეგიძლიათ მისი გავრცელება ან/და გადაკეთება "
+"GNU Affero ძირითადი საჯარო ლიცენზიის პირობების თანახმად, როგორც "
+"გამოქვეყნებულია Free Software Foundation-ის მიერ, ან ლიცენზიის 3 ვერსიით, ან "
+"ნებისმიერი უფრო ახალი ვერსიით. "
 
 #: actions/version.php:176
 msgid ""
@@ -4068,6 +4769,10 @@ msgid ""
 "FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License "
 "for more details. "
 msgstr ""
+"ეს პროგრამა ვრცელდება იმ იმედით, რომ გამოსადეგი იქნება, მაგრამ არ იძლევა "
+"არანაირ გარანტიებს; არც თუნდაც პატარა გარანტიას მის გაყიდვადობაზე ან "
+"კონკრეტული მიზნისთვის თავსებადობაზე. იხილეთ GNU Affero ძირითადი საჯარო "
+"ლიცენზია მეტი ინფორმაციისთვის."
 
 #: actions/version.php:182
 #, php-format
@@ -4075,25 +4780,32 @@ msgid ""
 "You should have received a copy of the GNU Affero General Public License "
 "along with this program.  If not, see %s."
 msgstr ""
+"თქვენ უნდა მიგეღოთ GNU Affero ძირითადი საჯარო ლიცენზიის ასლი ამ პროგრამასთან "
+"ერთად. თუ არა, იხილეთ %s."
 
 #: actions/version.php:191
 msgid "Plugins"
-msgstr ""
+msgstr "დამატებები"
+
+#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site.
+#: actions/version.php:198 lib/action.php:805
+msgid "Version"
+msgstr "ვერსია"
 
 #: actions/version.php:199
 msgid "Author(s)"
-msgstr ""
+msgstr "ავტორი(ები)"
 
 #. TRANS: Server exception thrown when a URL cannot be processed.
 #: classes/File.php:143
 #, php-format
 msgid "Cannot process URL '%s'"
-msgstr ""
+msgstr "ვერ ვამოუშავებ URL '%s'"
 
 #. TRANS: Server exception thrown when... Robin thinks something is impossible!
 #: classes/File.php:175
 msgid "Robin thinks something is impossible."
-msgstr ""
+msgstr "რობინი ფიქრობს რაღაც შეუძლებელია."
 
 #. TRANS: Message given if an upload is larger than the configured maximum.
 #. TRANS: %1$d is the byte limit for uploads, %2$d is the byte count for the uploaded file.
@@ -4103,6 +4815,8 @@ msgid ""
 "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
 "Try to upload a smaller version."
 msgstr ""
+"ფაილი არ შეიძლება იყოს %1$d ბაიტზე მეტი, თქვენ მიერ გაგზავნილი კი %2$d ბაიტი "
+"იყო. სცადეთ უფრო პატარა ვერსიის ატვირთვა."
 
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
@@ -4110,6 +4824,7 @@ msgstr ""
 #, php-format
 msgid "A file this large would exceed your user quota of %d bytes."
 msgstr ""
+"ასეთი ზომის ფაილმა შეიძლება გადააჭარბოს თქვენთვის გამოყოფილ კვოტას, %d ბაიტს."
 
 #. TRANS: Message given id an upload would exceed a user's monthly quota.
 #. TRANS: $d (number) is the monthly user quota in bytes.
@@ -4117,39 +4832,91 @@ msgstr ""
 #, php-format
 msgid "A file this large would exceed your monthly quota of %d bytes."
 msgstr ""
+"ასეთი ზომის ფაილმა შეიძლება გადააჭარბოს თქვენთვის გამოყოფილ თვიურ კვოტას, %d "
+"ბაიტს."
+
+#. TRANS: Client exception thrown if a file upload does not have a valid name.
+#: classes/File.php:248 classes/File.php:263
+msgid "Invalid filename."
+msgstr "ფაილის არასწორი სახელი."
+
+#. TRANS: Exception thrown when joining a group fails.
+#: classes/Group_member.php:42
+msgid "Group join failed."
+msgstr "ჯგუფში გაწევრიანება ვერ მოხერხდა."
+
+#. TRANS: Exception thrown when trying to leave a group the user is not a member of.
+#: classes/Group_member.php:55
+msgid "Not part of group."
+msgstr "ჯგუფის წევრი არ ხართ."
+
+#. TRANS: Exception thrown when trying to leave a group fails.
+#: classes/Group_member.php:63
+msgid "Group leave failed."
+msgstr "ჯგუფის დატოვება ვერ მოხერხდა."
+
+#. TRANS: Server exception thrown when updating a local group fails.
+#: classes/Local_group.php:42
+msgid "Could not update local group."
+msgstr "ლოკალური ჯგუფის განახლება ვერ მოხერხდა."
+
+#. TRANS: Exception thrown when trying creating a login token failed.
+#. TRANS: %s is the user nickname for which token creation failed.
+#: classes/Login_token.php:78
+#, php-format
+msgid "Could not create login token for %s"
+msgstr "შესასვლელი ტოკენის შექმნა %s-სთვის ვერ მოხერხდა."
 
 #. TRANS: Exception thrown when database name or Data Source Name could not be found.
 #: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
-msgstr ""
+msgstr "ბაზის სახელი ან DSN ვერსად ვერ მოიძებნა."
 
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
 msgid "You are banned from sending direct messages."
-msgstr ""
+msgstr "თქვენ აგეკრძალათ პირდაპირი შეტყობინებების გაგზავნის უფლება."
+
+#. TRANS: Message given when a message could not be stored on the server.
+#: classes/Message.php:63
+msgid "Could not insert message."
+msgstr "შეტყობინების ჩასმა ვერ მოხერხდა."
+
+#. TRANS: Message given when a message could not be updated on the server.
+#: classes/Message.php:74
+msgid "Could not update message with new URI."
+msgstr "შეტყობინების ახალი URI-თ განახლება ვერ მოხერხდა."
 
 #. TRANS: Server exception thrown when a user profile for a notice cannot be found.
 #. TRANS: %1$d is a profile ID (number), %2$d is a notice ID (number).
 #: classes/Notice.php:98
 #, php-format
 msgid "No such profile (%1$d) for notice (%2$d)."
-msgstr ""
+msgstr "ასეთი პროფილი (%1$d) შეტყობინებისათვის (%2$d) არ არსებობს."
+
+#. TRANS: Server exception. %s are the error details.
+#: classes/Notice.php:193
+#, php-format
+msgid "Database error inserting hashtag: %s"
+msgstr "ბაზის შეცდომა hashtag-ის ჩასმისას: %s"
 
 #. TRANS: Client exception thrown if a notice contains too many characters.
 #: classes/Notice.php:265
 msgid "Problem saving notice. Too long."
-msgstr ""
+msgstr "პრობლემა შეტყობინების შენახვისას. ძალიან გრძელია."
 
 #. TRANS: Client exception thrown when trying to save a notice for an unknown user.
 #: classes/Notice.php:270
 msgid "Problem saving notice. Unknown user."
-msgstr ""
+msgstr "პრობლემა შეტყობინების შენახვისას. მომხმარებელი უცნობია."
 
 #. TRANS: Client exception thrown when a user tries to post too many notices in a given time frame.
 #: classes/Notice.php:276
 msgid ""
 "Too many notices too fast; take a breather and post again in a few minutes."
 msgstr ""
+"ძალიან ბევრი შეტყობინება მოკლე დროში; ცოტა დაისვენეთ და რამდენიმე წუთში "
+"კიდევ დაპოსტეთ."
 
 #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame.
 #: classes/Notice.php:283
@@ -4157,16 +4924,36 @@ msgid ""
 "Too many duplicate messages too quickly; take a breather and post again in a "
 "few minutes."
 msgstr ""
+"ძალიან ბევრი დუბლირებული შეტყობინებები მოკლე პერიოდში. ცოტა დაისვენეთ და "
+"რამდენიმე წუთში ისევ დაპოსტეთ."
+
+#. TRANS: Client exception thrown when a user tries to post while being banned.
+#: classes/Notice.php:291
+msgid "You are banned from posting notices on this site."
+msgstr "თქვენ აგეკრძალათ ამ საიტზე შეტყობინებების დაპოსტვა."
+
+#. TRANS: Server exception thrown when a notice cannot be saved.
+#. TRANS: Server exception thrown when a notice cannot be updated.
+#: classes/Notice.php:358 classes/Notice.php:385
+msgid "Problem saving notice."
+msgstr "პრობლემა შეტყობინების შენახვისას."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
-msgstr ""
+msgstr "saveKnownGroups-სათვის არასწორი ტიპია მოწოდებული"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
-msgstr ""
+msgstr "პრობლემა ჯგუფის ინდექსის შენახვისას."
+
+#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
+#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
+#: classes/Notice.php:1759
+#, php-format
+msgid "RT @%1$s %2$s"
+msgstr "RT @%1$s %2$s"
 
 #. TRANS: Exception thrown when trying to revoke an existing role for a user that does not exist.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
@@ -4174,6 +4961,7 @@ msgstr ""
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
 msgstr ""
+"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; არ არსებობს."
 
 #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
@@ -4181,274 +4969,718 @@ msgstr ""
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
+"ვერ ხერხდება როლის \"%1$s\" უკუგება მომხმარებლისგან #%2$d; მონაცემთა ბაზის "
+"შეცდომა."
+
+#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
+#: classes/Remote_profile.php:54
+msgid "Missing profile."
+msgstr "პროფილი არ არსებობს."
+
+#. TRANS: Exception thrown when a tag cannot be saved.
+#: classes/Status_network.php:339
+msgid "Unable to save tag."
+msgstr "სანიშნეს დამახსოვრება ვერ ხერხდება."
+
+#. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
+#: classes/Subscription.php:75 lib/oauthstore.php:466
+msgid "You have been banned from subscribing."
+msgstr "თქვენ აგეკრძალათ გამოწერა."
+
+#. TRANS: Exception thrown when trying to subscribe while already subscribed.
+#: classes/Subscription.php:80
+msgid "Already subscribed!"
+msgstr "უკვე გამოწერილია!"
+
+#. TRANS: Exception thrown when trying to subscribe to a user who has blocked the subscribing user.
+#: classes/Subscription.php:85
+msgid "User has blocked you."
+msgstr "მომხმარებელმა დაგბლოკათ."
+
+#. TRANS: Exception thrown when trying to unsibscribe without a subscription.
+#: classes/Subscription.php:171
+msgid "Not subscribed!"
+msgstr "არ გაქვთ გამოწერილი!"
+
+#. TRANS: Exception thrown when trying to unsubscribe a user from themselves.
+#: classes/Subscription.php:178
+msgid "Could not delete self-subscription."
+msgstr "საკუთარი გამოწერის წაშლა ვერ ხერხდება."
+
+#. TRANS: Exception thrown when the OMB token for a subscription could not deleted on the server.
+#: classes/Subscription.php:206
+msgid "Could not delete subscription OMB token."
+msgstr "გამოწერის წაშლა ვერ მოხერხდა. 0მბ-იანი ტოკენი"
+
+#. TRANS: Exception thrown when a subscription could not be deleted on the server.
+#: classes/Subscription.php:218
+msgid "Could not delete subscription."
+msgstr "გამოწერის წაშლა ვერ მოხერხდა."
+
+#. TRANS: Notice given on user registration.
+#. TRANS: %1$s is the sitename, $2$s is the registering user's nickname.
+#: classes/User.php:365
+#, php-format
+msgid "Welcome to %1$s, @%2$s!"
+msgstr "გამარჯობა @%2$s, კეთილი იყოს თქვენი მობრძანება %1$s-ზე!"
+
+#. TRANS: Server exception thrown when creating a group failed.
+#: classes/User_group.php:496
+msgid "Could not create group."
+msgstr "ჯგუფის შექმნა ვერ მოხერხდა."
+
+#. TRANS: Server exception thrown when updating a group URI failed.
+#: classes/User_group.php:506
+msgid "Could not set group URI."
+msgstr "ჯგუფის URI-ს მინიჭება ვერ მოხერხდა."
+
+#. TRANS: Server exception thrown when setting group membership failed.
+#: classes/User_group.php:529
+msgid "Could not set group membership."
+msgstr "ჯგუფის წევრობის მინიჭება ვერ მოხერხდა."
+
+#. TRANS: Server exception thrown when saving local group information failed.
+#: classes/User_group.php:544
+msgid "Could not save local group info."
+msgstr "ჯგუფის ლოკალური ინფორმაციის დამახსოვრება ვერ მოხერხდა."
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:109
+msgid "Change your profile settings"
+msgstr "შეცვალე პროფილის პარამეტრები"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:116
+msgid "Upload an avatar"
+msgstr "ატვირთე ავატარი"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:123
+msgid "Change your password"
+msgstr "შეცვალე პაროლი"
 
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:130
 msgid "Change email handling"
-msgstr ""
+msgstr "ელ. ფოსტის მართვა"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:137
+msgid "Design your profile"
+msgstr "პროფილის პარამეტრები"
+
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr "სხვა ოფციები"
 
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
-msgstr ""
+msgstr "სხვა"
+
+#. TRANS: Page title. %1$s is the title, %2$s is the site name.
+#: lib/action.php:148
+#, php-format
+msgid "%1$s - %2$s"
+msgstr "%1$s - %2$s"
 
 #. TRANS: Page title for a page without a title set.
 #: lib/action.php:164
 msgid "Untitled page"
-msgstr ""
+msgstr "უსათაურო გვერდი"
 
 #. TRANS: DT element for primary navigation menu. String is hidden in default CSS.
 #: lib/action.php:449
 msgid "Primary site navigation"
-msgstr ""
+msgstr "საიტის ძირითადი ნავიგაცია"
 
 #. TRANS: Tooltip for main menu option "Personal"
 #: lib/action.php:455
 msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
-msgstr ""
+msgstr "პირადი პროფილი და მეგობრების ნაკადი"
+
+#. TRANS: Main menu option when logged in for access to personal profile and friends timeline
+#: lib/action.php:458
+msgctxt "MENU"
+msgid "Personal"
+msgstr "პირადი"
+
+#. TRANS: Tooltip for main menu option "Account"
+#: lib/action.php:460
+msgctxt "TOOLTIP"
+msgid "Change your email, avatar, password, profile"
+msgstr "შეცვალე ელ. ფოსტა, ავატარი, პაროლი, პროფილი"
 
 #. TRANS: Tooltip for main menu option "Services"
 #: lib/action.php:465
 msgctxt "TOOLTIP"
 msgid "Connect to services"
-msgstr ""
+msgstr "სერვისებთან დაკავშირება"
+
+#. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
+#: lib/action.php:468
+msgid "Connect"
+msgstr "კავშირი"
 
 #. TRANS: Tooltip for menu option "Admin"
 #: lib/action.php:471
 msgctxt "TOOLTIP"
 msgid "Change site configuration"
-msgstr ""
+msgstr "საიტის კონფიგურაცია"
+
+#. TRANS: Main menu option when logged in and site admin for access to site configuration
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
+msgctxt "MENU"
+msgid "Admin"
+msgstr "ადმინი"
+
+#. TRANS: Tooltip for main menu option "Invite"
+#: lib/action.php:478
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Invite friends and colleagues to join you on %s"
+msgstr "მოიწვიე მეგობრები და კოლეგები %s-ზე"
+
+#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
+#: lib/action.php:481
+msgctxt "MENU"
+msgid "Invite"
+msgstr "მოწვევა"
+
+#. TRANS: Tooltip for main menu option "Logout"
+#: lib/action.php:487
+msgctxt "TOOLTIP"
+msgid "Logout from the site"
+msgstr "გასვლა საიტიდან"
+
+#. TRANS: Main menu option when logged in to log out the current user
+#: lib/action.php:490
+msgctxt "MENU"
+msgid "Logout"
+msgstr "გასვლა"
+
+#. TRANS: Tooltip for main menu option "Register"
+#: lib/action.php:495
+msgctxt "TOOLTIP"
+msgid "Create an account"
+msgstr "გახსენი ანგარიში"
+
+#. TRANS: Main menu option when not logged in to register a new account
+#: lib/action.php:498
+msgctxt "MENU"
+msgid "Register"
+msgstr "რეგისტრაცია"
+
+#. TRANS: Tooltip for main menu option "Login"
+#: lib/action.php:501
+msgctxt "TOOLTIP"
+msgid "Login to the site"
+msgstr "საიტზე შესვლა"
+
+#: lib/action.php:504
+msgctxt "MENU"
+msgid "Login"
+msgstr "შესვლა"
 
 #. TRANS: Tooltip for main menu option "Help"
 #: lib/action.php:507
 msgctxt "TOOLTIP"
 msgid "Help me!"
-msgstr ""
+msgstr "დამეხმარეთ!"
 
 #: lib/action.php:510
 msgctxt "MENU"
 msgid "Help"
-msgstr ""
+msgstr "დახმარება"
 
 #. TRANS: Tooltip for main menu option "Search"
 #: lib/action.php:513
 msgctxt "TOOLTIP"
 msgid "Search for people or text"
-msgstr ""
+msgstr "მოძებნე ხალხი ან ტექსტი"
+
+#: lib/action.php:516
+msgctxt "MENU"
+msgid "Search"
+msgstr "ძიება"
+
+#. TRANS: DT element for site notice. String is hidden in default CSS.
+#. TRANS: Menu item for site administration
+#: lib/action.php:538 lib/adminpanelaction.php:387
+msgid "Site notice"
+msgstr "საიტის შეტყობინება"
+
+#. TRANS: DT element for local views block. String is hidden in default CSS.
+#: lib/action.php:605
+msgid "Local views"
+msgstr "ლოკალური ხედები"
+
+#. TRANS: DT element for page notice. String is hidden in default CSS.
+#: lib/action.php:675
+msgid "Page notice"
+msgstr "გვერდის შეტყობინება"
 
 #. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
 #: lib/action.php:778
 msgid "Secondary site navigation"
-msgstr ""
+msgstr "საიტის მეორადი ნავიგაცია"
 
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
-msgstr ""
+msgstr "დახმარება"
+
+#. TRANS: Secondary navigation menu option leading to text about StatusNet site.
+#: lib/action.php:787
+msgid "About"
+msgstr "საიტის შესახებ"
 
 #. TRANS: Secondary navigation menu option leading to Frequently Asked Questions.
 #: lib/action.php:790
 msgid "FAQ"
-msgstr ""
+msgstr "ხდკ"
 
 #. TRANS: Secondary navigation menu option leading to Terms of Service.
 #: lib/action.php:795
 msgid "TOS"
-msgstr ""
+msgstr "მპ"
+
+#. TRANS: Secondary navigation menu option leading to privacy policy.
+#: lib/action.php:799
+msgid "Privacy"
+msgstr "პირადი"
 
 #. TRANS: Secondary navigation menu option.
 #: lib/action.php:802
 msgid "Source"
-msgstr ""
+msgstr "წყარო"
+
+#. TRANS: Secondary navigation menu option leading to contact information on the StatusNet site.
+#: lib/action.php:808
+msgid "Contact"
+msgstr "კონტაქტი"
 
 #: lib/action.php:810
 msgid "Badge"
-msgstr ""
+msgstr "იარლიყი"
 
 #. TRANS: DT element for StatusNet software license.
 #: lib/action.php:839
 msgid "StatusNet software license"
-msgstr ""
+msgstr "StatusNet კოდის ლიცენზია"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
 "broughtby%%](%%site.broughtbyurl%%)."
 msgstr ""
+"**%%site.name%%** არის მიკრობლოგინგის სერვისი მოწოდებული [%%site.broughtby%%]"
+"(%%site.broughtbyurl%%)-ს მიერ."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
-msgstr ""
+msgstr "**%%site.name%%** არის მიკრობლოგინგის სერვისი."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
 "s, available under the [GNU Affero General Public License](http://www.fsf."
 "org/licensing/licenses/agpl-3.0.html)."
 msgstr ""
+"ის მუშაობს [StatusNet](http://status.net/) მიკრობლოგინგის კოდზე, ვერსია %s, "
+"რომელიც ხელმისაწვდომია [GNU Affero ძირითადი საჯარო ლიცენზიით](http://www.fsf."
+"org/licensing/licenses/agpl-3.0.html)."
+
+#. TRANS: DT element for StatusNet site content license.
+#: lib/action.php:872
+msgid "Site content license"
+msgstr "საიტის შიგთავსის ლიცენზია"
+
+#. TRANS: Content license displayed when license is set to 'private'.
+#. TRANS: %1$s is the site name.
+#: lib/action.php:879
+#, php-format
+msgid "Content and data of %1$s are private and confidential."
+msgstr "%1$s ის შიგთავსი და მონაცემები არის პირადული და კონფიდენციალური."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
-msgstr ""
+msgstr "შიგთავსი და მონაცემები %1$s-ის საკუთრებაა. ყველა უფლება დაცულია."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
+"შიგთავსი და მონაცემები წვლილის შემტანების საკუთრებაა. ყველა უფლება დაცულია."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
-msgstr ""
+msgstr "%1$s-ს მთლიანი შიგთავსი და მონაცემები ხელმისაწვდომია %2$s ლიცენზიით."
+
+#. TRANS: DT element for pagination (previous/next, etc.).
+#: lib/action.php:1243
+msgid "Pagination"
+msgstr "გვერდებათ დაყოფა"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
-msgstr ""
+msgstr "შემდეგი"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
-msgstr ""
+msgstr "წინა"
 
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
-msgstr ""
+msgstr "ჯერჯერობით ვერ ვამუშავებ დაშორებულ შიგთავსს."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
+#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
+#: lib/adminpanelaction.php:96
+msgid "You cannot make changes to this site."
+msgstr "თქვენ არ გაქვთ ამ საიტზე ცვლილებების შეტანის უფლება."
+
+#. TRANS: Client error message throw when a certain panel's settings cannot be changed.
+#: lib/adminpanelaction.php:108
+msgid "Changes to that panel are not allowed."
+msgstr "ამ პანელის ცვლილებები არ არის დაშვებული."
+
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
-msgstr ""
+msgstr "showForm() არ არის განხორციელებული."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
-msgstr ""
+msgstr "saveSettings() არ არის განხორციელებული."
+
+#. TRANS: Client error message thrown if design settings could not be deleted in
+#. TRANS: the admin panel Design.
+#: lib/adminpanelaction.php:274
+msgid "Unable to delete design setting."
+msgstr "დიზაინის პარამეტრების წაშლა ვერ ხერხდება."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
-msgstr ""
+msgstr "საიტის ძირითადი კონფიგურაცია"
+
+#. TRANS: Menu item for site administration
+#: lib/adminpanelaction.php:339
+msgctxt "MENU"
+msgid "Site"
+msgstr "საიტი"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
-msgstr ""
+msgstr "დიზაინის კონფიგურაცია"
+
+#. TRANS: Menu item for site administration
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
+msgctxt "MENU"
+msgid "Design"
+msgstr "დიზაინი"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:353
+msgid "User configuration"
+msgstr "მომხმარებლის კონფიგურაცია"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
-msgstr ""
+msgstr "მომხმარებელი"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
-msgstr ""
+msgstr "შესვლის კონფიგურაცია"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:369
+msgid "Paths configuration"
+msgstr "გზების კონფიგურაცია"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:377
+msgid "Sessions configuration"
+msgstr "სესიების კონფიგურაცია"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:385
+msgid "Edit site notice"
+msgstr "საიტის შეტყობინების რედაქტირება"
+
+#. TRANS: Menu item title/tooltip
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
-msgstr ""
+msgstr "წინა ვერსიების კონფიგურაცია"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
+"API რესურსი მოითხოვს ჩაწერა-წაკითხვის წვდომას, მაგრამ თვენ მხოლოდ წაკითხვის "
+"უფლება გაქვთ."
+
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr "ჩაასწორე აპლიკაცია"
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr "ამ აპლიკაციის ხატულა"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:200
+#, php-format
+msgid "Describe your application in %d characters"
+msgstr "აღწერეთ თქვენი აპლიკაცია %d სიმბოლოთი"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:204
+msgid "Describe your application"
+msgstr "აღწერეთ თქვენი აპლიკაცია"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:215
+msgid "URL of the homepage of this application"
+msgstr "აპლიკაციის საწყისი გვერდის URL"
+
+#. TRANS: Form input field label.
+#: lib/applicationeditform.php:217
+msgid "Source URL"
+msgstr "წყაროს URL"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
+msgstr "ამ აპლიკაციაზე პასუხისმგებელი ორგანიზაცია"
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
-msgstr ""
+msgstr "ორგანიზაციის საწყისი გვერდის URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
-msgstr ""
+msgstr "ავტორიზაციის შემდეგ გადასამისამართებელი URL"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
-msgstr ""
+msgstr "ბროუზერი"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
-msgstr ""
+msgstr "ინსტალირებადი"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
-msgstr ""
+msgstr "აპლიკაციის ტიპი, ბროუზერისთვის ან ინსტალირებადი"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
-msgstr ""
+msgstr "მხოლოდ წაკითხვადი"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
-msgstr ""
+msgstr "კიტხვა-წერადი"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
+"შესვლის პირვანდელი მდგომარეობა ამ აპლიკაციისთვის: მხოლოდ წაკითხვადი, ან "
+"კითხვა-წერადი"
+
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
+msgid "Cancel"
+msgstr "გაუქმება"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
-msgstr ""
+msgstr "კიტხვა-წერადი"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
-msgstr ""
+msgstr "მხოლოდ წაკითხვადი"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
-msgstr ""
+msgstr "დამტკიცებულია %1$s - \"%2$s\" შესვლა"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Button label
+#: lib/applicationlist.php:158
+msgctxt "BUTTON"
+msgid "Revoke"
+msgstr "უკუგება"
+
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr "მიმაგრებები"
+
+#. TRANS: DT element label in attachment list item.
+#: lib/attachmentlist.php:265
+msgid "Author"
+msgstr "ავტორი"
+
+#. TRANS: DT element label in attachment list item.
+#: lib/attachmentlist.php:279
+msgid "Provider"
+msgstr "მომწოდებელი"
+
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
-msgstr ""
+msgstr "შეტყობინებები სადაც ეს მიმაგრება გამოჩენილა"
+
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr "ამ მიმაგრების სანიშნეები"
+
+#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
+msgid "Password changing failed"
+msgstr "პაროლის ცვლილება ჩაიშალა"
+
+#: lib/authenticationplugin.php:236
+msgid "Password changing is not allowed"
+msgstr "პაროლის ცვლილება არ არის ნებადართული"
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "ბლოკირება"
+
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
+msgstr "ბრძანების შედეგები"
 
 #: lib/channel.php:229 lib/mailhandler.php:142
 msgid "Command complete"
-msgstr ""
+msgstr "ბრძანება დასრულდა"
+
+#: lib/channel.php:240
+msgid "Command failed"
+msgstr "ბრძანება ჩაიშალა"
+
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "შეტყობინებები ამ ID-თ არ არსებობს."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "მომხმარებელს არ გააჩნია ბოლო შეტყობინება."
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "მომხმარებელი მეტსახელით %s ვერ მოიძებნა."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr "ლოკალური მომხმარებელი მეტსახელით %s ვერ მოიძებნა."
 
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
-msgstr ""
+msgstr "ბოდიში, ეს ბრძანება ჯერ არ არის განხორციელებული."
 
 #. TRANS: Command exception text shown when a user tries to nudge themselves.
 #: lib/command.php:231
@@ -4473,12 +5705,54 @@ msgid ""
 "Subscribers: %2$s\n"
 "Notices: %3$s"
 msgstr ""
+"გამოწერები: %1$s\n"
+"გამომწერები: %2$s\n"
+"შეტყობინებები: %3$s"
+
+#. TRANS: Text shown when a notice has been marked as favourite successfully.
+#: lib/command.php:314
+msgid "Notice marked as fave."
+msgstr "შეტყობინება მონიშნულია რჩეულად."
+
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s გაწევრიანდა ჯგუფში %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s-მა დატოვა ჯგუფი %2$s."
+
+#. TRANS: Whois output. %s is the full name of the queried user.
+#: lib/command.php:434
+#, php-format
+msgid "Fullname: %s"
+msgstr "სრული სახელი: %s"
+
+#. TRANS: Whois output. %s is the location of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:438 lib/mail.php:268
+#, php-format
+msgid "Location: %s"
+msgstr "მდებარეობა: %s"
+
+#. TRANS: Whois output. %s is the homepage of the queried user.
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/command.php:442 lib/mail.php:271
+#, php-format
+msgid "Homepage: %s"
+msgstr "გვერდი: %s"
 
 #. TRANS: Whois output. %s is the bio information of the queried user.
 #: lib/command.php:446
 #, php-format
 msgid "About: %s"
-msgstr ""
+msgstr "%s-ის შესახებ"
 
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
@@ -4487,6 +5761,8 @@ msgid ""
 "%s is a remote profile; you can only send direct messages to users on the "
 "same server."
 msgstr ""
+"%s დაშორებული პროფილია; პირდაპირი შეტყობინებების გაგზავნა მხოლოდ იგივე "
+"სერვერზე მყოფ მომხმარებელთანაა შესააძლებელი."
 
 #. TRANS: Message given if content is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
@@ -4494,6 +5770,25 @@ msgstr ""
 #, php-format
 msgid "Message too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
+"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ "
+"გააგზავნეთ %2$d."
+
+#. TRANS: Error text shown sending a direct message fails with an unknown reason.
+#: lib/command.php:517
+msgid "Error sending direct message."
+msgstr "შეცდომა პირდაპირი შეტყობინების გაგზავნისას."
+
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "შეტყობინება %s-გან გამეორდა."
+
+#. TRANS: Error text shown when repeating a notice fails with an unknown reason.
+#: lib/command.php:557
+msgid "Error repeating notice."
+msgstr "შეცდომა შეტყობინების გამეორებისას."
 
 #. TRANS: Message given if content of a notice for a reply is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
@@ -4501,27 +5796,60 @@ msgstr ""
 #, php-format
 msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
+"შეტყობინება ძალიან გრძელია - დასაშვები რაოდენობაა %1$d სიმბოლომდე, თქვენ "
+"გააგზავნეთ %2$d."
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "პასუხი %s-ს გაეგზავნა."
+
+#. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
+#: lib/command.php:606
+msgid "Error saving notice."
+msgstr "შეცდომა შეტყობინების შენახვისას."
 
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "მიუთითეთ მომხმარებლის სახელი, რომელსაც გინდათ ყური დაუგდოთ."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "%s-ს გამოწერა დასრულდა წარმატებით."
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
-msgstr ""
+msgstr "მიუთითეთ მომხმარებლის სახელი, რომ გამოწერა გააუქმოთ."
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "%s-ს გამოწერა გაუქმდა."
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
 msgid "Command not yet implemented."
+msgstr "ბრძანება ჯერ არ არის შემუშავებული."
+
+#. TRANS: Text shown when issuing the command "off" successfully.
+#: lib/command.php:728
+msgid "Notification off."
 msgstr ""
 
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
@@ -4529,6 +5857,16 @@ msgstr ""
 msgid "Can't turn off notification."
 msgstr ""
 
+#. TRANS: Text shown when issuing the command "on" successfully.
+#: lib/command.php:754
+msgid "Notification on."
+msgstr ""
+
+#. TRANS: Error text shown when the command "on" fails for an unknown reason.
+#: lib/command.php:757
+msgid "Can't turn on notification."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
@@ -4541,6 +5879,26 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
+#. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
+#: lib/command.php:831
+msgid "You are not subscribed to anyone."
+msgstr ""
+
+#. TRANS: Text shown after requesting other users a user is subscribed to.
+#. TRANS: This message supports plural forms. This message is followed by a
+#. TRANS: hard coded space and a comma separated list of subscribed users.
+#: lib/command.php:836
+msgid "You are subscribed to this person:"
+msgid_plural "You are subscribed to these people:"
+msgstr[0] ""
+
 #. TRANS: Text shown after requesting other users that are subscribed to a user
 #. TRANS: (followers) without having any subscribers.
 #: lib/command.php:858
@@ -4548,13 +5906,28 @@ msgid "No one is subscribed to you."
 msgstr ""
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
 msgid_plural "These people are subscribed to you:"
 msgstr[0] ""
 
+#. TRANS: Text shown after requesting groups a user is subscribed to without having
+#. TRANS: any group subscriptions.
+#: lib/command.php:885
+msgid "You are not a member of any groups."
+msgstr ""
+
+#. TRANS: Text shown after requesting groups a user is subscribed to.
+#. TRANS: This message supports plural forms. This message is followed by a
+#. TRANS: hard coded space and a comma separated list of subscribed groups.
+#: lib/command.php:890
+msgid "You are a member of this group:"
+msgid_plural "You are a member of these groups:"
+msgstr[0] ""
+
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4597,140 +5970,307 @@ msgid ""
 "tracking - not yet implemented.\n"
 msgstr ""
 
+#: lib/common.php:135
+msgid "No configuration file found. "
+msgstr "კონფიგურაციის ფაილი ვერ მოიძებნა. "
+
 #: lib/common.php:136
 msgid "I looked for configuration files in the following places: "
-msgstr ""
+msgstr "კონფიგურაციის ფაილები შემდეგ ადგილებში ვეძებე: "
 
 #: lib/common.php:138
 msgid "You may wish to run the installer to fix this."
-msgstr ""
+msgstr "თუ გინდათ ინსტალატორი გაუშვით ამის გასასწორებლად."
 
 #: lib/common.php:139
 msgid "Go to the installer."
-msgstr ""
+msgstr "გადადი ამ ინსტალატორზე."
 
 #: lib/connectsettingsaction.php:110
 msgid "IM"
-msgstr ""
+msgstr "IM"
 
 #: lib/connectsettingsaction.php:111
 msgid "Updates by instant messenger (IM)"
-msgstr ""
+msgstr "განახლებები ჩათ კლიენტისგან (IM)"
 
 #: lib/connectsettingsaction.php:116
 msgid "Updates by SMS"
-msgstr ""
+msgstr "განახლებები SMS-თ"
+
+#: lib/connectsettingsaction.php:120
+msgid "Connections"
+msgstr "შეერთებები"
+
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr "ავტორიზირებული შეერთებული აპლიკაციები"
 
 #: lib/dberroraction.php:60
 msgid "Database error"
+msgstr "მონაცემთა ბაზის შეცდომა"
+
+#: lib/designsettings.php:105
+msgid "Upload file"
+msgstr "ფაილის ატვირთვა"
+
+#: lib/designsettings.php:109
+msgid ""
+"You can upload your personal background image. The maximum file size is 2MB."
 msgstr ""
+"თქვენ შეგიძლიათ ატვირთოთ პერსონალური ფონური სურათი. ფაილის დასაშვები ზომაა "
+"2მბ."
+
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr "დიზაინის პირველადი პარამეტრები დაბრუნებულია."
+
+#: lib/disfavorform.php:114 lib/disfavorform.php:140
+msgid "Disfavor this notice"
+msgstr "ამოშალე რჩეულებიდან ეს შეტყობინება"
+
+#: lib/favorform.php:114 lib/favorform.php:140
+msgid "Favor this notice"
+msgstr "ჩაამატე რჩეულებში ეს შეტყობინება"
 
 #: lib/favorform.php:140
 msgid "Favor"
-msgstr ""
+msgstr "რჩეული"
 
 #: lib/feed.php:85
 msgid "RSS 1.0"
-msgstr ""
+msgstr "RSS 1.0"
 
 #: lib/feed.php:87
 msgid "RSS 2.0"
-msgstr ""
+msgstr "RSS 2.0"
 
 #: lib/feed.php:89
 msgid "Atom"
-msgstr ""
+msgstr "Atom"
 
 #: lib/feed.php:91
 msgid "FOAF"
-msgstr ""
+msgstr "FOAF"
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "მონაცემების გატანა"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
-msgstr ""
+msgstr "სანიშნეების გაფილტვრა"
+
+#: lib/galleryaction.php:131
+msgid "All"
+msgstr "ყველა"
 
 #: lib/galleryaction.php:139
 msgid "Select tag to filter"
+msgstr "აირჩიე გასაფილტრი სანიშნე"
+
+#: lib/galleryaction.php:140
+msgid "Tag"
+msgstr "სანიშნე"
+
+#: lib/galleryaction.php:141
+msgid "Choose a tag to narrow list"
+msgstr "სიის გასაფილტრად აირჩიე სანიშნე"
+
+#: lib/galleryaction.php:143
+msgid "Go"
+msgstr "წინ"
+
+#: lib/grantroleform.php:91
+#, php-format
+msgid "Grant this user the \"%s\" role"
+msgstr "მიანიჭე ამ მომხმარებელს \"%s\" როლი"
+
+#: lib/groupeditform.php:163
+msgid "URL of the homepage or blog of the group or topic"
+msgstr "საწყისი გვერდის URL, ან ჯგუფის/თემის ბლოგი"
+
+#: lib/groupeditform.php:168
+msgid "Describe the group or topic"
+msgstr "აღწერე ჯგუფი ან თემა"
+
+#: lib/groupeditform.php:170
+#, php-format
+msgid "Describe the group or topic in %d characters"
+msgstr "არწერე ჯგუფი ან თემა %d სიმბოლოთი"
+
+#: lib/groupeditform.php:179
+msgid ""
+"Location for the group, if any, like \"City, State (or Region), Country\""
+msgstr ""
+"ჯგუფის მდებარეობა არსებობის შემთხვევაში. მაგ.: \"ქალაქი, ქვეყანა (ან რეგიონი)"
+"\""
+
+#: lib/groupeditform.php:187
+#, php-format
+msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgstr ""
+"ჯგუფის დამატებითი მეტსახელები. გამოყავით მძიმით ან სივრცით. მაქსიმუმ %d "
+"სიმბოლო"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
 msgstr ""
 
-#: lib/galleryaction.php:141
-msgid "Choose a tag to narrow list"
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
 msgstr ""
 
-#: lib/galleryaction.php:143
-msgid "Go"
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
 msgstr ""
 
-#: lib/grantroleform.php:91
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
-msgid "Grant this user the \"%s\" role"
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
 msgstr ""
 
-#: lib/groupeditform.php:168
-msgid "Describe the group or topic"
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupeditform.php:187
-#, php-format
-msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
+msgid "Logo"
 msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
+#: lib/groupsbymemberssection.php:71
+msgid "Groups with most members"
+msgstr "ჯგუფები უმეტესი მომხმარებლებით"
+
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
-msgstr ""
+msgstr "ჯგუფები უმეტესი პოსტებით"
 
 #: lib/grouptagcloudsection.php:56
 #, php-format
 msgid "Tags in %s group's notices"
-msgstr ""
+msgstr "%s ჯგუფის შეტყობინებებში გამოყენებული სანიშნეები"
 
 #. TRANS: Client exception 406
 #: lib/htmloutputter.php:104
 msgid "This page is not available in a media type you accept"
-msgstr ""
+msgstr "ეს გვერდი მიუწვდომელია იმ მედია ფორმატში რომელსაც თქვენ იღებთ"
+
+#: lib/imagefile.php:72
+msgid "Unsupported image file format."
+msgstr "სურათის ფორმატი მხარდაჭერილი არ არის."
+
+#: lib/imagefile.php:88
+#, php-format
+msgid "That file is too big. The maximum file size is %s."
+msgstr "ეს ფაილი ძალიან დიდია. ფაილის მაქს. ზომაა %s."
+
+#: lib/imagefile.php:93
+msgid "Partial upload."
+msgstr "ნაწილობრივი ატვირთვა."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
-msgstr ""
+msgstr "სისტემური შეცდომა ფაილის ატვირთვისას."
 
 #: lib/imagefile.php:109
 msgid "Not an image or corrupt file."
-msgstr ""
+msgstr "სურათი არ არის, ან ფაილი დაზიანებულია."
+
+#: lib/imagefile.php:122
+msgid "Lost our file."
+msgstr "ფაილი დაიკარგა."
 
 #: lib/imagefile.php:163 lib/imagefile.php:224
 msgid "Unknown file type"
-msgstr ""
+msgstr "ფაილის ტიპი უცნობია"
 
 #: lib/imagefile.php:244
 msgid "MB"
-msgstr ""
+msgstr "მბ"
 
 #: lib/imagefile.php:246
 msgid "kB"
-msgstr ""
+msgstr "კბ"
 
 #: lib/jabber.php:387
 #, php-format
 msgid "[%s]"
+msgstr "[%s]"
+
+#: lib/jabber.php:567
+#, php-format
+msgid "Unknown inbox source %d."
 msgstr ""
 
+#: lib/joinform.php:114
+msgid "Join"
+msgstr "გაერთიანება"
+
+#: lib/leaveform.php:114
+msgid "Leave"
+msgstr "დატოვება"
+
+#: lib/logingroupnav.php:80
+msgid "Login with a username and password"
+msgstr "შედი მომხ. სახელით და პაროლით."
+
 #: lib/logingroupnav.php:86
 msgid "Sign up for a new account"
-msgstr ""
+msgstr "ახალი ანგარიშის გერისტრაცია"
+
+#. TRANS: Subject for address confirmation email
+#: lib/mail.php:174
+msgid "Email address confirmation"
+msgstr "ელ. ფოსტის მისამართის დადასტურება"
 
 #. TRANS: Body for address confirmation email.
 #: lib/mail.php:177
@@ -4749,6 +6289,24 @@ msgid ""
 "Thanks for your time, \n"
 "%s\n"
 msgstr ""
+"გამარჯობა %s.\n"
+"\n"
+"ვიღაცამ ეხლახანს ეს ელ. ფოსტის მისამართი %s-ზე შეიყვანა.\n"
+"\n"
+"თუ ეს თქვენ იყავით, მაშინ დასადასტურებლად მიფყევით ამ ბმულს:\n"
+"\n"
+"%s\n"
+"\n"
+"თუ არა, უბრალოდ არ მიაქციოთ ამ წერილს ყურადღება.\n"
+"\n"
+"გმადლობთ რომ დრო დაგვითმეთ,\n"
+"%s\n"
+
+#. TRANS: Subject of new-subscriber notification e-mail
+#: lib/mail.php:243
+#, php-format
+msgid "%1$s is now listening to your notices on %2$s."
+msgstr "%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე."
 
 #: lib/mail.php:248
 #, php-format
@@ -4756,6 +6314,9 @@ msgid ""
 "If you believe this account is being used abusively, you can block them from "
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
+"ტუ თქვენ გგონიათ, რომ ეს ანგარიში არაკეთილსინგისიერად გამოიყენება, შეგიძლიათ "
+"დაბლოკოთ ის თქვნი გამომწერებიდან და უჩივლოთ მას საიტის ადმინისტრაციასთან აქ %"
+"s"
 
 #. TRANS: Main body of new-subscriber notification e-mail
 #: lib/mail.php:254
@@ -4772,6 +6333,28 @@ msgid ""
 "----\n"
 "Change your email address or notification options at %8$s\n"
 msgstr ""
+"%1$s ამიერიდან ყურს უგდებს თქვენს შეტყობინებებს %2$s-ზე.\n"
+"\n"
+"%3$s\n"
+"\n"
+"%4$s%5$s%6$s\n"
+"პატივისცემით,\n"
+"%7$s.\n"
+"\n"
+"----\n"
+"შეცვალეთ თქვენი ელ. ფოსტის მისამართი ან შეტყობინებების პარამეტრები აქ %8$s\n"
+
+#. TRANS: Profile info line in new-subscriber notification e-mail
+#: lib/mail.php:274
+#, php-format
+msgid "Bio: %s"
+msgstr "ბიოგრაფია: %s"
+
+#. TRANS: Subject of notification mail for new posting email address
+#: lib/mail.php:304
+#, php-format
+msgid "New email address for posting to %s"
+msgstr "%s-ზე დასაპოსტი ახალი ელ. ფოსტის მისამართი"
 
 #. TRANS: Body of notification mail for new posting email address
 #: lib/mail.php:308
@@ -4786,12 +6369,32 @@ msgid ""
 "Faithfully yours,\n"
 "%4$s"
 msgstr ""
+"თქვენ ახალი დასაპოსტი ელ. ფოსტის მისამართი გაქვთ %1$s-ზე.\n"
+"\n"
+"გააგზავნეთ ელ. წერილი %2$s-ზე, რომ დაპოსტოთ ახალი შეტყობინებები.\n"
+"\n"
+"მეტი ინსტრუქციები ელ. ფოსტის შესახებ აქ %3$s.\n"
+"\n"
+"პატივისცემით,\n"
+"%4$s"
+
+#. TRANS: Subject line for SMS-by-email notification messages
+#: lib/mail.php:433
+#, php-format
+msgid "%s status"
+msgstr "%s სტატუსი"
+
+#. TRANS: Subject line for SMS-by-email address confirmation message
+#: lib/mail.php:460
+msgid "SMS confirmation"
+msgstr "SMS დადასტურება"
 
 #. TRANS: Main body heading for SMS-by-email address confirmation message
 #: lib/mail.php:463
 #, php-format
 msgid "%s: confirm you own this phone number with this code:"
 msgstr ""
+"%s: დაადასტურეთ, რომ ეს მობილურის ნომერი მართლაც თქვენია ამ კოდის მეშვეობით:"
 
 #. TRANS: Subject for 'nudge' notification email
 #: lib/mail.php:484
@@ -4815,6 +6418,23 @@ msgid ""
 "With kind regards,\n"
 "%4$s\n"
 msgstr ""
+"%1$s (%2$s) დაინტერესდა თუ რას აკეთებთ ამ დღეებში და გეპატიჟებათ რაიმე "
+"სიახლეების დასაპოსტად.\n"
+"\n"
+"ასე რომ გისმენთ დიდი ინტერესით :)\n"
+"\n"
+"%3$s\n"
+"\n"
+"ნუ უპასუხებთ ამ წერილს; ადრესატს არ მიუვა.\n"
+"\n"
+"პატივისცემით,\n"
+"%4$s\n"
+
+#. TRANS: Subject for direct-message notification email
+#: lib/mail.php:536
+#, php-format
+msgid "New private message from %s"
+msgstr "ახალი პირადი შეტყობინება %s-სგან"
 
 #. TRANS: Body for direct-message notification email
 #: lib/mail.php:541
@@ -4835,6 +6455,26 @@ msgid ""
 "With kind regards,\n"
 "%5$s\n"
 msgstr ""
+"%1$s-მა (%2$s) გამოგიგზავნათ პირადი შეტყობინება:\n"
+"\n"
+"-------------------------------------------------------\n"
+"%3$s\n"
+"-------------------------------------------------------\n"
+"\n"
+"თქვენ შეგიძლიათ უპასუხოთ ამ შეტყობინებას აქ:\n"
+"\n"
+"%4$s\n"
+"\n"
+"არ უპასუხოთ ამ წერილს; ადრესატს არ მიუვა.\n"
+"\n"
+"პატივისცემით,\n"
+"%5$s\n"
+
+#. TRANS: Subject for favorite notification email
+#: lib/mail.php:589
+#, php-format
+msgid "%s (@%s) added your notice as a favorite"
+msgstr "%s-მა (@%s) დაამატა თქვენი შეტყობინება თავის რჩეულებში"
 
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
@@ -4857,6 +6497,23 @@ msgid ""
 "Faithfully yours,\n"
 "%6$s\n"
 msgstr ""
+"%1$s-მა (@%7$s) ეხლახანს დაამატა თქვენი შეტყობინება თავის რჩეულებში %2$s-"
+"ზე.\n"
+"\n"
+"შეტყობინების URL-ია:\n"
+"\n"
+"%3$s\n"
+"\n"
+"თქვენი შეტყობინების ტექსტია:\n"
+"\n"
+"%4$s\n"
+"\n"
+"თქვენ შეგიძლიათ ნახოთ %1$s-ის რჩეული შეტყობინებების სია აქ:\n"
+"\n"
+"%5$s\n"
+"\n"
+"პატივისცემით,\n"
+"%6$s\n"
 
 #. TRANS: Line in @-reply notification e-mail. %s is conversation URL.
 #: lib/mail.php:651
@@ -4866,11 +6523,14 @@ msgid ""
 "\n"
 "\t%s"
 msgstr ""
+"მთლიანი საუბრის წაკითხვა შესაძლებელია აქ:\n"
+"\n"
+"%s"
 
 #: lib/mail.php:657
 #, php-format
 msgid "%s (@%s) sent a notice to your attention"
-msgstr ""
+msgstr "%s-მა (@%s) გამოაგზავნა შეტყობინება თქვენს საყურადღებოდ"
 
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
@@ -4900,324 +6560,664 @@ msgid ""
 "P.S. You can turn off these email notifications here: %8$s\n"
 msgstr ""
 
+#: lib/mailbox.php:89
+msgid "Only the user can read their own mailboxes."
+msgstr "მხოლოდ მომხმარებელს შეუძლია თავისი ფოსტის წაკითხვა."
+
 #: lib/mailbox.php:139
 msgid ""
 "You have no private messages. You can send private message to engage other "
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
+"თქვენ არ გაქვთ პირადი შეტყობინებები. თქვენ შეგიძლიათ გააგზავნოთ პირადი "
+"შეტყობინებები, რომ ჩაერთოთ საუბრებში სხვა ხალხთან. ხალხს შეუძლია "
+"გამოგიგზავნონ შეტყობინებები მხოლოდ თქვენ დასანახად."
 
 #: lib/mailbox.php:228 lib/noticelist.php:506
 msgid "from"
+msgstr "ვისგან"
+
+#: lib/mailhandler.php:37
+msgid "Could not parse message."
+msgstr "შეტყობინების გაცრა (გა-parse-ვა) ვერ მოხერხდა."
+
+#: lib/mailhandler.php:42
+msgid "Not a registered user."
+msgstr "მომხმარებელი რეგისტრირებული არ არის."
+
+#: lib/mailhandler.php:46
+msgid "Sorry, that is not your incoming email address."
 msgstr ""
+"ბოდიში, მაგრამ ეს არ არის თქვენი რეგისტრირებული შემომავალი ელ. ფოსტის "
+"მისამართი."
+
+#: lib/mailhandler.php:50
+msgid "Sorry, no incoming email allowed."
+msgstr "ბოდიში, შემომავალი ელ. ფოსტის მისამართი არ არის დაშვებული."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#: lib/mailhandler.php:228
+#, php-format
+msgid "Unsupported message type: %s"
+msgstr "შეტყობინების ტიპი არ არის მხარდაჭერილი: %s"
+
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
-msgstr ""
+msgstr "ფაილის შენახვისას მოხდა მონაცემთა ბაზის შეცდომა. გთხოვთ კიდევ სცადოთ."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
+"ასატვირთი ფაილი სცდება  ფაილის დაშვებულ ზომას. upload_max_filesize დირექტივა "
+"php.ini-ში."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
+"ასატვირთი ფაილი სცდება MAX_FILE_SIZE დირექტივას, რომელიც მითითებული იყო HTML "
+"ფორმაში."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
-msgstr ""
+msgstr "ასატვირთი ფაილი მხოლოდ ნაწილობრივ აიტვირთა."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
-msgstr ""
+msgstr "დროებითი საქაღალდე ვერ მოიძებნა."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
-msgstr ""
+msgstr "ფაილის დისკზე ჩაწერა ვერ მოხერხდა."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
-msgstr ""
+msgstr "ფაილის არვირთვა გაჩერდა გაფართოების გამო."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
-msgstr ""
+msgstr "ფაილი სცდება მომხმარებლის კვოტას."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
-msgstr ""
+msgstr "ფაილის გადატანა დანიშნულების დირექტორიაში ვერ მოხერხდა."
+
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
+msgid "Could not determine file's MIME type."
+msgstr "ფაილის MIME ტიპი ვერ დადგინდა."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
+#: lib/messageform.php:120
+msgid "Send a direct notice"
+msgstr "გააგზავნე პირდაპირი შეტყობინება"
+
 #: lib/messageform.php:146
 msgid "To"
-msgstr ""
+msgstr "ვის"
+
+#: lib/messageform.php:159 lib/noticeform.php:186
+msgid "Available characters"
+msgstr "ხელმისაწვდომი სიმბოლოები"
+
+#: lib/messageform.php:178 lib/noticeform.php:237
+msgctxt "Send button for sending notice"
+msgid "Send"
+msgstr "გაგზავნა"
+
+#: lib/noticeform.php:160
+msgid "Send a notice"
+msgstr "შეტყობინების გაგზავნა"
 
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
-msgstr ""
+msgstr "რა არის ახალი %s?"
 
 #: lib/noticeform.php:193
 msgid "Attach"
-msgstr ""
+msgstr "ფაილის მიმაგრება"
 
 #: lib/noticeform.php:197
 msgid "Attach a file"
-msgstr ""
+msgstr "მიამაგრე ფაილი"
 
 #: lib/noticeform.php:213
 msgid "Share my location"
-msgstr ""
+msgstr "გააზიარე ჩემი მდებარეობა"
+
+#: lib/noticeform.php:216
+msgid "Do not share my location"
+msgstr "არ გააზიარო ჩემი მდებარეობა"
 
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
+"ბოდიში, როგორც ჩანს ადგილმდებარეობის დადგენას ჩვეულებრივზე მეტი ხანი "
+"სჭირდება, გთხოვთ სცადოთ მოგვიანებით"
+
+#. TRANS: Used in coordinates as abbreviation of north
+#: lib/noticelist.php:436
+msgid "N"
+msgstr "ჩ"
 
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
-msgstr ""
+msgstr ""
 
 #. TRANS: Used in coordinates as abbreviation of east
 #: lib/noticelist.php:440
 msgid "E"
-msgstr ""
+msgstr ""
 
 #. TRANS: Used in coordinates as abbreviation of west
 #: lib/noticelist.php:442
 msgid "W"
-msgstr ""
+msgstr ""
 
 #: lib/noticelist.php:444
 #, php-format
 msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
+msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
+
+#: lib/noticelist.php:453
+msgid "at"
 msgstr ""
 
 #: lib/noticelist.php:502
 msgid "web"
 msgstr ""
 
+#: lib/noticelist.php:568
+msgid "in context"
+msgstr ""
+
+#: lib/noticelist.php:603
+msgid "Repeated by"
+msgstr ""
+
+#: lib/noticelist.php:630
+msgid "Reply to this notice"
+msgstr "უპასუხე ამ შეტყობინებას"
+
 #: lib/noticelist.php:631
 msgid "Reply"
+msgstr "პასუხი"
+
+#: lib/noticelist.php:675
+msgid "Notice repeated"
+msgstr "შეტყობინება გამეორებულია"
+
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
 msgstr ""
 
 #: lib/nudgeform.php:128
 msgid "Nudge"
 msgstr ""
 
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr ""
+
+#: lib/oauthstore.php:283
+msgid "Error inserting new profile."
+msgstr ""
+
+#: lib/oauthstore.php:291
+msgid "Error inserting avatar."
+msgstr ""
+
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
+
+#: lib/oauthstore.php:491
+msgid "Couldn't insert new subscription."
+msgstr "ახალი გამოწერის ჩასმა ვერ მოხერხდა."
+
+#: lib/personalgroupnav.php:99
+msgid "Personal"
+msgstr "პირადი"
+
+#: lib/personalgroupnav.php:104
+msgid "Replies"
+msgstr "პასუხები"
+
+#: lib/personalgroupnav.php:114
+msgid "Favorites"
+msgstr "რჩეულები"
+
 #: lib/personalgroupnav.php:125
 msgid "Inbox"
-msgstr ""
+msgstr "შემომავალი წერილების ყუთი"
+
+#: lib/personalgroupnav.php:126
+msgid "Your incoming messages"
+msgstr "თქვენი შემომავალი შეტყობინებები"
+
+#: lib/personalgroupnav.php:130
+msgid "Outbox"
+msgstr "გამავალი წერილების ყუთი"
+
+#: lib/personalgroupnav.php:131
+msgid "Your sent messages"
+msgstr "თქვენი გაგზავნილი წერილები"
 
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
-msgstr ""
+msgstr "%s-ს შეტყობინებებში გამოყენებული სანიშნეები"
+
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
+msgid "Unknown"
+msgstr "უცნობი"
+
+#: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82
+msgid "Subscriptions"
+msgstr "გამოწერები"
+
+#: lib/profileaction.php:126
+msgid "All subscriptions"
+msgstr "ყველა გამოწერა"
+
+#: lib/profileaction.php:144 lib/profileaction.php:214 lib/subgroupnav.php:90
+msgid "Subscribers"
+msgstr "გამომწერები"
+
+#: lib/profileaction.php:161
+msgid "All subscribers"
+msgstr "ყველა გამომწერი"
 
 #: lib/profileaction.php:191
 msgid "User ID"
+msgstr "მომხმარებლის იდ"
+
+#: lib/profileaction.php:196
+msgid "Member since"
 msgstr ""
 
 #. TRANS: Average count of posts made per day since account registration
 #: lib/profileaction.php:235
 msgid "Daily average"
-msgstr ""
+msgstr "დღიური საშუალო"
+
+#: lib/profileaction.php:264
+msgid "All groups"
+msgstr "ყველა ჯგუფი"
 
 #: lib/profileformaction.php:123
 msgid "Unimplemented method."
-msgstr ""
+msgstr "მეთოდი განუხორციელებელია."
 
 #: lib/publicgroupnav.php:78
 msgid "Public"
+msgstr "საჯარო"
+
+#: lib/publicgroupnav.php:82
+msgid "User groups"
 msgstr ""
 
 #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
 msgid "Recent tags"
+msgstr "ბოლო სანიშნეები"
+
+#: lib/publicgroupnav.php:88
+msgid "Featured"
+msgstr ""
+
+#: lib/publicgroupnav.php:92
+msgid "Popular"
+msgstr "პოპულარული"
+
+#: lib/redirectingaction.php:95
+msgid "No return-to arguments."
 msgstr ""
 
+#: lib/repeatform.php:107
+msgid "Repeat this notice?"
+msgstr "გავიმეორო ეს შეტყობინება?"
+
+#: lib/repeatform.php:132
+msgid "Yes"
+msgstr "დიახ"
+
+#: lib/repeatform.php:132
+msgid "Repeat this notice"
+msgstr "შეტყობინების გამეორება"
+
+#: lib/revokeroleform.php:91
+#, php-format
+msgid "Revoke the \"%s\" role from this user"
+msgstr "ჩამოართვი \"%s\" როლი ამ მომხმარებელს"
+
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
-msgstr ""
+msgstr "ერთი მომხმარებელი არ განსაზღვრულა ერთარედთი-მომხმარებლის რეჟიმისთვის."
 
 #: lib/sandboxform.php:67
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:120
+#: lib/sandboxform.php:78
+msgid "Sandbox this user"
+msgstr "ამ მომხმარებლის იზოლირება"
+
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
-msgstr ""
+msgstr "ძიება საიტზე"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
+msgstr "საკვანძო სიტყვები"
+
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
+msgid "Search"
 msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
-msgstr ""
+msgstr "ძიება დახმარებაში"
+
+#: lib/searchgroupnav.php:80
+msgid "People"
+msgstr "ადამიანები"
 
 #: lib/searchgroupnav.php:81
 msgid "Find people on this site"
-msgstr ""
+msgstr "მოძებნე ადამიანები ამ საიტზე"
 
 #: lib/searchgroupnav.php:83
 msgid "Find content of notices"
-msgstr ""
+msgstr "მოძებნე შეტყობინებებში"
+
+#: lib/searchgroupnav.php:85
+msgid "Find groups on this site"
+msgstr "მოძებნე ჯგუფები ამ საიტზე"
 
 #: lib/section.php:89
 msgid "Untitled section"
-msgstr ""
+msgstr "უსათაურო სექცია"
 
 #: lib/section.php:106
 msgid "More..."
+msgstr "მეტი..."
+
+#: lib/silenceform.php:67
+msgid "Silence"
+msgstr "დადუმება"
+
+#: lib/silenceform.php:78
+msgid "Silence this user"
+msgstr "ამ მომხმარებლის დადუმება"
+
+#: lib/subgroupnav.php:83
+#, php-format
+msgid "People %s subscribes to"
+msgstr ""
+
+#: lib/subgroupnav.php:91
+#, php-format
+msgid "People subscribed to %s"
+msgstr ""
+
+#: lib/subgroupnav.php:99
+#, php-format
+msgid "Groups %s is a member of"
 msgstr ""
 
+#: lib/subgroupnav.php:105
+msgid "Invite"
+msgstr "მოწვევა"
+
+#: lib/subgroupnav.php:106
+#, php-format
+msgid "Invite friends and colleagues to join you on %s"
+msgstr "მოიწვიე მეგობრები და კოლეგები %s-ზე"
+
 #: lib/subscriberspeopleselftagcloudsection.php:48
 #: lib/subscriptionspeopleselftagcloudsection.php:48
 msgid "People Tagcloud as self-tagged"
-msgstr ""
+msgstr "მომხმარებლების სანიშნეების ღრუბელი (თვითმონიშნული)"
 
 #: lib/subscriberspeopletagcloudsection.php:48
 #: lib/subscriptionspeopletagcloudsection.php:48
 msgid "People Tagcloud as tagged"
-msgstr ""
+msgstr "მომხმარებლების სანიშნეების ღრუბელი (როგორც სხვებმა მონიშნეს)"
+
+#: lib/tagcloudsection.php:56
+msgid "None"
+msgstr "არაფერი"
 
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
-msgstr ""
+msgstr "ამ სერვერს არ შეუძლია თემების ატვირთვა ZIP-ის მხარდაჭერის გარეშე."
 
 #: lib/themeuploader.php:58 lib/themeuploader.php:61
 msgid "The theme file is missing or the upload failed."
-msgstr ""
+msgstr "თემის ფაილი არ არის, ან ატვირთვა ვერ მოხერხდა."
+
+#: lib/themeuploader.php:91 lib/themeuploader.php:102
+#: lib/themeuploader.php:278 lib/themeuploader.php:282
+#: lib/themeuploader.php:290 lib/themeuploader.php:297
+msgid "Failed saving theme."
+msgstr "თემის შენახვა ჩაიშალა."
 
 #: lib/themeuploader.php:147
 msgid "Invalid theme: bad directory structure."
-msgstr ""
+msgstr "არასწორი თემა: დირექტორიების არასწორი სტრუქტურა."
 
 #: lib/themeuploader.php:166
 #, php-format
 msgid "Uploaded theme is too large; must be less than %d bytes uncompressed."
-msgstr ""
+msgstr "ატვირთული თემა ძალიან დიდია; შეუკუმშავი უნდა იყოს %d ბაიტზე ნაკლები."
 
 #: lib/themeuploader.php:178
 msgid "Invalid theme archive: missing file css/display.css"
-msgstr ""
+msgstr "თემის არასწორი არქივი: ფაილი css/display.css არ არის"
 
 #: lib/themeuploader.php:218
 msgid ""
 "Theme contains invalid file or folder name. Stick with ASCII letters, "
 "digits, underscore, and minus sign."
 msgstr ""
+"თემა შეიცავს ფაილის ან საქაღალდის არასწორ სახელს. გამოიყენეთ ASCII ასოები, "
+"ციფრები, ქვედა ტირე, და მინუსის ნიშანი."
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"თემა ფაილის  გაფართოებების საშიშ სახელებს შეიცავს; შეიძლება არ იყოს უსაფრთხო."
 
 #: lib/themeuploader.php:241
 #, php-format
 msgid "Theme contains file of type '.%s', which is not allowed."
-msgstr ""
+msgstr "თემა შეიცავს ფაილის ტიპს '.%s', რომელიც აკრძალულია."
+
+#: lib/themeuploader.php:259
+msgid "Error opening theme archive."
+msgstr "თემის არქივის გახსნისას მოხდა შეცდომა."
 
 #: lib/topposterssection.php:74
 msgid "Top posters"
-msgstr ""
+msgstr "საუკეთესო მპოსტავები"
 
 #: lib/unsandboxform.php:69
 msgid "Unsandbox"
-msgstr ""
+msgstr "იზოლირების მოხსნა"
+
+#: lib/unsandboxform.php:80
+msgid "Unsandbox this user"
+msgstr "ამ მომხმარებლის იზოლირების მოხსნა"
 
 #: lib/unsilenceform.php:67
 msgid "Unsilence"
-msgstr ""
+msgstr "დადუმების მოხსნა"
+
+#: lib/unsilenceform.php:78
+msgid "Unsilence this user"
+msgstr "ამ მომხმარებლის დადუმების მოხსნა"
+
+#: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137
+msgid "Unsubscribe from this user"
+msgstr "ამ მომხმარებლის გამოწერის გაუქმება"
+
+#: lib/unsubscribeform.php:137
+msgid "Unsubscribe"
+msgstr "გამოწერის გაუქმება"
+
+#: lib/userprofile.php:117
+msgid "Edit Avatar"
+msgstr "ავატარის რედაქტირება"
+
+#: lib/userprofile.php:234 lib/userprofile.php:248
+msgid "User actions"
+msgstr "მომხმარებლის მოქმედებები"
 
 #: lib/userprofile.php:237
 msgid "User deletion in progress..."
-msgstr ""
+msgstr "მომხმარებლის წაშლა პროგრესშია..."
+
+#: lib/userprofile.php:263
+msgid "Edit profile settings"
+msgstr "პროფილის პარამეტრების რედაქტირება"
 
 #: lib/userprofile.php:264
 msgid "Edit"
-msgstr ""
+msgstr "რედაქტირება"
+
+#: lib/userprofile.php:287
+msgid "Send a direct message to this user"
+msgstr "გაუგზავნე პირდაპირი შეტყობინება ამ მომხმარებელს"
+
+#: lib/userprofile.php:288
+msgid "Message"
+msgstr "შეტყობინება"
 
 #: lib/userprofile.php:326
 msgid "Moderate"
-msgstr ""
+msgstr "მოდერაცია"
+
+#: lib/userprofile.php:364
+msgid "User role"
+msgstr "მომხმარებლის როლი"
 
 #: lib/userprofile.php:366
 msgctxt "role"
 msgid "Administrator"
-msgstr ""
+msgstr "ადმინისტრატორი"
 
 #: lib/userprofile.php:367
 msgctxt "role"
 msgid "Moderator"
-msgstr ""
+msgstr "მოდერატორი"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
-msgstr ""
+msgstr "რამდენიმე წამის წინ"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
-msgstr ""
+msgstr "დაახლოებით 1 წუთის წინ"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr ""
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
-msgstr ""
+msgstr "დაახლოებით 1 საათის წინ"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr ""
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
-msgstr ""
+msgstr "დაახლოებით 1 დღის წინ"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr ""
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
-msgstr ""
+msgstr "დაახლოებით 1 თვის წინ"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr ""
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
-msgstr ""
+msgstr "დაახლოებით 1 წლის წინ"
+
+#: lib/webcolor.php:82
+#, php-format
+msgid "%s is not a valid color!"
+msgstr "%s არ არის სწორი ფერი!"
 
 #: lib/webcolor.php:123
 #, php-format
 msgid "%s is not a valid color! Use 3 or 6 hex chars."
 msgstr ""
+"%s არ არის სწორი ფერი! გამოიყენეთ 3 ან 6 სიმბოლოიანი თექვსმეტობითი ციფრი."
index 7a2504c04d7d66339ca4170c6b3df3062dc78970..0a7d97343d4a88755732296d3954063e09128cd2 100644 (file)
@@ -1,29 +1,31 @@
-# Translation of StatusNet to Korean
+# Translation of StatusNet - Core to Korean (한국어)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Changwoo
-# Author@translatewiki.net: Twkang
+# Author: Brion
+# Author: Changwoo
+# Author: Twkang
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:50+0000\n"
-"Language-Team: Korean\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:05+0000\n"
+"Language-Team: Korean <http://translatewiki.net/wiki/Portal:ko>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ko\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "접근"
 
@@ -76,10 +78,10 @@ msgstr "접근 설정을 저장"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "저장"
@@ -92,15 +94,15 @@ msgstr "해당하는 페이지 없음"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -194,16 +196,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "%2$s에 있는 %1$s 및 친구들의 업데이트!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -218,47 +220,49 @@ msgstr "%2$s에 있는 %1$s 및 친구들의 업데이트!"
 msgid "API method not found."
 msgstr "API 메서드 발견 안 됨."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "이 메서드는 POST를 요구합니다."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "이용자를 업데이트 할 수 없습니다."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "이용자가 프로필을 가지고 있지 않습니다."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "프로필을 저장 할 수 없습니다."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -270,30 +274,30 @@ msgstr ""
 "현재 설정으로 인해 너무 많은 POST 데이터(%s 바이트)는 서버에서 처리할 수 없습"
 "니다."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "디자인 설정을 저장할 수 없습니다."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "디자인을 업데이트 할 수 없습니다."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "자기 자신은 차단할 수 없습니다."
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "이용자 차단에 실패했습니다."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "이용자 차단 해제에 실패했습니다."
 
@@ -317,66 +321,62 @@ msgstr "%s에게 직접 메시지"
 msgid "All the direct messages sent to %s"
 msgstr "%s에게 모든 직접 메시지"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "메시지 내용이 없습니다!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "너무 깁니다. 최대 메시지 길이는 %d자 까지입니다."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "받는 사용자가 없습니다."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "당신의 친구가 아닌 사용자에게 직접 메시지를 보낼 수 없습니다."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "그 ID로 발견된 상태가 없습니다."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "이 소식은 이미 관심소식으로 등록되어 있습니다."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "관심소식을 생성할 수 없습니다."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "이 소식은 관심소식이 아닙니다."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "관심소식을 삭제할 수 없습니다."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "언팔로우할 수 없습니다: 이용자 없음."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "팔로우할 수 없습니다 : %s 님은 이미 리스트에 있습니다."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "언팔로우할 수 없습니다: 이용자 없음."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "자기 자신을 언팔로우할 수 없습니다."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "소스 이용자를 확인할 수 없습니다."
@@ -385,7 +385,7 @@ msgstr "소스 이용자를 확인할 수 없습니다."
 msgid "Could not find target user."
 msgstr "타겟 이용자를 찾을 수 없습니다."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -393,90 +393,90 @@ msgstr ""
 "별명은 반드시 영소문자와 숫자로만 이루어져야 하며 스페이스의 사용이 불가 합니"
 "다."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "유효한 별명이 아닙니다"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "홈페이지 주소형식이 올바르지 않습니다."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "실명이 너무 깁니다. (최대 255글자)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "설명이 너무 깁니다. (최대 %d 글자)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "위치가 너무 깁니다. (최대 255글자)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "별명이 너무 많습니다! 최대 %d개."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "별명 \"%s\" 이 이미 사용중 입니다. 다른 별명을 시도해 보십시오."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "찾을 수가 없습니다."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "당신은 이미 이 그룹의 멤버입니다."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "이미 차단된 이용자입니다."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "이용자 %1$s 의 그룹 %2$s 가입에 실패했습니다."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "당신은 해당 그룹의 멤버가 아닙니다."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -506,7 +506,7 @@ msgstr "%s 그룹"
 msgid "groups on %s"
 msgstr "%s 사이트의 그룹"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "실행 실패"
 
@@ -516,9 +516,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -557,8 +557,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -622,18 +622,18 @@ msgstr "이 메서드는 POST 또는 DELETE를 요구합니다."
 msgid "You may not delete another user's status."
 msgstr "당신은 다른 사용자의 상태를 삭제하지 않아도 된다."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "그러한 통지는 없습니다."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "자기 자신의 소식은 재전송할 수 없습니다."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "이미 재전송된 소식입니다."
 
@@ -645,21 +645,21 @@ msgstr "삭제된 소식입니다."
 msgid "No status with that ID found."
 msgstr "발견된 ID의 상태가 없습니다."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "너무 깁니다. 통지의 최대 길이는 %d 글자 입니다."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "찾을 수가 없습니다."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "소식의 최대 길이는 첨부 URL을 포함하여 %d 글자입니다."
@@ -834,7 +834,9 @@ msgid "Yes"
 msgstr "예"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "이 사용자 차단하기"
 
@@ -872,11 +874,13 @@ msgstr "%1$s 및 친구들, %2$d 페이지"
 msgid "Unblock user from group"
 msgstr "그룹 이용자는 차단해제"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "차단해제"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "이 사용자를 차단해제합니다."
 
@@ -898,12 +902,6 @@ msgstr "인증 코드가 없습니다."
 msgid "That confirmation code is not for you!"
 msgstr "그 인증 코드는 귀하의 것이 아닙니다!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -915,9 +913,9 @@ msgstr "그 주소는 이미 승인되었습니다."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -925,7 +923,7 @@ msgstr "사용자를 업데이트 할 수 없습니다."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "메일 승인을 삭제 할 수 없습니다."
@@ -961,9 +959,10 @@ msgstr "인증 코드가 없습니다."
 msgid "You are not the owner of this application."
 msgstr "이 응용프로그램 삭제 않기"
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "당신의 세션토큰관련 문제가 있습니다."
 
@@ -994,7 +993,7 @@ msgstr "이 응용프로그램 삭제"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "로그인하고 있지 않습니다."
@@ -1003,12 +1002,6 @@ msgstr "로그인하고 있지 않습니다."
 msgid "Can't delete this notice."
 msgstr "이 통지를 지울 수 없습니다."
 
-#: actions/deletenotice.php:103
-msgid ""
-"You are about to permanently delete a notice. Once this is done, it cannot "
-"be undone."
-msgstr ""
-
 #: actions/deletenotice.php:109 actions/deletenotice.php:141
 msgid "Delete notice"
 msgstr "통지 삭제"
@@ -1048,7 +1041,6 @@ msgstr "이 사용자 삭제"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "디자인"
 
@@ -1168,13 +1160,13 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "저장"
@@ -1233,6 +1225,14 @@ msgstr "기관 이름이 너무 깁니다. (최대 255글자)"
 msgid "Organization homepage is required."
 msgstr "기관 홈페이지가 필요합니다."
 
+#: actions/editapplication.php:218 actions/newapplication.php:206
+msgid "Callback is too long."
+msgstr ""
+
+#: actions/editapplication.php:225 actions/newapplication.php:215
+msgid "Callback URL is not valid."
+msgstr ""
+
 #: actions/editapplication.php:258
 msgid "Could not update application."
 msgstr "관심소식을 생성할 수 없습니다."
@@ -1306,7 +1306,7 @@ msgstr "확인된 최신의 메일 계정"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1324,22 +1324,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "취소"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "\"사용자이름@예제.org\"와 같은 메일 계정"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1347,110 +1351,110 @@ msgstr "추가"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "받은 메일"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "새로운 통지를 올리려면 이 주소로 메일을 보내십시오."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "포스팅을 위한 새 메일 계정의 생성; 전 메일 계정은 취소."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "새 게임"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "메일 설정"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "새로운 예약 구독의 통지를 메일로 보내주세요."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "누군가 내 글을 좋아하는 게시글로 추가했을 때, 메일을 보냅니다."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "누군가 내게 비밀메시지를 보냈을 때, 메일을 보냅니다."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "누군가 내게 @ 답장을 보냈을 때, 메일을 보냅니다."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "친구들이 내게 메일이나 쪽지를 보낼 수 있도록 허용합니다."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "메일로 통보를 포스트합니다."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "메일 주소를 위한 MicroID의 생성"
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "메일 설정이 저장되었습니다."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "메일 주소가 없습니다."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "메일 주소를 정규화 할 수 없습니다."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "올바른 메일 주소가 아닙니다."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "그 메일 주소는 이미 귀하의 것입니다."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "그 메일 주소는 이미 다른 사용자의 소유입니다."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "확인 코드를 추가 할 수 없습니다."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1461,45 +1465,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "취소 할 대기중인 인증이 없습니다."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "취소 할 대기중인 인증이 없습니다."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "그 메일 주소는 귀하의 것이 아닙니다."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "메일 주소를 지웠습니다."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "받는 메일 주소가 없습니다."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "사용자 기록을 업데이트 할 수 없습니다."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "받는 메일 주소를 지웠습니다."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "새로운 받는 메일 주소를 추가했습니다."
 
@@ -1558,11 +1562,6 @@ msgstr "인기있는 회원"
 msgid "Featured users, page %d"
 msgstr "인기있는 회원, %d페이지"
 
-#: actions/featured.php:99
-#, php-format
-msgid "A selection of some great users on %s"
-msgstr ""
-
 #: actions/file.php:34
 msgid "No notice ID."
 msgstr "그러한 통지는 없습니다."
@@ -1583,10 +1582,6 @@ msgstr "첨부문서 없음"
 msgid "Not expecting this response!"
 msgstr "예상치 못한 반응 입니다."
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "당신은 로컬 구독을 사용할 수 있습니다."
@@ -1599,14 +1594,6 @@ msgstr "이 사용자는 귀하의 구독을 차단했습니다."
 msgid "You are not authorized."
 msgstr "당신은 이 프로필에 구독되지 않고있습니다."
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:79
 msgid "No such file."
 msgstr "해당하는 파일이 없습니다."
@@ -1651,7 +1638,7 @@ msgstr "사용자가 귀하를 차단했습니다."
 msgid "User is not a member of group."
 msgstr "그룹 이용자는 차단해제"
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "그룹 이용자는 차단해제"
 
@@ -1711,31 +1698,45 @@ msgstr "로고를 업데이트했습니다."
 msgid "Failed updating logo."
 msgstr "로고 업데이트에 실패했습니다."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s 그룹 회원"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%s 그룹 회원"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "이 그룹의 회원리스트"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "관리자"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "차단하기"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
+
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "이 이용자를 관리자로 만듦"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1859,7 +1860,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1869,64 +1873,64 @@ msgstr ""
 "GTalk 친구목록에 반드시 %s 주소를 추가하여 주십시오."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "메일 설정"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Jabber/GTalk 로 통지를 보내주세요."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Jabber/GTalk의 상태가 변경되었을 때 통지를 보냅니다."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "내가 구독하지 않는 사람으로 부터의 답장을  Jabber/GTalk을 통해 보내주세요."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Jabber/GTalk 계정을 위한 MicroID의 생성"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "설정이 저장되었습니다."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Jabber ID가 아닙니다."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "그 Jabbar ID를 정규화 할 수 없습니다."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "유효한 Jabber ID가 아닙니다."
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "그 Jabber ID는 이미 귀하의 것입니다."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID가 이미 다른 사용자에 의하여 사용되고 있습니다."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1936,28 +1940,28 @@ msgstr ""
 "달할 수 있습니다."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "옳지 않은 메신저 계정 입니다."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "메신저 승인을 삭제 할 수 없습니다."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "확인 코드가 없습니다."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "그 Jabber ID는 귀하의 것이 아닙니다."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "메일 주소를 지웠습니다."
 
@@ -2173,12 +2177,6 @@ msgid ""
 msgstr ""
 "보안을 위해 세팅을 저장하기 전에 계정과 비밀 번호를 다시 입력 해 주십시오."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
@@ -2301,21 +2299,11 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
 #: actions/noticesearchrss.php:98
 #, php-format
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "%2$s에 있는 %1$s의 업데이트!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "찔러 보기를 보냈습니다."
@@ -2362,12 +2350,6 @@ msgstr "이용자가 프로필을 가지고 있지 않습니다."
 msgid "%1$s's status on %2$s"
 msgstr "%1$s의 상태 (%2$s에서)"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2375,8 +2357,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "지원하는 형식의 데이터가 아닙니다."
 
@@ -2504,7 +2486,7 @@ msgid "Password saved."
 msgstr "비밀 번호 저장"
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "경로"
 
@@ -2677,7 +2659,7 @@ msgstr "실명"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "홈페이지"
 
@@ -2685,10 +2667,6 @@ msgstr "홈페이지"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr "귀하의 홈페이지, 블로그 혹은 다른 사이트의 프로필 페이지 URL"
 
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "자기소개"
@@ -2771,7 +2749,7 @@ msgid "Couldn't save tags."
 msgstr "태그를 저장할 수 없습니다."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "설정 저장"
 
@@ -2824,14 +2802,6 @@ msgid ""
 "friends, family, and colleagues! ([Read more](%%doc.help%%))"
 msgstr ""
 
-#: actions/public.php:247
-#, php-format
-msgid ""
-"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
-"blogging) service based on the Free Software [StatusNet](http://status.net/) "
-"tool."
-msgstr ""
-
 #: actions/publictagcloud.php:57
 msgid "Public tag cloud"
 msgstr "공개 태그 클라우드"
@@ -3045,33 +3015,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -3120,18 +3063,6 @@ msgstr "구독"
 msgid "Invalid profile URL (bad format)"
 msgstr "옳지 않은 프로필 URL (나쁜 포멧)"
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
-#: actions/remotesubscribe.php:176
-msgid "That’s a local profile! Login to subscribe."
-msgstr ""
-
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:76
 msgid "You can't repeat your own notice."
 msgstr "자신의 글은 재전송할 수 없습니다."
@@ -3243,24 +3174,24 @@ msgid "Application profile"
 msgstr "신규 응용 프로그램"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "이름"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "기관 이름이 필요합니다."
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "설명"
 
@@ -3357,7 +3288,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "좋아하는 글을 지정하면 자기가 무엇을 좋아하는지 알릴 수 있습니다."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s 그룹"
@@ -3409,7 +3340,7 @@ msgstr "%s 그룹을 위한 공지피드 (Atom)"
 msgid "FOAF for %s group"
 msgstr "%s의 보낸쪽지함"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "회원"
 
@@ -3437,15 +3368,6 @@ msgid ""
 "of this group and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showgroup.php:461
-#, 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 "
-"[StatusNet](http://status.net/) tool. Its members share short messages about "
-"their life and interests. "
-msgstr ""
-
 #: actions/showmessage.php:81
 msgid "No such message."
 msgstr "그러한 메시지가 없습니다."
@@ -3513,14 +3435,6 @@ msgid ""
 "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showstream.php:248
-#, 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 "
-"[StatusNet](http://status.net/) tool. "
-msgstr ""
-
 #: actions/silence.php:65 actions/unsilence.php:65
 msgid "You cannot silence users on this site."
 msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다."
@@ -3780,7 +3694,7 @@ msgstr "코드가 입력 되지 않았습니다."
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4063,13 +3977,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "구독을 허가"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr "라이센스"
@@ -4095,24 +4002,10 @@ msgstr "허용되지 않는 요청입니다."
 msgid "Subscription authorized"
 msgstr "구독 허가"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "구독 거부"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -4133,14 +4026,9 @@ msgstr ""
 msgid "Profile URL ‘%s’ is for a local user."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
+#: actions/userauthorization.php:345
 #, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
+msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
 #: actions/userdesignsettings.php:76 lib/designsettings.php:65
@@ -4163,10 +4051,6 @@ msgstr ""
 msgid "%1$s groups, page %2$d"
 msgstr "그룹, %d 페이지"
 
-#: actions/usergroups.php:132
-msgid "Search for more groups"
-msgstr ""
-
 #: actions/usergroups.php:164
 #, php-format
 msgid "Try [searching for groups](%%action.groupsearch%%) and joining them."
@@ -4335,13 +4219,13 @@ msgid "Problem saving notice."
 msgstr "통지를 저장하는데 문제가 발생했습니다."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4366,7 +4250,7 @@ msgid "Unable to save tag."
 msgstr "태그를 저장할 수 없습니다."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "귀하는 구독이 금지되었습니다."
 
@@ -4463,12 +4347,6 @@ msgstr "제목없는 페이지"
 msgid "Primary site navigation"
 msgstr "주 사이트 네비게이션"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Main menu option when logged in for access to personal profile and friends timeline
 #: lib/action.php:458
 msgctxt "MENU"
@@ -4499,7 +4377,8 @@ msgid "Change site configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "관리"
@@ -4556,12 +4435,6 @@ msgctxt "MENU"
 msgid "Help"
 msgstr "도움말"
 
-#. TRANS: Tooltip for main menu option "Search"
-#: lib/action.php:513
-msgctxt "TOOLTIP"
-msgid "Search for people or text"
-msgstr ""
-
 #: lib/action.php:516
 msgctxt "MENU"
 msgid "Search"
@@ -4569,7 +4442,7 @@ msgstr "검색"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "사이트 공지"
 
@@ -4632,22 +4505,17 @@ msgstr "배지"
 msgid "StatusNet software license"
 msgstr "StatusNet 소프트웨어 라이선스"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4659,50 +4527,51 @@ msgstr ""
 "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "사이트 컨텐츠 라이선스"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "%1$s의 컨텐츠와 데이터는 외부 유출을 금지합니다."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "컨텐츠와 데이터의 저작권은 %1$s의 소유입니다. All rights reserved."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "컨텐츠와 데이터의 저작권은 각 이용자의 소유입니다. All rights reserved."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "%1$s의 모든 컨텐츠와 데이터는 %2$s 라이선스에 따라 이용할 수 있습니다."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "페이지수"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "뒷 페이지"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "앞 페이지"
 
@@ -4711,165 +4580,200 @@ msgstr "앞 페이지"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "이 사이트의 이용자에 대해 권한정지 할 수 없습니다."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "디자인 설정을 저장할 수 없습니다."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "사이트"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "디자인"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "사용자"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "메일 주소 확인"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "이 응용프로그램 삭제 않기"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "응용프로그램 삭제"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "응용프로그램 삭제"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "소스 코드 URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "브라우저"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "데스크톱"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "읽기 전용"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "읽기 쓰기"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "취소"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "읽기 쓰기"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "읽기 전용"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "제거"
@@ -4889,10 +4793,16 @@ msgstr "작성자"
 msgid "Provider"
 msgstr "미리보기"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "차단하기"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "실행결과"
@@ -4905,6 +4815,13 @@ msgstr "실행 완료"
 msgid "Command failed"
 msgstr "실행 실패"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4932,6 +4849,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "게시글이 좋아하는 글로 지정되었습니다."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4966,13 +4897,6 @@ msgid ""
 "same server."
 msgstr ""
 
-#. TRANS: Message given if content is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:491 lib/xmppmanager.php:403
-#, php-format
-msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
@@ -4983,27 +4907,23 @@ msgstr "직접 메시지 보내기 오류."
 msgid "Error repeating notice."
 msgstr "사용자 세팅 오류"
 
-#. TRANS: Message given if content of a notice for a reply is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:592
-#, php-format
-msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
 #: lib/command.php:606
 msgid "Error saving notice."
 msgstr "사용자 세팅 오류"
 
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -5044,8 +4964,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5053,7 +4980,7 @@ msgid_plural "You are subscribed to these people:"
 msgstr[0] "당신은 다음 사용자를 이미 구독하고 있습니다."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5061,13 +4988,14 @@ msgid_plural "These people are subscribed to you:"
 msgstr[0] "다른 사람을 구독 하실 수 없습니다."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "당신은 해당 그룹의 멤버가 아닙니다."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5226,32 +5154,77 @@ msgstr "그룹의 위치, \"시/군/구, 도, 국가\""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "그룹"
+msgstr ""
 
-#: lib/groupnav.php:101
-msgid "Blocked"
-msgstr "차단"
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "%s 그룹 속성 편집"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "로고"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "%s 로고 추가 혹은 편집"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "%s 로고 추가 혹은 편집"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5279,7 +5252,8 @@ msgstr "지원하지 않는 그림 파일 형식입니다."
 msgid "Partial upload."
 msgstr "불완전한 업로드."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "파일을 올리는데 시스템 오류 발생"
 
@@ -5365,22 +5339,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/mail.php:274
 #, php-format
@@ -5564,56 +5522,75 @@ msgstr "죄송합니다. 귀하의 이메일이 아닙니다."
 msgid "Sorry, no incoming email allowed."
 msgstr "죄송합니다. 이메일이 허용되지 않습니다."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "소스 이용자를 확인할 수 없습니다."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -5722,22 +5699,23 @@ msgid "Send a nudge to this user"
 msgstr "이 사용자에게 찔러 보기 메시지 보내기"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "새 프로필 추가 오류"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "아바타 추가 오류"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "리모트 프로필 업데이트 오류"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "리모트 프로필 추가 오류"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "예약 구독을 추가 할 수 없습니다."
 
@@ -5848,19 +5826,24 @@ msgstr "그룹 이용자는 차단해제"
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "검색 도움말"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "검색"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "검색 도움말"
 
@@ -5978,6 +5961,10 @@ msgstr "상위 게시글 등록자"
 msgid "Unsandbox"
 msgstr ""
 
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr ""
+
 #: lib/unsilenceform.php:78
 msgid "Unsilence this user"
 msgstr "이 사용자 삭제"
@@ -6033,56 +6020,60 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "몇 초 전"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "1분 전"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "%d분 전"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "1시간 전"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "%d시간 전"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "하루 전"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "%d일 전"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "1달 전"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "%d달 전"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "1년 전"
 
index 00339c08afbc4a6454e373023abba3c22a9df73d..75b672334d51e2bb372bc613e85f7fa19047d345 100644 (file)
@@ -1,28 +1,30 @@
-# Translation of StatusNet to Macedonian
+# Translation of StatusNet - Core to Macedonian (Македонски)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Bjankuloski06
-# Author@translatewiki.net: Brest
+# Author: Bjankuloski06
+# Author: Brest
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:56+0000\n"
-"Language-Team: Macedonian\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:07+0000\n"
+"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: mk\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=2; plural= n==1 || n%10==1 ? 0 : 1;\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Пристап"
 
@@ -77,10 +79,10 @@ msgstr "Зачувај нагодувања на пристап"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Зачувај"
@@ -93,15 +95,15 @@ msgstr "Нема таква страница."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -200,16 +202,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Подновувања од %1$s и пријатели на %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -224,21 +226,23 @@ msgstr "Подновувања од %1$s и пријатели на %2$s!"
 msgid "API method not found."
 msgstr "API методот не е пронајден."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Овој метод бара POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -246,27 +250,27 @@ msgstr ""
 "Мора да назначите параметар со име 'device' со една од следниве вредности: "
 "sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Не можев да го подновам корисникот."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Корисникот нема профил."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Не може да се зачува профил."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -278,30 +282,30 @@ msgstr ""
 "Опслужувачот не можеше да обработи толку многу POST-податоци (%s бајти) "
 "заради неговата тековна поставеност."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Не можам да ги зачувам Вашите нагодувања за изглед."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Не може да се поднови Вашиот изглед."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Не можете да се блокирате самите себеси!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Блокирањето на корисникот не успеа."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Не успеа одблокирањето на корисникот."
 
@@ -325,61 +329,61 @@ msgstr "Директни пораки до %s"
 msgid "All the direct messages sent to %s"
 msgstr "Сите директни пораки испратени до %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Нема текст за пораката!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Ова е предолго. Максималната должина изнесува %d знаци."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Примачот не е пронајден."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Неможете да испраќате директни пораки на корисници што не ви се пријатели."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Нема пронајдено статус со таков ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Овој статус веќе Ви е омилен."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Не можам да создадам омилина забелешка."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Тој статус не Ви е омилен."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Не можам да ја избришам омилената забелешка."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Не можам да го следам корисникот: профилот не е пронајден."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Не можам да го следам корисникот: %s веќе е на Вашиот список."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Не можам да престанам да го следам корисникот: Корисникот не е пронајден."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Не можете да престанете да се следите самите себеси."
 
@@ -397,101 +401,101 @@ msgstr "Не можев да го утврдам целниот корисник
 msgid "Could not find target user."
 msgstr "Не можев да го пронајдам целниот корисник."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Прекарот мора да има само мали букви и бројки и да нема празни места."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Тој прекар е во употреба. Одберете друг."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Неправилен прекар."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Главната страница не е важечка URL-адреса."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Целото име е предолго (највеќе 255 знаци)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Описот е предолг (дозволено е највеќе %d знаци)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Локацијата е предолга (максимумот е 255 знаци)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Премногу алијаси! Дозволено е највеќе %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Неважечки алијас: „%s“."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Алијасот „%s“ е зафатен. Одберете друг."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Алијасот не може да биде ист како прекарот."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Групата не е пронајдена."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Веќе членувате во таа група."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Блокирани сте од таа група од администраторот."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Не можам да го зачленам корисникот %1$s во групата 2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Не членувате во оваа група."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -521,7 +525,7 @@ msgstr "%s групи"
 msgid "groups on %s"
 msgstr "групи на %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Подигањето не успеа."
 
@@ -535,9 +539,9 @@ msgstr "Погрешен жетон."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -582,8 +586,8 @@ msgstr "Жетонот на барањето %s е одбиен и поништ
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -647,18 +651,18 @@ msgstr "Методот бара POST или DELETE."
 msgid "You may not delete another user's status."
 msgstr "Не можете да избришете статус на друг корисник."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Нема таква забелешка."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Не можете да ја повторувате сопствената забелешка."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Забелешката е веќе повторена."
 
@@ -670,21 +674,21 @@ msgstr "Статусот е избришан."
 msgid "No status with that ID found."
 msgstr "Нема пронајдено статус со тој ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Клиентот мора да укаже вредност за параметарот „статус“"
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Ова е предолго. Максималната дозволена должина изнесува %d знаци."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Не е пронајдено."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -889,7 +893,9 @@ msgid "Yes"
 msgstr "Да"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Блокирај го корисников"
 
@@ -931,11 +937,13 @@ msgstr "Листана корисниците блокирани од придр
 msgid "Unblock user from group"
 msgstr "Одблокирај корисник од група"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Одблокирај"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Одблокирај го овој корсник"
 
@@ -974,9 +982,9 @@ msgstr "Оваа адреса веќе е потврдена."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -984,7 +992,7 @@ msgstr "Не можев да го подновам корисникот."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Не можев да ја избришам потврдата по е-пошта."
@@ -1020,9 +1028,10 @@ msgstr "Програмот не е пронајден."
 msgid "You are not the owner of this application."
 msgstr "Не сте сопственик на овој програм."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Се појави проблем со Вашиот сесиски жетон."
 
@@ -1056,7 +1065,7 @@ msgstr "Избриши го програмов"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Не сте најавени."
@@ -1119,7 +1128,6 @@ msgstr "Избриши овој корисник"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Изглед"
 
@@ -1240,13 +1248,13 @@ msgstr "Врати основно-зададени нагодувања"
 msgid "Reset back to default"
 msgstr "Врати по основно"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Зачувај"
@@ -1402,7 +1410,7 @@ msgstr "Тековна потврдена е-поштенска адреса."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1420,22 +1428,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Откажи"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Е-пошта, од обликот „UserName@example.org“"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1443,113 +1455,113 @@ msgstr "Додај"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Приемна пошта"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Испраќајте е-пошта на оваа адреса за да објавувате нови забелешки."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Создај нова е-поштенска адреса за примање објави; ја заменува старата адреса."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Нова"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Нагодувања за е-пошта"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Испраќај ми известувања за нови претплати по е-пошта."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Испраќај ми е-пошта кога некој ќе додаде моја забелешка како омилена."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Испраќај ми е-пошта кога некој ќе ми испрати приватна порака."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Испраќај ми е-пошта кога некој ќе ми испрати „@-одговор“"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 "Дозволи им на пријателите да можат да ме подбуцнуваат и да ми испраќаат е-"
 "пошта."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Сакам да објавувам забелешки по е-пошта."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Објави MicroID за мојата е-поштенска адреса."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Нагодувањата за е-пошта се зачувани."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Нема е-поштенска адреса."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Неможам да ја нормализирам таа е-поштенска адреса"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Неправилна адреса за е-пошта."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Оваа е-поштенска адреса е веќе Ваша."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Таа е-поштенска адреса е веќе зафатена од друг корисник."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Потврдниот код не може да се внесе."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1561,50 +1573,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Нема потврди кои може да се откажат."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Ова е погрешна е-поштенска адреса."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Потврдата на е-пошта е откажана."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Ова не е Вашата е-поштенска адреса."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Е-поштенската адреса е отстранета."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Нема приемна е-поштенска адреса."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Не можев да ја подновам корисничката евиденција."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Приемната е-поштенска адреса е отстранета."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Додадена е нова влезна е-поштенска адреса."
 
@@ -1723,7 +1735,7 @@ msgstr "Не можев да ги претворам жетоните за ба
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Далечинската служба користи непозната верзија на OMB протокол."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Грешка во подновувањето на далечинскиот профил."
 
@@ -1780,7 +1792,7 @@ msgstr "Корисникот е веќе блокиран од оваа груп
 msgid "User is not a member of group."
 msgstr "Корисникот не членува во групата."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Блокирај корисник од група"
 
@@ -1864,39 +1876,49 @@ msgstr "Логото е подновено."
 msgid "Failed updating logo."
 msgstr "Подновата на логото не успеа."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Членови на групата %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Членови на групата %1$s, стр. %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Список на корисниците на оваа група."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Администратор"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Блокирај"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Направи го корисникот администратор на групата"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Ð\9dапÑ\80ави Ð³Ð¾/Ñ\98а администратор"
+msgstr "Ð\9dазнаÑ\87и Ð·а администратор"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Ð\9dапÑ\80ави Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81никоÑ\82 администратор"
+msgstr "Ð\9dазнаÑ\87и Ð³Ð¾ ÐºÐ¾Ñ\80иÑ\81ников Ð·Ð° администратор"
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2037,7 +2059,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2047,64 +2072,64 @@ msgstr ""
 "%s во Вашиот контактен список во Вашиот IM клиент или GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM нагодувања"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Испраќај ми забелешки преку Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Објавувај забелешка кога мојот статус на Jabber/GTalk ќе се промени."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Испраќај ми одговори преку Jabber/GTalk од луѓе на кои не сум претплатен."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Објави MicroID за мојата адреса на Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Нагодувањата се зачувани."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Нема JabberID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Ова JabberID не може да се нормализира."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Неправилен JabberID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Ова веќе е Вашиот Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Ова Jabber ID му припаѓа на друг корисник."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2114,28 +2139,28 @@ msgstr ""
 "одобрите на %S да ви испраќа пораки."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Ова е погрешната IM адреса."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Не можев да ја избришам потврдата на IM."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Потврдата на IM е откажана."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Ова не е Вашиот Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "IM-адресата е отстранета."
 
@@ -2608,8 +2633,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Ве молиме користете само %s URL-адреси врз прост HTTP-код."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Ова не е поддржан формат на податотека."
 
@@ -2751,7 +2776,7 @@ msgid "Password saved."
 msgstr "Лозинката е зачувана."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Патеки"
 
@@ -2965,7 +2990,7 @@ msgstr "Цело име"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Домашна страница"
 
@@ -3073,7 +3098,7 @@ msgid "Couldn't save tags."
 msgstr "Не можев да ги зачувам ознаките."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Нагодувањата се зачувани"
 
@@ -3615,7 +3640,7 @@ msgstr "Корисникот е веќе во песочен режим."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Сесии"
 
@@ -3653,24 +3678,24 @@ msgid "Application profile"
 msgstr "Профил на програмот"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Икона"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Име"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Организација"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Опис"
 
@@ -3787,7 +3812,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Ова е начин да го споделите она што Ви се допаѓа."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Група %s"
@@ -3839,7 +3864,7 @@ msgstr "Канал со забелешки за групата%s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF за групата %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Членови"
 
@@ -4296,7 +4321,7 @@ msgstr "Нема внесено код"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Снимки"
 
@@ -4580,7 +4605,7 @@ msgstr "Неважечко ограничување за биографијат
 
 #: actions/useradminpanel.php:155
 msgid "Invalid welcome text. Max length is 255 characters."
-msgstr "Ð\9dÐ\95важечки текст за добредојде. Дозволени се највеќе 255 знаци."
+msgstr "Ð\9dеважечки текст за добредојде. Дозволени се највеќе 255 знаци."
 
 #: actions/useradminpanel.php:165
 #, php-format
@@ -4989,18 +5014,18 @@ msgid "Problem saving notice."
 msgstr "Проблем во зачувувањето на белешката."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "На saveKnownGroups му е уакажан грешен тип"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Проблем при зачувувањето на групното приемно сандаче."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5034,7 +5059,7 @@ msgid "Unable to save tag."
 msgstr "Не можам да ја зачувам ознаката."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Блокирани сте од претплаќање."
 
@@ -5177,7 +5202,8 @@ msgid "Change site configuration"
 msgstr "Промена на поставките на мрежното место"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Админ"
@@ -5254,7 +5280,7 @@ msgstr "Барај"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Напомена за мрежното место"
 
@@ -5318,7 +5344,10 @@ msgid "StatusNet software license"
 msgstr "Лиценца на програмот StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5328,13 +5357,16 @@ msgstr ""
 "%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** е сервис за микроблогирање."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5346,20 +5378,20 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Лиценца на содржините на мрежното место"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Содржината и податоците на %1$s се лични и доверливи."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5367,32 +5399,33 @@ msgstr ""
 "права задржани."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Авторските права на содржината и податоците им припаѓаат на учесниците. Сите "
 "права задржани."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Сите содржини и податоци на %1$s се достапни под лиценцата %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Прелом на страници"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Следно"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Претходно"
 
@@ -5401,208 +5434,243 @@ msgstr "Претходно"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Се очекува коренски каналски елемент, но добив цел XML документ."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Сè уште не е поддржана обработката на далечинска содржина."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Сè уште не е поддржана обработката на XML содржина."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Сè уште не е достапна обработката на вметната Base64 содржина."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Не можете да врште измени на ова мрежно место."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Менувањето на тој алатник не е дозволено."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() не е имплементирано."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() не е имплементирано."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Не можам да ги избришам нагодувањата за изглед."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Основни нагодувања на мрежното место"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Мреж. место"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Поставки на изгледот"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Изглед"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Конфигурација на корисник"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Корисник"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Конфигурација на пристапот"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Конфигурација на патеки"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Конфигурација на сесиите"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Уреди објава за мрежното место"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Поставки за снимки"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "API-ресурсот бара да може и да чита и да запишува, а вие можете само да "
 "читате."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Нема програм за тој потрошувачки клуч."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Лош пристапен жетон."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "Нема корисник за тој жетон."
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "Не можевме да ве потврдиме."
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr "Се обидовте да отповикате непознат жетон."
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr "Не успеав да го избришам отповиканиот жетон."
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Уреди програм"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Икона за овој програм"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Опишете го програмот со %d знаци"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Опишете го Вашиот програм"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL на страницата на програмот"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Изворна URL-адреса"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Организацијата одговорна за овој програм"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL на страницата на организацијата"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL за пренасочување по заверката"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Прелистувач"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Работна површина"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Тип на програм, прелистувач или работна површина"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Само читање"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Читање-пишување"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Основно-зададен пристап за овој програм: само читање, или читање-пишување"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Откажи"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "читање-пишување"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "само читање"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Одобрено %1$s - „%2$s“ пристап."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Одземи"
@@ -5622,11 +5690,13 @@ msgstr "Автор"
 msgid "Provider"
 msgstr "Обезбедувач"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Забелешки кадешто се јавува овој прилог"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Ознаки за овој прилог"
 
@@ -5638,6 +5708,11 @@ msgstr "Менувањето на лозинката не успеа"
 msgid "Password changing is not allowed"
 msgstr "Менувањето на лозинка не е дозволено"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Блокирај"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Резултати од наредбата"
@@ -5889,7 +5964,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Не сте претплатени никому."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5904,7 +5979,7 @@ msgid "No one is subscribed to you."
 msgstr "Никој не е претплатен на Вас."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5919,7 +5994,7 @@ msgid "You are not a member of any groups."
 msgstr "Не членувате во ниедна група."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5927,6 +6002,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Не ни го испративте тој профил."
 msgstr[1] "Не ни го испративте тој профил."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6147,37 +6223,77 @@ msgstr ""
 "Дополнителни прекари за групата, одделени со запирка или празно место, "
 "највеќе до %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Група"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Група „%s“"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Членови"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Членови на групата „%s“"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr "Блокирани"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s блокирани корисници"
+msgstr "Блокирани корисници од групата „%s“"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Уреди својства на групата %s"
+msgstr "Уредување на својства на групата „%s“"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Лого"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Додај или уреди лого на %s"
+msgstr "Додавање или уредување на лого на групата „%s “"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Додај или уреди изглед на %s"
+msgstr "Додавање или уредување на изгледот на групата „%s“"
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6205,7 +6321,8 @@ msgstr "Неподдржан фомрат на слики."
 msgid "Partial upload."
 msgstr "Делумно подигање."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Системска грешка при подигањето на податотеката."
 
@@ -6610,19 +6727,22 @@ msgstr "Жалиме, приемната пошта не е дозволена."
 msgid "Unsupported message type: %s"
 msgstr "Неподдржан формат на порака: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Се појави грешка во базата на податоци при зачувувањето на Вашата "
 "податотека. Обидете се повторно."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "Подигнатата податотека ја надминува директивата upload_max_filesize во php."
 "ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6630,43 +6750,61 @@ msgstr ""
 "Подигнатата податотека ја надминува директивата the MAX_FILE_SIZE назначена "
 "во HTML-образецот."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Подигнатата податотека е само делумно подигната."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Недостасува привремена папка."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Податотеката не може да се запише на дискот."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Подигањето на податотеката е запрено од проширувањето."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Податотеката ја надминува квотата на корисникот."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Податотеката не може да се премести во целниот директориум."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Не можев да го утврдам mime-типот на податотеката."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "  Обидете се со друг формат на %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"„%1$s“ не е поддржан податотечен тип на овој опслужувач. Обидете се со друг %"
+"2$s-формат."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s не е поддржан тип на податотека на овој опслужувач."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "„%s„ не е поддржан податотечен тип на овој опслужувач."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6784,26 +6922,23 @@ msgid "Send a nudge to this user"
 msgstr "Испрати подбуцнување на корисников"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Ð\93Ñ\80еÑ\88ка Ð²Ð¾ Ð²Ð½ÐµÑ\81Ñ\83ваÑ\9aеÑ\82о Ð½Ð° Ð½Ð¾Ð²Ð¸Ð¾Ñ\82 Ð¿Ñ\80оÑ\84ил"
+msgid "Error inserting new profile."
+msgstr "Ð\93Ñ\80еÑ\88ка Ð¿Ñ\80и Ð²Ð¼ÐµÑ\82нÑ\83ваÑ\9aеÑ\82о Ð½Ð° Ð½Ð¾Ð²Ð¸Ð¾Ñ\82 Ð¿Ñ\80оÑ\84ил."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Грешка во внесувањето на аватарот"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Грешка во подновувањето на далечинскиот профил"
+msgid "Error inserting avatar."
+msgstr "Грешка при вметнувањето на аватарот."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Ð\93Ñ\80еÑ\88ка Ð²Ð¾ Ð²Ð½ÐµÑ\81Ñ\83ваÑ\9aеÑ\82о Ð½Ð° Ð´Ð°Ð»ÐµÑ\87инÑ\81киоÑ\82 Ð¿Ñ\80оÑ\84ил"
+msgid "Error inserting remote profile."
+msgstr "Ð\93Ñ\80еÑ\88ка Ð¿Ñ\80и Ð²Ð¼ÐµÑ\82нÑ\83ваÑ\9aеÑ\82о Ð½Ð° Ð´Ð°Ð»ÐµÑ\87инÑ\81киоÑ\82 Ð¿Ñ\80оÑ\84ил."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Дуплирај забелешка"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Дуплирана забелешка."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Не може да се внесе нова претплата."
 
@@ -6840,7 +6975,8 @@ msgstr "Ваши испратени пораки"
 msgid "Tags in %s's notices"
 msgstr "Ознаки во забелешките на %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Непознато"
 
@@ -6934,19 +7070,24 @@ msgstr "Песок"
 msgid "Sandbox this user"
 msgstr "Стави го корисников во песочен режим"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Пребарај по мрежното место"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Клучен збор"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Ð\91арај"
+msgstr "Ð\9fÑ\80ебарај"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Помош со пребарување"
 
@@ -7059,7 +7200,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Овој изглед содржи небезбедни податотечни наставки."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7145,56 +7286,64 @@ msgid "Moderator"
 msgstr "Модератор"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "пред неколку секунди"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "пред една минута"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "пред %d минути"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "пред околу една минута"
+msgstr[1] "пред околу %d минути"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "пред еден час"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "пред %d часа"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "пред околу еден час"
+msgstr[1] "пред околу %d часа"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "пред еден ден"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "пред %d дена"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "пред околу еден ден"
+msgstr[1] "пред околу %d дена"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "пред еден месец"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "пред %d месеца"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "пред околу еден месец"
+msgstr[1] "пред околу %d месеци"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "пред една година"
 
index 44820c1585c7244a5f8a06113a713d01a4337fbd..466cdba68e081156544566d1cb03d85a9cbb3dd7 100644 (file)
@@ -1,28 +1,30 @@
-# Translation of StatusNet to Norwegian (bokmål)‬
+# Translation of StatusNet - Core to Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Laaknor
-# Author@translatewiki.net: Nghtwlkr
+# Author: Laaknor
+# Author: Nghtwlkr
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:46:58+0000\n"
-"Language-Team: Norwegian (bokmål)‬\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:10+0000\n"
+"Language-Team: Norwegian (bokmål)‬ <http://translatewiki.net/wiki/Portal:no>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: no\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Tilgang"
 
@@ -75,10 +77,10 @@ msgstr "Lagre tilgangsinnstillinger"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Lagre"
@@ -91,15 +93,15 @@ msgstr "Ingen slik side."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -196,39 +198,41 @@ msgstr "Du og venner"
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Oppdateringer fra %1$s og venner på %2$s!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Denne metoden krever en POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr "Du må angi en verdi for parameteren 'device' med en av: sms, im, none."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Brukeren har ingen profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -240,25 +244,25 @@ msgstr ""
 "Tjeneren kunne ikke håndtere så mye POST-data (%s bytes) på grunn av sitt "
 "nåværende oppsett."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Kunne ikke lagre dine innstillinger for utseende."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Du kan ikke blokkere deg selv!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blokkering av bruker mislyktes."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Oppheving av blokkering av bruker mislyktes."
 
@@ -282,59 +286,59 @@ msgstr "Direktemeldinger til %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle direktemeldinger sendt til %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Ingen meldingstekst!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Dette er for langt. Meldingen kan bare være %d tegn lang."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Fant ikke mottakeren."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Kan ikke sende direktemeldinger til brukere du ikke er venn med."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Fant ingen status med den ID-en."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Denne statusen er allerede en favoritt."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Kunne ikke opprette favoritt."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Den statusen er ikke en favoritt."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Kunne ikke slette favoritt."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Kunne ikke følge brukeren: fant ikke profilen."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Kunne ikke følge brukeren: %s er allerede i listen din."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Kunne ikke slutte å følge brukeren: Fant ikke brukeren."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Du kan ikke slutte å følge deg selv."
 
@@ -350,101 +354,101 @@ msgstr "Kunne ikke bestemme kildebruker."
 msgid "Could not find target user."
 msgstr "Kunne ikke finne målbruker."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Kallenavn kan kun ha små bokstaver og tall og ingen mellomrom."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Det nicket er allerede i bruk. Prøv et annet."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ugyldig nick."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Hjemmesiden er ikke en gyldig URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Beklager, navnet er for langt (max 250 tegn)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Beskrivelsen er for lang (maks %d tegn)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Plassering er for lang (maks 255 tegn)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "For mange alias! Maksimum %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ugyldig alias: «%s»."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Aliaset «%s» er allerede i bruk. Prøv et annet."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias kan ikke være det samme som kallenavn."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Gruppe ikke funnet."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Du er allerede medlem av den gruppen."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Du har blitt blokkert fra den gruppen av administratoren."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Kunne ikke legge bruker %1$s til gruppe %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Du er ikke et medlem av denne gruppen."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -474,7 +478,7 @@ msgstr "%s grupper"
 msgid "groups on %s"
 msgstr "grupper på %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Opplasting feilet."
 
@@ -488,9 +492,9 @@ msgstr "Ugyldig symbol."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -533,8 +537,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -598,18 +602,18 @@ msgstr "Denne metoden krever en POST eller DELETE."
 msgid "You may not delete another user's status."
 msgstr "Du kan ikke slette statusen til en annen bruker."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ingen slik notis."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Kan ikke gjenta din egen notis."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Allerede gjentatt den notisen."
 
@@ -621,21 +625,21 @@ msgstr "Status slettet."
 msgid "No status with that ID found."
 msgstr "Ingen status med den ID-en funnet."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Det er for langt. Maks notisstørrelse er %d tegn."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Ikke funnet."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Maks notisstørrelse er %d tegn, inklusive vedleggs-URL."
@@ -835,7 +839,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blokker denne brukeren"
 
@@ -877,11 +883,13 @@ msgstr "En liste over brukere som er blokkert fra å delta i denne gruppen."
 msgid "Unblock user from group"
 msgstr "Opphev blokkering av bruker fra gruppe"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Opphev blokkering"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Opphev blokkering av denne brukeren"
 
@@ -920,9 +928,9 @@ msgstr "Den adressen har allerede blitt bekreftet."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -930,7 +938,7 @@ msgstr "Klarte ikke å oppdatere bruker."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Kunne ikke slette e-postbekreftelse."
@@ -996,7 +1004,7 @@ msgstr "Slett dette programmet"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Ikke logget inn."
@@ -1059,7 +1067,6 @@ msgstr "Slett denne brukeren"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Utseende"
 
@@ -1179,13 +1186,13 @@ msgstr "Gjenopprett standardutseende"
 msgid "Reset back to default"
 msgstr "Tilbakestill til standardverdier"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Lagre"
@@ -1341,7 +1348,7 @@ msgstr "Nåværende bekreftede e-postadresse"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1359,22 +1366,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Avbryt"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-postadresse («brukernavn@eksempel.org»)"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1382,110 +1393,110 @@ msgstr "Legg til"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "innkommende e-post"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Send e-post til denne adressen for å poste nye notiser."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Angi en ny e-postadresse for å poste til; fjerner den gamle."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Ny"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-postinnstillinger"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Send meg varsler om nye abonnementer gjennom e-post."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Send meg en e-post når noen legger min notis til som favoritt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Send meg en e-post når noen sender meg en privat melding."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Send meg en e-post når noen sender meg et «@-svar»."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Tillat venner å knuffe meg og sende meg en e-post."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Jeg vil poste notiser med e-post."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publiser en MicroID for min e-postadresse."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "E-postinnstillinger lagret."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Ingen e-postadresse."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Klarer ikke normalisere epostadressen"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Ugyldig e-postadresse."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Det er allerede din e-postadresse."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Den e-postadressen tilhører allerede en annen bruker."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Kunne ikke sette inn bekreftelseskode."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1496,50 +1507,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ingen ventende bekreftelse å avbryte."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Dette er feil e-postadresse."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "E-postbekreftelse avbrutt."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Det er ikke din e-postadresse."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "E-postadressen ble fjernet."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ingen innkommende e-postadresse."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kunne ikke oppdatere brukeroppføring."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Inkommende e-postadresse fjernet."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Ny innkommende e-postadresse lagt til."
 
@@ -1658,7 +1669,7 @@ msgstr ""
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Fjerntjeneste bruker ukjent versjon av OMB-protokollen."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Feil ved oppdatering av fjernprofil."
 
@@ -1715,7 +1726,7 @@ msgstr "Bruker er allerede blokkert fra gruppe."
 msgid "User is not a member of group."
 msgstr "Bruker er ikke et medlem av gruppa."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Blokker bruker fra gruppe"
 
@@ -1795,39 +1806,49 @@ msgstr "Logo oppdatert."
 msgid "Failed updating logo."
 msgstr "Kunne ikke oppdatere logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s gruppemedlemmer"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s gruppemedlemmer, side %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "En liste over brukerne i denne gruppen."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blokkér"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Gjør brukeren til en administrator for gruppen"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Gjør til administrator"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Gjør denne brukeren til administrator"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1966,7 +1987,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1976,63 +2000,63 @@ msgstr ""
 "vennelisten din i direktemeldingsklienten din eller på GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Direktemeldingsinnstillinger"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Send meg notiser gjennom Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Post en notis når min Jabber/Gtalk-status endres."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Send meg svar gjennom Jabber/GTalk fra personer jeg ikke abonnerer på."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publiser en MicroID for min Jabber/Gtalk-adresse."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Innstillinger lagret."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Ingen Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Klarer ikke normalisere Jabber-IDen"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Ugyldig Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Det er allerede din Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber-ID tilhører allerede en annen bruker."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2042,28 +2066,28 @@ msgstr ""
 "godkjenne %s for å sende meldinger til deg."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Det er feil IM-adresse."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Kunne ikke slette direktemeldingsbekreftelse."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Direktemeldingsbekreftelse avbrutt."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Det er ikke din Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Direktemeldingsadressen ble fjernet."
 
@@ -2527,8 +2551,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Bare %s-nettadresser over vanlig HTTP."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Ikke et støttet dataformat."
 
@@ -2580,6 +2604,10 @@ msgstr "Ingen bruker-ID spesifisert."
 msgid "No login token specified."
 msgstr "Ingen notis spesifisert."
 
+#: actions/otp.php:90
+msgid "No login token requested."
+msgstr ""
+
 #: actions/otp.php:95
 msgid "Invalid login token specified."
 msgstr "Ugyldig symbol."
@@ -2660,7 +2688,7 @@ msgid "Password saved."
 msgstr "Passordet ble lagret"
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Stier"
 
@@ -2871,7 +2899,7 @@ msgstr "Fullt navn"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Hjemmesiden"
 
@@ -2977,7 +3005,7 @@ msgid "Couldn't save tags."
 msgstr "Kunne ikke lagre merkelapper."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Innstillinger lagret."
 
@@ -3512,7 +3540,7 @@ msgstr "Brukeren er allerede i sandkassen."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Økter"
 
@@ -3550,24 +3578,24 @@ msgid "Application profile"
 msgstr "Programprofil"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Navn"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisasjon"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beskrivelse"
 
@@ -3678,7 +3706,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Dette er en måte å dele det du liker."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s gruppe"
@@ -3730,7 +3758,7 @@ msgstr "Notismating for %s gruppe (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF for gruppen %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Medlemmer"
 
@@ -4176,7 +4204,7 @@ msgstr "Ingen kode skrevet inn"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4192,6 +4220,10 @@ msgstr ""
 msgid "In a scheduled job"
 msgstr ""
 
+#: actions/snapshotadminpanel.php:206
+msgid "Data snapshots"
+msgstr ""
+
 #: actions/snapshotadminpanel.php:208
 msgid "When to send statistical data to status.net servers"
 msgstr ""
@@ -4461,6 +4493,21 @@ msgid ""
 "subscription."
 msgstr ""
 
+#: actions/userauthorization.php:303
+#, php-format
+msgid "Listener URI ‘%s’ not found here."
+msgstr ""
+
+#: actions/userauthorization.php:308
+#, php-format
+msgid "Listenee URI ‘%s’ is too long."
+msgstr ""
+
+#: actions/userauthorization.php:314
+#, php-format
+msgid "Listenee URI ‘%s’ is a local user."
+msgstr ""
+
 #: actions/userauthorization.php:329
 #, php-format
 msgid "Profile URL ‘%s’ is for a local user."
@@ -4692,18 +4739,18 @@ msgid "Problem saving notice."
 msgstr "Problem ved lagring av notis."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problem ved lagring av gruppeinnboks."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4856,7 +4903,8 @@ msgid "Change site configuration"
 msgstr "Endre nettstedskonfigurasjon"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrator"
@@ -4933,7 +4981,7 @@ msgstr "Søk"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Nettstedsnotis"
 
@@ -4988,7 +5036,10 @@ msgid "StatusNet software license"
 msgstr "Programvarelisens for StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -4998,13 +5049,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** er en mikrobloggingtjeneste."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5014,38 +5068,39 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Etter"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Før"
 
@@ -5054,171 +5109,206 @@ msgstr "Før"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Du kan ikke gjøre endringer på dette nettstedet."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() ikke implementert."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() ikke implementert."
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Nettsted"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Utseende"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Brukerkonfigurasjon"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Bruker"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Tilgangskonfigurasjon"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Stikonfigurasjon"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Rediger nettstedsnotis"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Rediger program"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Ikon for dette programmet"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Beskriv programmet ditt med %d tegn"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Beskriv programmet ditt"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "Nettadresse til hjemmesiden for dette programmet"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Nettadresse til kilde"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL til organisasjonens hjemmeside"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Nettleser"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Skrivebord"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Type program, nettleser eller skrivebord"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Skrivebeskyttet"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Les og skriv"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Standardtilgang for dette programmet: skrivebeskyttet eller lese- og "
 "skrivetilgang"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Avbryt"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "les og skriv"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "skrivebeskyttet"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Tilbakekall"
@@ -5238,7 +5328,8 @@ msgstr "Forfatter"
 msgid "Provider"
 msgstr "Leverandør"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Notiser hvor dette vedlegget forekommer"
 
@@ -5250,6 +5341,11 @@ msgstr "Endring av passord mislyktes"
 msgid "Password changing is not allowed"
 msgstr "Endring av passord er ikke tillatt"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokkér"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Kommandoresultat"
@@ -5262,6 +5358,18 @@ msgstr "Kommando fullført"
 msgid "Command failed"
 msgstr "Kommando feilet"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr ""
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5272,6 +5380,13 @@ msgstr "Beklager, denne kommandoen er ikke implementert ennå."
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr "Det gir ikke så mye mening å knuffe seg selv."
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr ""
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -5292,6 +5407,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Notis markert som favoritt."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5343,6 +5472,13 @@ msgstr "Feil ved sending av direktemelding."
 msgid "Error repeating notice."
 msgstr "Feil ved repetering av notis."
 
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr ""
+
 #. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
 #: lib/command.php:606
 msgid "Error saving notice."
@@ -5358,12 +5494,26 @@ msgstr ""
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
 #: lib/command.php:731
 msgid "Can't turn off notification."
@@ -5381,8 +5531,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5391,7 +5548,7 @@ msgstr[0] "Ikke autorisert."
 msgstr[1] "Ikke autorisert."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5406,7 +5563,7 @@ msgid "You are not a member of any groups."
 msgstr "Du er ikke et medlem av den gruppen."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5414,6 +5571,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Du er allerede logget inn!"
 msgstr[1] "Du er allerede logget inn!"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5512,10 +5670,6 @@ msgstr "Venn av en venn"
 msgid "Export data"
 msgstr "Eksporter data"
 
-#: lib/galleryaction.php:121
-msgid "Filter tags"
-msgstr ""
-
 #: lib/galleryaction.php:131
 msgid "All"
 msgstr "Alle"
@@ -5551,32 +5705,77 @@ msgstr "Beskriv programmet ditt med %d tegn"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Gruppe"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Blokkert"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s blokkerte brukere"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Rediger %s gruppeegenskaper"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Legg til eller rediger %s logo"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -5604,7 +5803,8 @@ msgstr "Filen er for stor. Maks filstørrelse er %s."
 msgid "Partial upload."
 msgstr "Delvis opplasting."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Systemfeil ved opplasting av fil."
 
@@ -5995,53 +6195,76 @@ msgstr "Ikke en registrert bruker."
 msgid "Unsupported message type: %s"
 msgstr "Meldingstypen støttes ikke: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
+msgid "Missing a temporary folder."
+msgstr ""
+
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Filopplasting stoppet grunnet filendelse."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Fil overgår brukers kvote."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Filen kunne ikke flyttes til målmappen."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Kunne ikke avgjøre filens MIME-type."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "  Prøv å bruke et annet %s-format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "filtypen %s støttes ikke på denne tjeneren."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6154,9 +6377,22 @@ msgstr "Knuff"
 msgid "Send a nudge to this user"
 msgstr "Send et knuff til denne brukeren"
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplikatnotis"
+#: lib/oauthstore.php:283
+msgid "Error inserting new profile."
+msgstr ""
+
+#: lib/oauthstore.php:291
+msgid "Error inserting avatar."
+msgstr ""
+
+#: lib/oauthstore.php:311
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
 #: lib/personalgroupnav.php:99
 msgid "Personal"
@@ -6186,12 +6422,8 @@ msgstr "Utboks"
 msgid "Your sent messages"
 msgstr "Dine sendte meldinger"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Ukjent"
 
@@ -6240,10 +6472,6 @@ msgstr "Offentlig"
 msgid "User groups"
 msgstr "Brukergrupper"
 
-#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
-msgid "Recent tags"
-msgstr ""
-
 #: lib/repeatform.php:107
 msgid "Repeat this notice?"
 msgstr "Repeter denne notisen?"
@@ -6264,19 +6492,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr "Opphev blokkering av denne brukeren"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Søk nettsted"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Nøkkelord"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Søk"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Søkehjelp"
 
@@ -6367,10 +6600,18 @@ msgstr ""
 msgid "Top posters"
 msgstr ""
 
+#: lib/unsandboxform.php:69
+msgid "Unsandbox"
+msgstr ""
+
 #: lib/unsandboxform.php:80
 msgid "Unsandbox this user"
 msgstr "Opphev blokkering av denne brukeren"
 
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr ""
+
 #: lib/unsilenceform.php:78
 msgid "Unsilence this user"
 msgstr "Opphev blokkering av denne brukeren"
@@ -6414,56 +6655,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "noen få sekunder siden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "omtrent ett minutt siden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "omtrent %d minutter siden"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "omtrent én time siden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "omtrent %d timer siden"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "omtrent én dag siden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "omtrent %d dager siden"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "omtrent én måned siden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "omtrent %d måneder siden"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "omtrent ett år siden"
 
index 5e8bc6980d9eb712ef7276e56a5f41fdff7645c7..ff15376dfd9e917b3e2b18939cbfc35ad26fde45 100644 (file)
@@ -1,30 +1,32 @@
-# Translation of StatusNet to Dutch
+# Translation of StatusNet - Core to Dutch (Nederlands)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Itavero
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Siebrand
+# Author: Brion
+# Author: Itavero
+# Author: McDutchie
+# Author: Siebrand
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:07+0000\n"
-"Language-Team: Dutch\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:13+0000\n"
+"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: nl\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Toegang"
 
@@ -77,10 +79,10 @@ msgstr "Toegangsinstellingen opslaan"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Opslaan"
@@ -93,15 +95,15 @@ msgstr "Deze pagina bestaat niet."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -202,16 +204,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Updates van %1$s en vrienden op %2$s."
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -226,21 +228,23 @@ msgstr "Updates van %1$s en vrienden op %2$s."
 msgid "API method not found."
 msgstr "De API-functie is niet aangetroffen."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Deze methode vereist een POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -248,27 +252,27 @@ msgstr ""
 "U moet een parameter met de naam \"device\" opgeven met een van de volgende "
 "waardes: sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Het was niet mogelijk de gebruiker bij te werken."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Deze gebruiker heeft geen profiel."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Het was niet mogelijk het profiel op te slaan."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -280,30 +284,30 @@ msgstr ""
 "De server was niet in staat zoveel POST-gegevens te verwerken (%s bytes) "
 "vanwege de huidige instellingen."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Het was niet mogelijk om uw ontwerpinstellingen op te slaan."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Het was niet mogelijk uw ontwerp bij te werken."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "U kunt zichzelf niet blokkeren!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Het blokkeren van de gebruiker is mislukt."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Het deblokkeren van de gebruiker is mislukt."
 
@@ -327,64 +331,64 @@ msgstr "Privéberichten aan %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle privéberichten aan %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Het bericht is leeg!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Dat is te lang. De maximale berichtlengte is %d tekens."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "De ontvanger is niet aangetroffen."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "U kunt geen privéberichten sturen aan gebruikers die niet op uw "
 "vriendenlijst staan."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Er is geen status gevonden met dit ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Deze mededeling staat al in uw favorietenlijst."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Het was niet mogelijk een favoriet aan te maken."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Deze mededeling staat niet in uw favorietenlijst."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr ""
 "Het was niet mogelijk deze mededeling van uw favorietenlijst te verwijderen."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "U kunt deze gebruiker niet volgen, omdat deze niet bestaat."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "U kunt de gebruiker %s niet volgen, omdat deze al op uw lijst staat."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Het is niet mogelijk deze gebruiker niet langer te volgen: de gebruiker is "
 "niet aangetroffen."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "U kunt het abonnement op uzelf niet opzeggen."
 
@@ -401,7 +405,7 @@ msgstr "Het was niet mogelijk de brongebruiker te bepalen."
 msgid "Could not find target user."
 msgstr "Het was niet mogelijk de doelgebruiker te vinden."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -409,96 +413,96 @@ msgstr ""
 "De gebruikersnaam mag alleen kleine letters en cijfers bevatten. Spaties "
 "zijn niet toegestaan."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr ""
 "De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ongeldige gebruikersnaam!"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "De thuispagina is geen geldige URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "De volledige naam is te lang (maximaal 255 tekens)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "De beschrijving is te lang (maximaal %d tekens)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Locatie is te lang (maximaal 255 tekens)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Te veel aliassen! Het maximale aantal is %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ongeldige alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "De alias \"%s\" wordt al gebruikt. Geef een andere alias op."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Een alias kan niet hetzelfde zijn als de gebruikersnaam."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "De groep is niet aangetroffen."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "U bent al lid van die groep."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Het was niet mogelijk gebruiker %1$s toe te voegen aan de groep %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "U bent geen lid van deze groep."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -528,7 +532,7 @@ msgstr "%s groepen"
 msgid "groups on %s"
 msgstr "groepen op %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Uploaden is mislukt."
 
@@ -542,9 +546,9 @@ msgstr "Ongeldig token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -595,8 +599,8 @@ msgstr "Het verzoektoken %s is geweigerd en ingetrokken."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -660,18 +664,18 @@ msgstr "Deze methode vereist een POST of DELETE."
 msgid "You may not delete another user's status."
 msgstr "U kunt de status van een andere gebruiker niet verwijderen."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "De mededeling bestaat niet."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "U kunt uw eigen mededeling niet herhalen."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "U hebt die mededeling al herhaald."
 
@@ -683,21 +687,21 @@ msgstr "De status is verwijderd."
 msgid "No status with that ID found."
 msgstr "Er is geen status gevonden met dit ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "De client moet een parameter \"status\" met een waarde opgeven."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "De mededeling is te lang. Gebruik maximaal %d tekens."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Niet aangetroffen."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -901,7 +905,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Deze gebruiker blokkeren"
 
@@ -943,11 +949,13 @@ msgstr "Een lijst met voor deze groep geblokkeerde gebruikers."
 msgid "Unblock user from group"
 msgstr "Deze gebruiker weer toegang geven tot de groep"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Deblokkeer"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Deblokkeer deze gebruiker."
 
@@ -986,9 +994,9 @@ msgstr "Dit adres is al bevestigd."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -996,7 +1004,7 @@ msgstr "De gebruiker kon gebruiker niet bijwerkt worden."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "De e-mailbevestiging kon niet verwijderd worden."
@@ -1032,9 +1040,10 @@ msgstr "De applicatie is niet gevonden."
 msgid "You are not the owner of this application."
 msgstr "U bent niet de eigenaar van deze applicatie."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Er is een probleem met uw sessietoken."
 
@@ -1068,7 +1077,7 @@ msgstr "Deze applicatie verwijderen"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Niet aangemeld."
@@ -1132,7 +1141,6 @@ msgstr "Gebruiker verwijderen"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Uiterlijk"
 
@@ -1253,13 +1261,13 @@ msgstr "Standaardontwerp toepassen"
 msgid "Reset back to default"
 msgstr "Standaardinstellingen toepassen"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Opslaan"
@@ -1415,7 +1423,7 @@ msgstr "Huidige bevestigde e-mailadres"
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1433,22 +1441,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Annuleren"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-mailadres, zoals \"gebruikersnaam@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1456,19 +1468,19 @@ msgstr "Toevoegen"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Inkomende e-mail"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Stuur een email naar dit adres om een nieuw bericht te posten"
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Stelt een nieuw e-mailadres in voor het ontvangen van berichten. Het "
@@ -1476,92 +1488,92 @@ msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nieuw"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-mailvoorkeuren"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Mij e-mailen bij nieuwe abonnementen."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Mij e-mailen als iemand mijn mededeling als favoriet instelt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Mij e-mailen als iemand mij een privébericht zendt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Mij e-mailen als iemand mij een antwoord met \"@\" erin stuurt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Vrienden mogen me porren en e-mailen."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Ik wil mededelingen per e-mail plaatsen."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Een MicroID voor mijn e-mailadres publiceren."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "De e-mailvoorkeuren zijn opgeslagen."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Geen e-mailadres"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Kan het emailadres niet normaliseren"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Geen geldig e-mailadres."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "U hebt dit e-mailadres als ingesteld als uw e-mailadres."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Dit e-mailadres is al geregistreerd door een andere gebruiker."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "De bevestigingscode kon niet ingevoegd worden."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1573,50 +1585,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Er is geen openstaand bevestigingsverzoek om te annuleren."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Dat is het verkeerde e-mailadres."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "E-mailbevestiging geannuleerd."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Dit is niet uw e-mailadres."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Het e-mailadres is verwijderd."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Geen binnenkomend e-mailadres"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kan de gebruikersgegevens niet vernieuwen"
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Het e-mailadres voor inkomende mail is verwijderd."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Het nieuwe binnenkomende e-mailadres is toegevoegd."
 
@@ -1739,7 +1751,7 @@ msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
 "De diensten op afstand gebruiken een onbekende versie van het OMB-protocol."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr ""
 "Er is een fout opgetreden tijdens het bijwerken van het profiel op afstand."
@@ -1797,7 +1809,7 @@ msgstr "Deze gebruiker is al de toegang tot de groep ontzegd."
 msgid "User is not a member of group."
 msgstr "De gebruiker is geen lid van de groep."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Gebruiker toegang tot de groep blokkeren"
 
@@ -1881,37 +1893,47 @@ msgstr "Logo geactualiseerd."
 msgid "Failed updating logo."
 msgstr "Het bijwerken van het logo is mislukt."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "leden van de groep %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s groeps leden, pagina %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Ledenlijst van deze groep"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Beheerder"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Blokkeren"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Deze gebruiker groepsbeheerder maken"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Beheerder maken"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Deze gebruiker beheerder maken"
 
@@ -2055,7 +2077,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2065,65 +2090,65 @@ msgstr ""
 "%s eerst aan uw contactenlijst in uw IM-programma of in GTalk toevoegt."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM-voorkeuren"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Mij berichten sturen via Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Een mededeling versturen als mijn Jabber/GTalk-status wijzigt."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Mij antwoorden sturen via Jabber/GTalk van gebruikers op wie ik niet "
 "geabonneerd ben."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Een MicroID voor mijn Jabber/GTalk-adres publiceren."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Uw voorkeuren zijn opgeslagen."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Geen Jabber-ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Het was niet mogelijk om het Jabber-ID te normaliseren"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Geen geldige Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "U hebt dit al ingesteld als uw Jabber-ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Het Jabber-ID wordt al gebruikt door een andere gebruiker."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2133,28 +2158,28 @@ msgstr ""
 "ermee akkoord gaan dat %s berichten aan u verzendt."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Dat is het verkeerde IM-adres."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "De IM-bevestiging kon niet verwijderd worden."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM-bevestiging geannuleerd."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Dit is niet uw Jabber-ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Het IM-adres is verwijderd."
 
@@ -2633,8 +2658,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Alleen URL's voor %s via normale HTTP alstublieft."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Geen ondersteund gegevensformaat."
 
@@ -2774,7 +2799,7 @@ msgid "Password saved."
 msgstr "Het wachtwoord is opgeslagen."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Paden"
 
@@ -2988,7 +3013,7 @@ msgstr "Volledige naam"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Thuispagina"
 
@@ -3097,7 +3122,7 @@ msgid "Couldn't save tags."
 msgstr "Het was niet mogelijk de labels op te slaan."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "De instellingen zijn opgeslagen."
 
@@ -3641,7 +3666,7 @@ msgstr "Deze gebruiker is al in de zandbak geplaatst."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessies"
 
@@ -3679,24 +3704,24 @@ msgid "Application profile"
 msgstr "Applicatieprofiel"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Icoon"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Naam"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisatie"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beschrijving"
 
@@ -3813,7 +3838,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Dit is de manier om dat te delen wat u wilt."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s groep"
@@ -3865,7 +3890,7 @@ msgstr "Mededelingenfeed voor groep %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "Vriend van een vriend voor de groep %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Leden"
 
@@ -4326,7 +4351,7 @@ msgstr "Er is geen code ingevoerd"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Snapshots"
 
@@ -5029,12 +5054,12 @@ msgid "Problem saving notice."
 msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Het gegevenstype dat is opgegeven aan saveKnownGroups is onjuist"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 "Er is een probleem opgetreden bij het opslaan van het Postvak IN van de "
@@ -5042,7 +5067,7 @@ msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5076,7 +5101,7 @@ msgid "Unable to save tag."
 msgstr "Het was niet mogelijk om het label op te slaan."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "U mag zich niet abonneren."
 
@@ -5225,7 +5250,8 @@ msgid "Change site configuration"
 msgstr "Websiteinstellingen wijzigen"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Beheer"
@@ -5302,7 +5328,7 @@ msgstr "Zoeken"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Mededeling van de website"
 
@@ -5366,7 +5392,10 @@ msgid "StatusNet software license"
 msgstr "Licentie van de StatusNet-software"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5376,13 +5405,16 @@ msgstr ""
 "broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** is een microblogdienst."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5394,20 +5426,20 @@ msgstr ""
 "www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licentie voor siteinhoud"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Inhoud en gegevens van %1$s zijn persoonlijk en vertrouwelijk."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5415,33 +5447,34 @@ msgstr ""
 "voorbehouden."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Auteursrechten op inhoud en gegevens rusten bij de respectievelijke "
 "gebruikers. Alle rechten voorbehouden."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 "Alle inhoud en gegevens van %1$s zijn beschikbaar onder de licentie %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginering"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Later"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Eerder"
 
@@ -5450,208 +5483,243 @@ msgstr "Eerder"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Verwachtte een root-feed element maar kreeg een heel XML-document."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Het is nog niet mogelijk inhoud uit andere omgevingen te verwerken."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Het is nog niet mogelijk ingebedde XML-inhoud te verwerken"
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Het is nog niet mogelijk ingebedde Base64-inhoud te verwerken"
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "U mag geen wijzigingen maken aan deze website."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Wijzigingen aan dat venster zijn niet toegestaan."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() is niet geïmplementeerd."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() is nog niet geïmplementeerd."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Het was niet mogelijk om de ontwerpinstellingen te verwijderen."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Basisinstellingen voor de website"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Website"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Instellingen vormgeving"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Uiterlijk"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Gebruikersinstellingen"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Gebruiker"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Toegangsinstellingen"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Padinstellingen"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Sessieinstellingen"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Websitebrede mededeling opslaan"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Snapshotinstellingen"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "Het API-programma heeft lezen-en-schrijventoegang nodig, maar u hebt alleen "
 "maar leestoegang."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Er is geen applicatie voor die gebruikerssleutel."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Ongeldig toegangstoken."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "Er is geen gebruiker voor dat token."
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "U kon niet geauthenticeerd worden."
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr "Er is geprobeerd een onbekend token in te trekken."
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr "Het was niet mogelijk een ingetrokken token te verwijderen."
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Applicatie bewerken"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Icoon voor deze applicatie"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Beschrijf uw applicatie in %d tekens"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Beschrijf uw applicatie"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "De URL van de homepage van deze applicatie"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Bron-URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organisatie verantwoordelijk voor deze applicatie"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "De URL van de homepage van de organisatie"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL om naar door te verwijzen na authenticatie"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Browser"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Type applicatie; browser of desktop"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Alleen-lezen"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Lezen en schrijven"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Standaardtoegang voor deze applicatie: alleen-lezen of lezen en schrijven"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Annuleren"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "lezen en schrijven"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "alleen-lezen"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Goedgekeurd op %1$s met toegang \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Intrekken"
@@ -5671,11 +5739,13 @@ msgstr "Auteur"
 msgid "Provider"
 msgstr "Provider"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Mededelingen die deze bijlage bevatten"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Labels voor deze bijlage"
 
@@ -5687,6 +5757,11 @@ msgstr "Wachtwoord wijzigen is mislukt"
 msgid "Password changing is not allowed"
 msgstr "Wachtwoord wijzigen is niet toegestaan"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokkeren"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Commandoresultaten"
@@ -5942,7 +6017,7 @@ msgid "You are not subscribed to anyone."
 msgstr "U bent op geen enkele gebruiker geabonneerd."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5957,7 +6032,7 @@ msgid "No one is subscribed to you."
 msgstr "Niemand heeft een abonnenment op u."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5972,7 +6047,7 @@ msgid "You are not a member of any groups."
 msgstr "U bent lid van geen enkele groep."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5980,6 +6055,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "U bent lid van deze groep:"
 msgstr[1] "U bent lid van deze groepen:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6204,37 +6280,77 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Extra namen voor de groep, gescheiden door komma's of spaties. Maximaal %d."
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Groep"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Groep %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Leden"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Leden van de group %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr "Geblokkeerd"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s geblokkeerde gebruikers"
+msgstr "Geblokkeerde gebruikers in %s"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr "Eigenschappen van de groep %s bewerken"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Logo voor %s toevoegen of verwijderen"
+msgstr "Logo voor de groep %s toevoegen of bewerken"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "%s-ontwerp toevoegen of bewerken"
+msgstr "Vormgeving van de groep %s toevoegen of aanpassen"
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6267,7 +6383,8 @@ msgstr "Dat bestand is te groot. De maximale bestandsgrootte is %s."
 msgid "Partial upload."
 msgstr "Gedeeltelijke upload."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Er is een systeemfout opgetreden tijdens het uploaden van het bestand."
 
@@ -6671,19 +6788,22 @@ msgstr "Inkomende e-mail is niet toegestaan."
 msgid "Unsupported message type: %s"
 msgstr "Niet ondersteund berichttype: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Er is een databasefout opgetreden tijdens het opslaan van uw bestand. "
 "Probeer het alstublieft opnieuw."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "Het te uploaden bestand is groter dan de ingestelde upload_max_filesize in "
 "php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6691,43 +6811,61 @@ msgstr ""
 "Het te uploaden bestand is groter dan de ingestelde MAX_FILE_SIZE in het "
 "HTML-formulier."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "De upload is slechts gedeeltelijk voltooid."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "De tijdelijke map is niet aanwezig."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Het was niet mogelijk naar schijf te schrijven."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Het uploaden van het bestand is tegengehouden door een uitbreiding."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Met dit bestand wordt het quotum van de gebruiker overschreden."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Het bestand kon niet verplaatst worden naar de doelmap."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Het was niet mogelijk het MIME-type van het bestand te bepalen."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Probeer een ander %s-formaat te gebruiken."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"\"%1$s\" is geen ondersteund bestandstype op deze server. Probeer een andere "
+"bestandstype van de applicatie \"%2$s\" te gebruiken."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "Het bestandstype %s wordt door deze server niet ondersteund."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "\"%s\" is geen ondersteund bestandstype op deze server."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6845,28 +6983,23 @@ msgid "Send a nudge to this user"
 msgstr "Deze gebruiker porren"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Er is een fout opgetreden tijdens het invoegen van een nieuw profiel"
+msgid "Error inserting new profile."
+msgstr "Fout tijdens het invoegen van een nieuw profiel."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Er is een fout opgetreden bij het toevoegen van de avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr ""
-"Er is een fout opgetreden tijdens het bijwerken van het profiel op afstand."
+msgid "Error inserting avatar."
+msgstr "Fout bij het invoegen van de avatar."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr ""
-"Er is een fout opgetreden tijdens het invoegen in het profiel op afstand."
+msgid "Error inserting remote profile."
+msgstr "Fout bij het invoegen van het profiel van een andere server."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicaatmelding"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Dubbele mededeling."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Kon nieuw abonnement niet toevoegen."
 
@@ -6903,7 +7036,8 @@ msgstr "Uw verzonden berichten"
 msgid "Tags in %s's notices"
 msgstr "Labels in de mededelingen van %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Onbekend"
 
@@ -6997,19 +7131,24 @@ msgstr "Zandbak"
 msgid "Sandbox this user"
 msgstr "Deze gebruiker in de zandbak plaatsen"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Site doorzoeken"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Term(en)"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr "Zoeken"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Hulp bij zoeken"
 
@@ -7125,7 +7264,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Het uiterlijk bevat onveilige namen voor bestandsextensies."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7214,56 +7353,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "een paar seconden geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "ongeveer een minuut geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "ongeveer %d minuten geleden"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "ongeveer een minuut geleden"
+msgstr[1] "ongeveer %d minuten geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "ongeveer een uur geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "ongeveer %d uur geleden"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "ongeveer een uur geleden"
+msgstr[1] "ongeveer %d uur geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "ongeveer een dag geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "ongeveer %d dagen geleden"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "ongeveer een dag geleden"
+msgstr[1] "ongeveer %d dagen geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "ongeveer een maand geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "ongeveer %d maanden geleden"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "ongeveer een maand geleden"
+msgstr[1] "ongeveer %d maanden geleden"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "ongeveer een jaar geleden"
 
index 4dd5d023ca386448862e1da0f91c78fa54fc19d3..2091d1431e1f19dd2c9c5889206d0a0e66373a20 100644 (file)
@@ -1,24 +1,26 @@
-# Translation of StatusNet to Norwegian Nynorsk
+# Translation of StatusNet - Core to Norwegian Nynorsk (‪Norsk (nynorsk)‬)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Nghtwlkr
-# Author@translatewiki.net: Ranveig
+# Author: Nghtwlkr
+# Author: Ranveig
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:02+0000\n"
-"Language-Team: Norwegian Nynorsk\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:11+0000\n"
+"Language-Team: Norwegian Nynorsk <http://translatewiki.net/wiki/Portal:nn>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: nn\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Checkbox instructions for admin setting "Private"
 #: actions/accessadminpanel.php:165
@@ -35,22 +37,17 @@ msgstr ""
 msgid "Disable new registrations."
 msgstr ""
 
-#. TRANS: Checkbox label for disabling new user registrations.
-#: actions/accessadminpanel.php:185
-msgid "Closed"
-msgstr ""
-
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -118,39 +115,41 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Oppdateringar frå %1$s og vener på %2$s!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Dette krev ein POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Brukaren har inga profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -160,11 +159,11 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blokkering av brukar feila."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "De-blokkering av brukar feila."
 
@@ -183,49 +182,45 @@ msgstr "Direkte meldingar til %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alle direkte meldingar sendt til %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Inga meldingstekst!"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Kunne ikkje finne mottakar."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Kan ikkje senda direktemeldingar til brukarar som du ikkje er ven med."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Fann ingen status med den ID-en."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Kunne ikkje lagre favoritt."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Kunne ikkje slette favoritt."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Kan ikkje fylgja brukar: %s er allereie på lista di."
 
-#: actions/apifriendshipsexists.php:91
-msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
-
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
 msgstr "Kan ikkje oppdatera brukar."
@@ -234,76 +229,81 @@ msgstr "Kan ikkje oppdatera brukar."
 msgid "Could not find target user."
 msgstr "Kan ikkje oppdatera brukar."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Kallenamn må berre ha små bokstavar og nummer, ingen mellomrom."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Kallenamnet er allereie i bruk. Prøv eit anna."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Ikkje eit gyldig brukarnamn."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Heimesida er ikkje ei gyldig internettadresse."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Plassering er for lang (maksimalt 255 teikn)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Plassering er for lang (maksimalt 255 teikn)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Finst ikkje."
 
+#. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Kunne ikkje bli med i gruppa."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -322,9 +322,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -355,8 +355,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -413,13 +413,13 @@ msgstr "Dette krev anten ein POST eller DELETE."
 msgid "You may not delete another user's status."
 msgstr "Du kan ikkje sletta statusen til ein annan brukar."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Denne notisen finst ikkje."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Kan ikkje sletta notisen."
 
@@ -427,15 +427,15 @@ msgstr "Kan ikkje sletta notisen."
 msgid "No status with that ID found."
 msgstr "Fann ingen status med den ID-en."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Finst ikkje."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -587,7 +587,9 @@ msgid "No"
 msgstr "Merknad"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blokkér denne brukaren"
 
@@ -611,11 +613,13 @@ msgstr "Lagring av informasjon feila."
 msgid "No such group."
 msgstr "Denne gruppa finst ikkje."
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Lås opp"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Lås opp brukaren"
 
@@ -637,12 +641,6 @@ msgstr "Fann ikkje stadfestingskode."
 msgid "That confirmation code is not for you!"
 msgstr "Den godkjenningskoden er ikkje for deg!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -654,9 +652,9 @@ msgstr "Den addressa har alt blitt bekrefta."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -664,7 +662,7 @@ msgstr "Kan ikkje oppdatera brukar."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Kan ikkje sletta e-postgodkjenning."
@@ -691,9 +689,10 @@ msgstr "Du må være innlogga for å melde deg ut av ei gruppe."
 msgid "Application not found."
 msgstr "Fann ikkje stadfestingskode."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Det var eit problem med sesjons billetten din."
 
@@ -710,7 +709,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Ikkje logga inn"
@@ -719,12 +718,6 @@ msgstr "Ikkje logga inn"
 msgid "Can't delete this notice."
 msgstr "Kan ikkje sletta notisen."
 
-#: actions/deletenotice.php:103
-msgid ""
-"You are about to permanently delete a notice. Once this is done, it cannot "
-"be undone."
-msgstr ""
-
 #: actions/deletenotice.php:109 actions/deletenotice.php:141
 msgid "Delete notice"
 msgstr "Slett notis"
@@ -747,7 +740,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -755,11 +747,6 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "Endra"
@@ -768,10 +755,6 @@ msgstr "Endra"
 msgid "Site logo"
 msgstr "Statusmelding"
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -831,13 +814,13 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Lagra"
@@ -859,10 +842,6 @@ msgstr "Legg til i favorittar"
 msgid "No such document \"%s\""
 msgstr "Denne notisen finst ikkje."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
-msgstr ""
-
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
 msgstr ""
@@ -936,7 +915,7 @@ msgstr "Godkjent epostadresse."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -951,122 +930,110 @@ msgstr ""
 "Ventar på godkjenning. Sjekk innboksen (og søppelpostboksen) for ei melding "
 "med instruksjonar."
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Epostadresse («brukarnamn@example.org»)"
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Innkomande epost"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Send epost til denne addressa for å legge til nye notisar."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Vel ny epostadresse til å oppdatera med; fjerner den gamle."
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Epostadresser"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Send meg ein notis ved nye tingingar på epost."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Send meg ein epost når nokon legg til ein av mine notisar som favoritt."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Send meg ein epost når nokon sender meg ei privat melding."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Tillat vennar å sende meg ein epost."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Eg vil senda notisar med epost."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publiser ein MicroID for epost addressa mi."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Lagra brukarval."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Ingen epostadresse."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Klarar ikkje normalisera epostadressa"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Ikkje ei gyldig epostadresse."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Det er alt din epost addresse"
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Den epost addressa er alt registrert hos ein annan brukar."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Kan ikkje leggja til godkjenningskode."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1077,45 +1044,45 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ingen ventande stadfesting å avbryta."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Ingen ventande stadfesting å avbryta."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Det er ikkje din epost addresse."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Fjerna innkomande epostadresse."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ingen innkomande epostadresse."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kan ikkje oppdatera brukarinformajon."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Fjerna innkomande epostadresse."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "La til ny innkomande epostadresse."
 
@@ -1174,11 +1141,6 @@ msgstr "Profilerte folk"
 msgid "Featured users, page %d"
 msgstr "Profilerte folk, side %d"
 
-#: actions/featured.php:99
-#, php-format
-msgid "A selection of some great users on %s"
-msgstr ""
-
 #: actions/file.php:34
 msgid "No notice ID."
 msgstr "Denne notisen finst ikkje."
@@ -1191,10 +1153,6 @@ msgstr "Denne notisen finst ikkje."
 msgid "Not expecting this response!"
 msgstr "Venta ikkje dette svaret!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Du kan nytta det lokale abonnementet!"
@@ -1207,14 +1165,6 @@ msgstr "Brukaren tillet deg ikkje å tinga meldingane sine."
 msgid "You are not authorized."
 msgstr "Du tingar ikkje oppdateringar til den profilen."
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/grantrole.php:66 actions/revokerole.php:66
 msgid "This role is reserved and cannot be set."
 msgstr ""
@@ -1281,29 +1231,43 @@ msgstr "Logo oppdatert."
 msgid "Failed updating logo."
 msgstr "Feil ved oppdatering av logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s medlemmar i gruppa"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%s medlemmar i gruppa"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Ei liste over brukarane i denne gruppa."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blokkér"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
+msgid "Make Admin"
+msgstr ""
+
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1388,11 +1352,6 @@ msgstr ""
 "Du kan sende og motta meldingar gjennom Jabber/GTalk [direktemeldingar](%%"
 "doc.im%%).  Set opp adressa og innstillingar under."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1416,7 +1375,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1426,63 +1388,63 @@ msgstr ""
 "leggja %s til venelista di i ljonmeldingsklienten din."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Lagra brukarval."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Send meg ein notis via Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Legg til ein notis når min Jabber/GTalk status forandrar seg."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Send meg svar via Jabber/GTalk fra folk eg ikkje abbonnerar på."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publiser ein MicroID for Jabber/GTalk addressene mine"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Lagra brukarval."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Nei Jabber-ID"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Klarar ikkje normalisera Jabber-IDen"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Ikkje ein gyldig Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Det er alt din Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber-ID tilhøyrer allereie ein annan brukar."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1492,23 +1454,23 @@ msgstr ""
 "for å senda meldinger til deg."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Det er feil lynmeldings addresse."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Ingen stadfestingskode."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Det er ikkje din Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Fjerna innkomande epostadresse."
 
@@ -1595,12 +1557,6 @@ msgstr "Personleg melding"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Eventuelt legg til ei personleg melding til invitasjonen."
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1714,21 +1670,10 @@ msgstr ""
 "Skriv inn brukarnam og passord før du endrar innstillingar (av "
 "tryggleiksomsyn)."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
 #: actions/newapplication.php:176
 msgid "Source URL is required."
 msgstr ""
@@ -1813,21 +1758,11 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
 #: actions/noticesearchrss.php:98
 #, php-format
 msgid "Updates matching search term \"%1$s\" on %2$s!"
 msgstr "Oppdateringar frå %1$s på %2$s!"
 
-#: actions/nudge.php:85
-msgid ""
-"This user doesn't allow nudges or hasn't confirmed or set their email yet."
-msgstr ""
-
 #: actions/nudge.php:94
 msgid "Nudge sent"
 msgstr "Dytta!"
@@ -1844,6 +1779,15 @@ msgstr "Du må være logga inn for å bli med i ei gruppe."
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1870,12 +1814,6 @@ msgstr "Brukaren har inga profil."
 msgid "%1$s's status on %2$s"
 msgstr "%1$s sin status på %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1883,8 +1821,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Ikkje eit støtta dataformat."
 
@@ -1999,7 +1937,7 @@ msgid "Password saved."
 msgstr "Lagra passord."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -2007,26 +1945,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -2063,6 +1981,10 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
+#: actions/pathsadminpanel.php:264
+msgid "Theme server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:268
 msgid "Theme path"
 msgstr ""
@@ -2071,10 +1993,6 @@ msgstr ""
 msgid "Theme directory"
 msgstr ""
 
-#: actions/pathsadminpanel.php:292
-msgid "Avatar directory"
-msgstr ""
-
 #: actions/pathsadminpanel.php:301
 msgid "Backgrounds"
 msgstr ""
@@ -2115,10 +2033,6 @@ msgstr "Tenar"
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2174,7 +2088,7 @@ msgstr "Fullt namn"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Heimeside"
 
@@ -2182,15 +2096,6 @@ msgstr "Heimeside"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr "URL til heimesida di, bloggen din, eller ein profil på ei anna side."
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "Om meg"
@@ -2271,7 +2176,7 @@ msgid "Couldn't save tags."
 msgstr "Kan ikkje lagra merkelapp."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Lagra innstillingar."
 
@@ -2293,10 +2198,6 @@ msgstr "Offentleg tidsline, side %d"
 msgid "Public timeline"
 msgstr "Offentleg tidsline"
 
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2323,14 +2224,6 @@ msgid ""
 "friends, family, and colleagues! ([Read more](%%doc.help%%))"
 msgstr ""
 
-#: actions/public.php:247
-#, php-format
-msgid ""
-"This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-"
-"blogging) service based on the Free Software [StatusNet](http://status.net/) "
-"tool."
-msgstr ""
-
 #: actions/publictagcloud.php:57
 msgid "Public tag cloud"
 msgstr "Offentleg emne sky"
@@ -2552,33 +2445,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2628,18 +2494,6 @@ msgstr "Ting"
 msgid "Invalid profile URL (bad format)"
 msgstr "Ugyldig profil-nettadresse (feil format)"
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
-#: actions/remotesubscribe.php:176
-msgid "That’s a local profile! Login to subscribe."
-msgstr ""
-
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:114 lib/noticelist.php:676
 msgid "Repeated"
 msgstr "Framheva"
@@ -2691,7 +2545,7 @@ msgstr "Statistikk"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2716,13 +2570,13 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beskriving"
 
@@ -2736,10 +2590,18 @@ msgstr "Statistikk"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2810,7 +2672,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s gruppe"
@@ -2862,7 +2724,7 @@ msgstr "Notisstraum for %s"
 msgid "FOAF for %s group"
 msgstr "Utboks for %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Medlemmar"
 
@@ -2890,15 +2752,6 @@ msgid ""
 "of this group and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showgroup.php:461
-#, 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 "
-"[StatusNet](http://status.net/) tool. Its members share short messages about "
-"their life and interests. "
-msgstr ""
-
 #: actions/showmessage.php:81
 msgid "No such message."
 msgstr "Kan ikkje finne den meldinga."
@@ -2964,14 +2817,6 @@ msgid ""
 "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))"
 msgstr ""
 
-#: actions/showstream.php:248
-#, 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 "
-"[StatusNet](http://status.net/) tool. "
-msgstr ""
-
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
 msgstr ""
@@ -3073,11 +2918,6 @@ msgstr "Avatar-innstillingar"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr "Du kan motta SMS-meldingar gjennom e-post frå %%site.name%%."
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -3200,7 +3040,7 @@ msgstr "Ingen innskriven kode"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3208,6 +3048,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Stadfesting av epostadresse"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3359,10 +3203,6 @@ msgstr "Straum for vener av %s"
 msgid "Notice feed for tag %s (RSS 2.0)"
 msgstr "Straum for vener av %s"
 
-#: actions/tagother.php:39
-msgid "No ID argument."
-msgstr ""
-
 #: actions/tagother.php:65
 #, php-format
 msgid "Tag %s"
@@ -3479,17 +3319,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Autoriser tinging"
 
-#: actions/userauthorization.php:110
-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 ""
-
-#: actions/userauthorization.php:196 actions/version.php:167
-msgid "License"
-msgstr ""
-
 #: actions/userauthorization.php:217
 msgid "Accept"
 msgstr "Godta"
@@ -3511,24 +3340,10 @@ msgstr "Ingen autoriserings-spørjing!"
 msgid "Subscription authorized"
 msgstr "Tinging autorisert"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Tinging avvist"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3554,16 +3369,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3580,10 +3385,6 @@ msgstr ""
 msgid "%1$s groups, page %2$d"
 msgstr "Grupper, side %d"
 
-#: actions/usergroups.php:132
-msgid "Search for more groups"
-msgstr ""
-
 #: actions/usergroups.php:164
 #, php-format
 msgid "Try [searching for groups](%%action.groupsearch%%) and joining them."
@@ -3733,13 +3534,13 @@ msgid "Problem saving notice."
 msgstr "Eit problem oppstod ved lagring av notis."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -3838,24 +3639,12 @@ msgstr "Ingen tittel"
 msgid "Primary site navigation"
 msgstr "Navigasjon for hovudsida"
 
-#. TRANS: Tooltip for main menu option "Personal"
-#: lib/action.php:455
-msgctxt "TOOLTIP"
-msgid "Personal profile and friends timeline"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Account"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
 msgid "Change your email, avatar, password, profile"
 msgstr "Endra passordet ditt"
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
@@ -3891,15 +3680,9 @@ msgctxt "TOOLTIP"
 msgid "Help me!"
 msgstr "Hjelp"
 
-#. TRANS: Tooltip for main menu option "Search"
-#: lib/action.php:513
-msgctxt "TOOLTIP"
-msgid "Search for people or text"
-msgstr ""
-
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Statusmelding"
 
@@ -3958,22 +3741,17 @@ msgstr "Kontakt"
 msgid "StatusNet software license"
 msgstr "StatusNets programvarelisens"
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** er ei mikrobloggingteneste."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3986,43 +3764,44 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginering"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "« Etter"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Før »"
 
@@ -4031,106 +3810,149 @@ msgstr "Før »"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Brukar"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Beskriving"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Avbryt"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Gjenopprett"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr ""
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
@@ -4141,10 +3963,21 @@ msgstr ""
 msgid "Provider"
 msgstr "Forhandsvis"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr ""
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blokkér"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultat frå kommandoen"
@@ -4157,6 +3990,13 @@ msgstr "Kommandoen utførd"
 msgid "Command failed"
 msgstr "Kommandoen feila"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4184,6 +4024,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Notis markert som favoritt."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4218,13 +4072,6 @@ msgid ""
 "same server."
 msgstr ""
 
-#. TRANS: Message given if content is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:491 lib/xmppmanager.php:403
-#, php-format
-msgid "Message too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
 #. TRANS: Error text shown sending a direct message fails with an unknown reason.
 #: lib/command.php:517
 msgid "Error sending direct message."
@@ -4235,22 +4082,18 @@ msgstr "Ein feil oppstod ved sending av direkte melding."
 msgid "Error repeating notice."
 msgstr "Feil ved å setja brukar."
 
-#. TRANS: Message given if content of a notice for a reply is too long.
-#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
-#: lib/command.php:592
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
 #, php-format
-msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr ""
-
-#. TRANS: Error text shown when no username was provided when issuing a subscribe command.
-#: lib/command.php:655
-msgid "Specify the name of the user to subscribe to."
+msgid "Subscribed to %s."
 msgstr ""
 
-#. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
-#. TRANS: Error text shown when no username was provided when issuing the command.
-#: lib/command.php:694 lib/command.php:804
-msgid "Specify the name of the user to unsubscribe from."
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
@@ -4291,8 +4134,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4301,7 +4151,7 @@ msgstr[0] "Du tingar allereie oppdatering frå desse brukarane:"
 msgstr[1] "Du tingar allereie oppdatering frå desse brukarane:"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4310,7 +4160,7 @@ msgstr[0] "Kan ikkje tinga andre til deg."
 msgstr[1] "Kan ikkje tinga andre til deg."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4318,6 +4168,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Du er ikkje medlem av den gruppa."
 msgstr[1] "Du er ikkje medlem av den gruppa."
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4397,6 +4248,10 @@ msgid ""
 "You can upload your personal background image. The maximum file size is 2MB."
 msgstr "Du kan lasta opp ein logo for gruppa."
 
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr ""
+
 #: lib/disfavorform.php:114 lib/disfavorform.php:140
 msgid "Disfavor this notice"
 msgstr "Fjern favoriseringsmerket"
@@ -4458,11 +4313,6 @@ msgstr ""
 msgid "URL of the homepage or blog of the group or topic"
 msgstr "URL til heimesida eller bloggen for gruppa eller emnet"
 
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
-msgstr ""
-
 #: lib/groupeditform.php:179
 msgid ""
 "Location for the group, if any, like \"City, State (or Region), Country\""
@@ -4473,23 +4323,77 @@ msgstr "Kvar er du, t.d. «Stavanger, Rogaland, Noreg»"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Gruppe"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
 
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
 #: lib/groupnav.php:108
+msgctxt "MENU"
+msgid "Blocked"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
+msgid "%s blocked users"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Rediger %s gruppa sine eigenskapar"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Legg til eller rediger logoen til %s"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Add or edit %s design"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -4517,7 +4421,8 @@ msgstr "Støttar ikkje bileteformatet."
 msgid "Partial upload."
 msgstr "Hallvegs opplasta."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Systemfeil ved opplasting av fil."
 
@@ -4603,22 +4508,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/mail.php:274
 #, php-format
@@ -4750,6 +4639,11 @@ msgid ""
 "\t%s"
 msgstr ""
 
+#: lib/mail.php:657
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
 #, php-format
@@ -4788,10 +4682,6 @@ msgid ""
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
 
-#: lib/mailbox.php:228 lib/noticelist.php:506
-msgid "from"
-msgstr ""
-
 #: lib/mailhandler.php:37
 msgid "Could not parse message."
 msgstr "Kunne ikkje prosessera melding."
@@ -4808,56 +4698,75 @@ msgstr "Beklager, det er ikkje di inngåande epost addresse."
 msgid "Sorry, no incoming email allowed."
 msgstr "Beklager, inngåande epost er ikkje tillatt."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Kunne ikkje slette favoritt."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -4872,11 +4781,6 @@ msgstr "Til"
 msgid "Available characters"
 msgstr "Tilgjenglege teikn"
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:160
 msgid "Send a notice"
 msgstr "Send ei melding"
@@ -4894,14 +4798,6 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
-#: lib/noticeform.php:216
-msgid "Do not share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
@@ -4957,22 +4853,23 @@ msgid "Send a nudge to this user"
 msgstr "Send eit dult til denne brukaren"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Feil med å henta inn ny profil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Feil med innhenting av brukarbilete."
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Feil ved oppdatering av ekstern profil"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Feil med å henta inn ekstern profil"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Kan ikkje leggja til ny tinging."
 
@@ -5062,30 +4959,24 @@ msgstr "Framheva"
 msgid "Popular"
 msgstr "Populære"
 
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
-msgstr ""
-
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr "Jau"
 
-#: lib/revokeroleform.php:91
-#, php-format
-msgid "Revoke the \"%s\" role from this user"
-msgstr ""
-
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Søk"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -5233,67 +5124,70 @@ msgstr "Melding"
 msgid "Moderate"
 msgstr ""
 
-#: lib/userprofile.php:366
-msgctxt "role"
-msgid "Administrator"
-msgstr ""
-
 #: lib/userprofile.php:367
 msgctxt "role"
 msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "eit par sekund sidan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "omtrent eitt minutt sidan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "~%d minutt sidan"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "omtrent ein time sidan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "~%d timar sidan"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "omtrent ein dag sidan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "~%d dagar sidan"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "omtrent ein månad sidan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "~%d månadar sidan"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "omtrent eitt år sidan"
 
index eb826b7d173aa3bf9a7dab1754c1f1583e383558..879e8e0622b74ad04b0495f5c217a9b6c01ab956 100644 (file)
@@ -1,33 +1,34 @@
-# Translation of StatusNet to Polish
+# Translation of StatusNet - Core to Polish (Polski)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Raven
-# Author@translatewiki.net: Sp5uhe
+# Author: McDutchie
+# Author: Raven
+# Author: Sp5uhe
 # --
-# Paweł Wilk <siefca@gnu.org>, 2008.
-# Piotr Drąg <piotrdrag@gmail.com>, 2009.
+# This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:09+0000\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:14+0000\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
-"Language-Team: Polish <pl@li.org>\n"
+"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\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: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\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: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: pl\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Dostęp"
 
@@ -80,10 +81,10 @@ msgstr "Zapisz ustawienia dostępu"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Zapisz"
@@ -96,15 +97,15 @@ msgstr "Nie ma takiej strony."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -204,16 +205,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Aktualizacje z %1$s i przyjaciół na %2$s."
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -228,48 +229,50 @@ msgstr "Aktualizacje z %1$s i przyjaciół na %2$s."
 msgid "API method not found."
 msgstr "Nie odnaleziono metody API."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Ta metoda wymaga POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 "Należy podać parametr o nazwie \"device\" z jedną z wartości: sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Nie można zaktualizować użytkownika."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Użytkownik nie posiada profilu."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Nie można zapisać profilu."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -281,30 +284,30 @@ msgstr ""
 "Serwer nie może obsłużyć aż tyle danych POST (%s bajty) z powodu bieżącej "
 "konfiguracji."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Nie można zapisać ustawień wyglądu."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Nie można zaktualizować wyglądu."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Nie można zablokować siebie."
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Zablokowanie użytkownika nie powiodło się."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Odblokowanie użytkownika nie powiodło się."
 
@@ -328,62 +331,62 @@ msgstr "Bezpośrednia wiadomość do użytkownika %s"
 msgid "All the direct messages sent to %s"
 msgstr "Wszystkie bezpośrednie wiadomości wysłane do użytkownika %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Brak tekstu wiadomości."
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Wiadomość jest za długa. Maksymalna długość wynosi %d znaków."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Nie odnaleziono odbiorcy."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 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/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Nie odnaleziono stanów z tym identyfikatorem."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Ten stan jest już ulubiony."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Nie można utworzyć ulubionego wpisu."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Ten stan nie jest ulubiony."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Nie można usunąć ulubionego wpisu."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Nie można obserwować użytkownika: nie odnaleziono profilu."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Nie można obserwować użytkownika: %s jest już na twojej liście."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Nie można zrezygnować z obserwacji użytkownika: nie odnaleziono użytkownika."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Nie można zrezygnować z obserwacji samego siebie."
 
@@ -400,101 +403,101 @@ msgstr "Nie można określić użytkownika źródłowego."
 msgid "Could not find target user."
 msgstr "Nie można odnaleźć użytkownika docelowego."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Pseudonim może zawierać tylko małe litery i cyfry, bez spacji."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Pseudonim jest już używany. Spróbuj innego."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "To nie jest prawidłowy pseudonim."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Strona domowa nie jest prawidłowym adresem URL."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Opis jest za długi (maksymalnie %d znaków)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Położenie jest za długie (maksymalnie 255 znaków)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Za dużo aliasów. Maksymalnie %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Nieprawidłowy alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" jest już używany. Spróbuj innego."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias nie może być taki sam jak pseudonim."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Nie odnaleziono grupy."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Jesteś już członkiem tej grupy."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Zostałeś zablokowany w tej grupie przez administratora."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Nie można dołączyć użytkownika %1$s do grupy %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Nie jesteś członkiem tej grupy."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -524,7 +527,7 @@ msgstr "Grupy %s"
 msgid "groups on %s"
 msgstr "grupy na %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Wysłanie nie powiodło się."
 
@@ -538,9 +541,9 @@ msgstr "Nieprawidłowy token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -584,8 +587,8 @@ msgstr "Token żądania %s został odrzucony lub unieważniony."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -649,18 +652,18 @@ msgstr "Ta metoda wymaga POST lub DELETE."
 msgid "You may not delete another user's status."
 msgstr "Nie można usuwać stanów innych użytkowników."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Nie ma takiego wpisu."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Nie można powtórzyć własnego wpisu."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Już powtórzono ten wpis."
 
@@ -672,21 +675,21 @@ msgstr "Usunięto stan."
 msgid "No status with that ID found."
 msgstr "Nie odnaleziono stanów z tym identyfikatorem."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Klient musi dostarczać parametr \"stan\" z wartością."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Wpis jest za długi. Maksymalna długość wynosi %d znaków."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Nie odnaleziono."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Maksymalny rozmiar wpisu wynosi %d znaków, w tym adres URL załącznika."
@@ -886,7 +889,9 @@ msgid "Yes"
 msgstr "Tak"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Zablokuj tego użytkownika"
 
@@ -928,11 +933,13 @@ msgstr "Lista użytkowników zablokowanych w tej grupie."
 msgid "Unblock user from group"
 msgstr "Odblokuj użytkownika w tej grupie"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Odblokuj"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Odblokuj tego użytkownika"
 
@@ -971,9 +978,9 @@ msgstr "Ten adres został już potwierdzony."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -981,7 +988,7 @@ msgstr "Nie można zaktualizować użytkownika."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Nie można usunąć potwierdzenia adresu e-mail."
@@ -1017,9 +1024,10 @@ msgstr "Nie odnaleziono aplikacji."
 msgid "You are not the owner of this application."
 msgstr "Nie jesteś właścicielem tej aplikacji."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Wystąpił problem z tokenem sesji."
 
@@ -1052,7 +1060,7 @@ msgstr "Usuń tę aplikację"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Niezalogowany."
@@ -1115,7 +1123,6 @@ msgstr "Usuń tego użytkownika"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Wygląd"
 
@@ -1234,13 +1241,13 @@ msgstr "Przywróć domyślny wygląd"
 msgid "Reset back to default"
 msgstr "Przywróć domyślne ustawienia"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Zapisz"
@@ -1396,7 +1403,7 @@ msgstr "Obecnie potwierdzone adresy e-mail."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1415,22 +1422,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Anuluj"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Adres e-mail, taki jak \"NazwaUżytkownika@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1438,110 +1449,110 @@ msgstr "Dodaj"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Wiadomości przychodzące"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Wyślij wiadomość e-mail na ten adres, aby wysyłać nowe wpisy."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Używaj nowego adresu e-mail do wysyłania; anuluj poprzedni."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Nowy"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferencje e-mail"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Wyślij wpisy nowych subskrypcji przez e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Wyślij wiadomość e-mail, kiedy ktoś doda mój wpis jako ulubiony."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Wyślij wiadomość e-mail, kiedy ktoś wyśle prywatną wiadomość."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Wyślij wiadomość e-mail, kiedy ktoś wyśle odpowiedź \"@\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Pozwól przyjaciołom na szturchanie mnie i wyślij mi wiadomość e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Chcę wysyłać wpisy przez wiadomości e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Opublikuj MicroID adresu e-mail."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Zapisano preferencje e-mail."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Brak adresu e-mail."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Nie można znormalizować tego adresu e-mail"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "To nie jest prawidłowy adres e-mail."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Ten adres e-mail jest już twój."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Ten adres e-mail należy już do innego użytkownika."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Nie można wprowadzić kodu potwierdzającego."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1553,50 +1564,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Brak oczekujących potwierdzeń do anulowania."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "To jest błędny adres e-mail."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Anulowano potwierdzenie e-mail."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "To nie jest twój adres e-mail."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Adres e-mail został usunięty."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Brak przychodzącego adresu e-mail."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Nie można zaktualizować wpisu użytkownika."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Usunięto przychodzący adres e-mail."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Dodano nowy przychodzący adres e-mail."
 
@@ -1715,7 +1726,7 @@ msgstr "Nie można przekonwertować tokenów żądań na tokeny dostępu."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Zdalna usługa używa nieznanej wersji protokołu OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Błąd podczas aktualizowania zdalnego profilu."
 
@@ -1772,7 +1783,7 @@ msgstr "Użytkownik został już zablokował w grupie."
 msgid "User is not a member of group."
 msgstr "Użytkownik nie jest członkiem grupy."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Zablokuj użytkownika w grupie"
 
@@ -1850,39 +1861,49 @@ msgstr "Zaktualizowano logo."
 msgid "Failed updating logo."
 msgstr "Zaktualizowanie logo nie powiodło się."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Członkowie grupy %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Członkowie grupy %1$s, strona %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Lista użytkowników znajdujących się w tej grupie."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administrator"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Zablokuj"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Uczyń użytkownika administratorem grupy"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Uczyń administratorem"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Uczyń tego użytkownika administratorem"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2022,7 +2043,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2032,64 +2056,64 @@ msgstr ""
 "upewnij się, że dodałeś %s do listy znajomych w komunikatorze lub na GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferencje komunikatora"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Wyślij mi wpisy przez Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Wyślij wpis, kiedy zmieni się mój stan na Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Wyślij mi odpowiedzi przez Jabber/GTalk od osób, których nie subskrybuję."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Opublikuj MicroID adresu Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Zapisano preferencje."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Brak identyfikatora Jabbera."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Nie można znormalizować tego identyfikatora Jabbera"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "To nie jest prawidłowy identyfikator Jabbera"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Ten identyfikator Jabbera jest już twój."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Identyfikator Jabbera należy już do innego użytkownika."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2099,28 +2123,28 @@ msgstr ""
 "zaakceptować otrzymywanie wiadomości od %s."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "To jest błędny adres komunikatora."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Nie można usunąć potwierdzenia komunikatora."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Anulowano potwierdzenie komunikatora."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "To nie jest twój identyfikator Jabbera."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Adres komunikatora został usunięty."
 
@@ -2591,8 +2615,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Dozwolone są tylko adresy URL %s przez zwykły protokół HTTP."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "To nie jest obsługiwany format danych."
 
@@ -2732,7 +2756,7 @@ msgid "Password saved."
 msgstr "Zapisano hasło."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Ścieżki"
 
@@ -2946,7 +2970,7 @@ msgstr "Imię i nazwisko"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Strona domowa"
 
@@ -3052,7 +3076,7 @@ msgid "Couldn't save tags."
 msgstr "Nie można zapisać znaczników."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Zapisano ustawienia."
 
@@ -3589,7 +3613,7 @@ msgstr "Użytkownik jest już ograniczony."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sesje"
 
@@ -3627,24 +3651,24 @@ msgid "Application profile"
 msgstr "Profil aplikacji"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ikona"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nazwa"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organizacja"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Opis"
 
@@ -3759,7 +3783,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "To jest sposób na współdzielenie tego, co chcesz."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupa %s"
@@ -3811,7 +3835,7 @@ msgstr "Kanał wpisów dla grupy %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF dla grupy %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Członkowie"
 
@@ -4266,7 +4290,7 @@ msgstr "Nie podano kodu"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Migawki"
 
@@ -4960,18 +4984,18 @@ msgid "Problem saving notice."
 msgstr "Problem podczas zapisywania wpisu."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Podano błędne dane do saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problem podczas zapisywania skrzynki odbiorczej grupy."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5002,7 +5026,7 @@ msgid "Unable to save tag."
 msgstr "Nie można zapisać etykiety."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Zablokowano subskrybowanie."
 
@@ -5150,7 +5174,8 @@ msgid "Change site configuration"
 msgstr "Zmień konfigurację witryny"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrator"
@@ -5227,7 +5252,7 @@ msgstr "Wyszukaj"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Wpis witryny"
 
@@ -5291,7 +5316,10 @@ msgid "StatusNet software license"
 msgstr "Licencja oprogramowania StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5301,13 +5329,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** jest usługą mikroblogowania."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5319,20 +5350,20 @@ msgstr ""
 "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licencja zawartości witryny"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Treść i dane %1$s są prywatne i poufne."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5340,14 +5371,15 @@ msgstr ""
 "zastrzeżone."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Prawa autorskie do treści i danych są własnością współtwórców. Wszystkie "
 "prawa zastrzeżone."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
@@ -5355,19 +5387,19 @@ msgstr ""
 "$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginacja"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Później"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Wcześniej"
 
@@ -5376,208 +5408,243 @@ msgstr "Wcześniej"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Oczekiwano elementu kanału roota, ale otrzymano cały dokument XML."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Nie można jeszcze obsługiwać zdalnej treści."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści XML."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Nie można jeszcze obsługiwać zagnieżdżonej treści Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Nie można wprowadzić zmian witryny."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Zmiany w tym panelu nie są dozwolone."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() nie jest zaimplementowane."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() nie jest zaimplementowane."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Nie można usunąć ustawienia wyglądu."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Podstawowa konfiguracja witryny"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Witryna"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Konfiguracja wyglądu"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Wygląd"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Konfiguracja użytkownika"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Użytkownik"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Konfiguracja dostępu"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Konfiguracja ścieżek"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Konfiguracja sesji"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Zmodyfikuj wpis witryny"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Konfiguracja migawek"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "Zasób API wymaga dostępu do zapisu i do odczytu, ale powiadasz dostęp tylko "
 "do odczytu."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Zmodyfikuj aplikację"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Ikona tej aplikacji"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Opisz aplikację w %d znakach"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Opisz aplikację"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "Adres URL strony domowej tej aplikacji"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "Źródłowy adres URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organizacja odpowiedzialna za tę aplikację"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "Adres URL strony domowej organizacji"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "Adres URL do przekierowania po uwierzytelnieniu"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Przeglądarka"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Pulpit"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Typ aplikacji, przeglądarka lub pulpit"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Tylko do odczytu"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Odczyt i zapis"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Domyślny dostęp do tej aplikacji: tylko do odczytu lub do odczytu i zapisu"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Anuluj"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "odczyt i zapis"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "tylko do odczytu"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Zaakceptowano %1$s - dostęp \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Unieważnij"
@@ -5597,11 +5664,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Dostawca"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Powiadamia, kiedy pojawia się ten załącznik"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Znaczniki dla tego załącznika"
 
@@ -5613,6 +5682,11 @@ msgstr "Zmiana hasła nie powiodła się"
 msgid "Password changing is not allowed"
 msgstr "Zmiana hasła nie jest dozwolona"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Zablokuj"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Wyniki polecenia"
@@ -5862,7 +5936,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Nie subskrybujesz nikogo."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5878,7 +5952,7 @@ msgid "No one is subscribed to you."
 msgstr "Nikt cię nie subskrybuje."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5894,7 +5968,7 @@ msgid "You are not a member of any groups."
 msgstr "Nie jesteś członkiem żadnej grupy."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5903,6 +5977,7 @@ msgstr[0] "Jesteś członkiem tej grupy:"
 msgstr[1] "Jesteś członkiem tych grup:"
 msgstr[2] "Jesteś członkiem tych grup:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6126,37 +6201,77 @@ msgstr ""
 "Dodatkowe pseudonimy grupy, oddzielone przecinkami lub spacjami, maksymalnie "
 "%d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Grupa"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Grupa %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Zablokowano"
+msgstr "Zablokowany"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s zablokowani użytkownicy"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Zmodyfikuj właściwości grupy %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Dodaj lub zmodyfikuj logo grupy %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Dodaj lub zmodyfikuj wygląd %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6189,7 +6304,8 @@ msgstr "Ten plik jest za duży. Maksymalny rozmiar pliku to %s."
 msgid "Partial upload."
 msgstr "Częściowo wysłano."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Błąd systemu podczas wysyłania pliku."
 
@@ -6593,58 +6709,77 @@ msgstr "Przychodzący e-mail nie jest dozwolony."
 msgid "Unsupported message type: %s"
 msgstr "Nieobsługiwany typ wiadomości: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr "Wystąpił błąd bazy danych podczas zapisywania pliku. Spróbuj ponownie."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Wysłany plik przekracza dyrektywę upload_max_filesize w php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 "Wysłany plik przekracza dyrektywę MAX_FILE_SIZE podaną w formularzu HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Plik został tylko częściowo wysłany."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Brak katalogu tymczasowego."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Zapisanie pliku na dysku nie powiodło się."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Wysłanie pliku zostało zatrzymane przez rozszerzenie."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Plik przekracza przydział użytkownika."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Nie można przenieść pliku do katalogu docelowego."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Nie można określić typu MIME pliku."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Spróbuj innego formatu %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s nie jest obsługiwanym typem pliku na tym serwerze."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6762,26 +6897,23 @@ msgid "Send a nudge to this user"
 msgstr "Wyślij szturchnięcie do tego użytkownika"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Błąd podczas wprowadzania nowego profilu"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Błąd podczas wprowadzania awatara"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Błąd podczas aktualizowania zdalnego profilu"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Błąd podczas wprowadzania zdalnego profilu"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplikat wpisu"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Nie można wprowadzić nowej subskrypcji."
 
@@ -6818,7 +6950,8 @@ msgstr "Wysłane wiadomości"
 msgid "Tags in %s's notices"
 msgstr "Znaczniki we wpisach użytkownika %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Nieznane"
 
@@ -6913,19 +7046,24 @@ msgstr "Ogranicz"
 msgid "Sandbox this user"
 msgstr "Ogranicz tego użytkownika"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Przeszukaj witrynę"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Słowa kluczowe"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr "Wyszukaj"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Przeszukaj pomoc"
 
@@ -7040,6 +7178,8 @@ msgstr ""
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"Temat zawiera niebezpieczne rozszerzenie nazwy pliku, co może stanowić "
+"zagrożenie."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7125,56 +7265,68 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "kilka sekund temu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "około minutę temu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "około %d minut temu"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "około godzinę temu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "około %d godzin temu"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "blisko dzień temu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "około %d dni temu"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "około miesiąc temu"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "około %d miesięcy temu"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "około rok temu"
 
index 8b0f8901b66c095b66f501e631defc09d5cb2b13..37a54142d3b7b6d84e5b440cce0c492c2c41ba91 100644 (file)
@@ -1,31 +1,33 @@
-# Translation of StatusNet to Portuguese
+# Translation of StatusNet - Core to Portuguese (Português)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Gallaecio
-# Author@translatewiki.net: Giro720
-# Author@translatewiki.net: Hamilton Abreu
-# Author@translatewiki.net: Ipublicis
-# Author@translatewiki.net: Waldir
+# Author: Gallaecio
+# Author: Giro720
+# Author: Hamilton Abreu
+# Author: Ipublicis
+# Author: Waldir
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:11+0000\n"
-"Language-Team: Portuguese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:16+0000\n"
+"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: pt\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Acesso"
 
@@ -78,10 +80,10 @@ msgstr "Gravar configurações de acesso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Gravar"
@@ -94,15 +96,15 @@ msgstr "Página não foi encontrada."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -201,16 +203,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Actualizações de %1$s e amigos no %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -225,48 +227,50 @@ msgstr "Actualizações de %1$s e amigos no %2$s!"
 msgid "API method not found."
 msgstr "Método da API não encontrado."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Este método requer um POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 "Tem de especificar um parâmetro 'aparelho' com um dos valores: sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Não foi possível actualizar o utilizador."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Utilizador não tem perfil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Não foi possível gravar o perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -278,30 +282,30 @@ msgstr ""
 "O servidor não conseguiu processar tantos dados POST (%s bytes) devido à sua "
 "configuração actual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Não foi possível gravar as configurações do estilo."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Não foi possível actualizar o seu estilo."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Os utilizadores não podem bloquear-se a si próprios!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Bloqueio do utilizador falhou."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Desbloqueio do utilizador falhou."
 
@@ -325,61 +329,61 @@ msgstr "Mensagens directas para %s"
 msgid "All the direct messages sent to %s"
 msgstr "Todas as mensagens directas enviadas para %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Mensagem não tem texto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Demasiado longo. Tamanho máx. das mensagens é %d caracteres."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Destinatário não encontrado."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Não pode enviar mensagens directas a utilizadores que não sejam amigos."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Nenhum estado encontrado com esse ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Este estado já é um favorito."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Não foi possível criar o favorito."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Esse estado não é um favorito."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Não foi possível eliminar o favorito."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Não foi possível seguir o utilizador: o perfil não foi encontrado."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Não foi possível seguir utilizador: %s já está na sua lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Não foi possível deixar de seguir utilizador: Utilizador não encontrado."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Não pode deixar de seguir-se a si próprio."
 
@@ -395,101 +399,101 @@ msgstr "Não foi possível determinar o utilizador de origem."
 msgid "Could not find target user."
 msgstr "Não foi possível encontrar o utilizador de destino."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Utilizador só deve conter letras minúsculas e números. Sem espaços."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Utilizador já é usado. Tente outro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Utilizador não é válido."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Página de ínicio não é uma URL válida."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Nome completo demasiado longo (máx. 255 caracteres)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Descrição demasiado longa (máx. %d caracteres)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Localidade demasiado longa (máx. 255 caracteres)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Demasiados nomes alternativos! Máx. %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Nome alternativo inválido: \"%s\""
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Nome alternativo \"%s\" já em uso. Tente outro."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Um nome alternativo não pode ser igual ao nome do utilizador."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Grupo não foi encontrado."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Já é membro desse grupo."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Foi bloqueado desse grupo pelo gestor."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Não foi possível adicionar %1$s ao grupo %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Não é membro deste grupo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -519,7 +523,7 @@ msgstr "Grupos de %s"
 msgid "groups on %s"
 msgstr "Grupos em %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "O upload falhou."
 
@@ -533,9 +537,9 @@ msgstr "Chave inválida."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -551,7 +555,7 @@ msgstr "Ocorreu um problema com a sua sessão. Por favor, tente novamente."
 
 #: actions/apioauthauthorize.php:135
 msgid "Invalid nickname / password!"
-msgstr "Alcunha ou senha inválidos!"
+msgstr "Utilizador ou senha inválidos!"
 
 #: actions/apioauthauthorize.php:159
 msgid "Database error deleting OAuth application user."
@@ -578,8 +582,8 @@ msgstr "A chave de pedido %s foi negada e retirada."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -643,18 +647,18 @@ msgstr "Este método requer um POST ou DELETE."
 msgid "You may not delete another user's status."
 msgstr "Não pode apagar o estado de outro utilizador."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Nota não foi encontrada."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Não pode repetir a sua própria nota."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Já repetiu essa nota."
 
@@ -666,21 +670,21 @@ msgstr "Estado apagado."
 msgid "No status with that ID found."
 msgstr "Não foi encontrado um estado com esse ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "O cliente tem de fornecer um parâmetro 'status' com um valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Demasiado longo. Tamanho máx. das notas é %d caracteres."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Não encontrado."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Tamanho máx. das notas é %d caracteres, incluíndo a URL do anexo."
@@ -752,7 +756,7 @@ msgstr "Anexo não foi encontrado."
 #: actions/grouplogo.php:86 actions/groupmembers.php:76
 #: actions/grouprss.php:91 actions/showgroup.php:121
 msgid "No nickname."
-msgstr "Alcunha não definida."
+msgstr "Nome de utilizador não definido."
 
 #: actions/avatarbynickname.php:64
 msgid "No size."
@@ -880,7 +884,9 @@ msgid "Yes"
 msgstr "Sim"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloquear este utilizador"
 
@@ -922,11 +928,13 @@ msgstr "Uma lista dos utilizadores com entrada bloqueada neste grupo."
 msgid "Unblock user from group"
 msgstr "Desbloquear utilizador do grupo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloquear"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Desbloquear este utilizador"
 
@@ -965,9 +973,9 @@ msgstr "Esse endereço já tinha sido confirmado."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -975,7 +983,7 @@ msgstr "Não foi possível actualizar o utilizador."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Não foi possível apagar a confirmação do endereço electrónico."
@@ -1011,9 +1019,10 @@ msgstr "Aplicação não foi encontrada."
 msgid "You are not the owner of this application."
 msgstr "Não é o proprietário desta aplicação."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Ocorreu um problema com a sua sessão."
 
@@ -1047,7 +1056,7 @@ msgstr "Apagar esta aplicação"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Não iniciou sessão."
@@ -1110,7 +1119,6 @@ msgstr "Apagar este utilizador"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Estilo"
 
@@ -1233,13 +1241,13 @@ msgstr "Repor estilos predefinidos"
 msgid "Reset back to default"
 msgstr "Repor predefinição"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Gravar"
@@ -1395,7 +1403,7 @@ msgstr "Endereço de correio já confirmado."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1413,15 +1421,19 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr ""
 "Endereço de correio electrónico, por ex. \"nomedeutilizador@exemplo.pt\""
@@ -1429,7 +1441,7 @@ msgstr ""
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1437,114 +1449,114 @@ msgstr "Adicionar"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Correio recebido"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Envie mensagens electrónicas para este endereço para publicar notas."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Crie um endereço electrónico novo para publicações; cancela o antigo."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Novo"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferências de correio electrónico"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Enviem-me notificação electrónica das novas subscrições."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Enviem-me notificação electrónica quando uma nota minha é adicionada às "
 "favoritas."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "Enviem-me notificação electrónica quando me enviarem uma mensagem privada."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 "Enviem-me notificação electrónica quando me enviarem uma \"resposta-@\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permitir que amigos me toquem e enviem mensagens electrónicas."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Quero publicar notas por correio electrónico."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
-msgstr "Publicar uma MicroID para o meu endereço electrónico."
+msgstr "Publicar um MicroID para o meu endereço electrónico."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Preferências de correio electrónico foram gravadas."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Sem endereço de correio electrónico."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Não é possível normalizar esse endereço electrónico"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Correio electrónico é inválido."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Esse já é o seu endereço electrónico."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Esse endereço electrónico já pertence a outro utilizador."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Não foi possível inserir o código de confirmação."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1556,50 +1568,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Nenhuma confirmação pendente para cancelar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Esse endereço de correio electrónico está errado."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Confirmação de correio electrónico cancelada."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Esse não é o seu endereço electrónico."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "O endereço de correio electrónico foi removido."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Sem endereço electrónico de entrada."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Não foi possível actualizar o registo do utilizador."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Endereço electrónico de entrada foi removido."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Adicionado endereço electrónico de entrada novo."
 
@@ -1717,7 +1729,7 @@ msgstr "Não foi possível converter a chave de pedido numa chave de acesso."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Serviço remoto usa uma versão desconhecida do protocolo OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Erro ao actualizar o perfil remoto."
 
@@ -1774,7 +1786,7 @@ msgstr "Acesso do utilizador ao grupo já foi bloqueado."
 msgid "User is not a member of group."
 msgstr "Utilizador não é membro do grupo."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloquear acesso do utilizador ao grupo"
 
@@ -1856,37 +1868,47 @@ msgstr "Logotipo actualizado."
 msgid "Failed updating logo."
 msgstr "Não foi possível actualizar o logotipo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membros do grupo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membros do grupo %1$s, página %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Uma lista dos utilizadores neste grupo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Gestor"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Bloquear"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Tornar utilizador o gestor do grupo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Tornar Gestor"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Tornar este utilizador um gestor"
 
@@ -2028,7 +2050,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2039,63 +2064,63 @@ msgstr ""
 "MI ou no GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferências de MI"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Enviar-me notas via Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Publicar uma nota quando o meu estado no Jabber/GTalk se altera."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "Enviar-me via Jabber/GTalk respostas de pessoas que não subscrevo."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
-msgstr "Publicar uma MicroID para o meu endereço Jabber/GTalk."
+msgstr "Publicar um MicroID para o meu endereço Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Preferências gravadas."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Não introduziu o Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Não é possível normalizar esse Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Jabber ID não é válido"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Esse já é o seu Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "O Jabber ID introduzido já pertence a outro utilizador."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2105,28 +2130,28 @@ msgstr ""
 "aprovar que %s envie mensagens para si."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Esse endereço de mensagens instantâneas está errado."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Não foi possível apagar a confirmação do mensageiro instantâneo."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Confirmação do mensageiro instantâneo cancelada."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Esse não é o seu Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "O endereço do mensageiro instantâneo foi removido."
 
@@ -2296,7 +2321,7 @@ msgstr "Tem de iniciar uma sessão para se juntar a um grupo."
 
 #: actions/joingroup.php:88 actions/leavegroup.php:88
 msgid "No nickname or ID."
-msgstr "Nenhuma alcunha ou utilizador."
+msgstr "Nenhum utilizador ou ID."
 
 #: actions/joingroup.php:141
 #, php-format
@@ -2595,8 +2620,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Só URLs %s sobre HTTP simples, por favor."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Formato de dados não suportado."
 
@@ -2737,7 +2762,7 @@ msgid "Password saved."
 msgstr "Senha gravada."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Localizações"
 
@@ -2950,7 +2975,7 @@ msgstr "Nome completo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Página pessoal"
 
@@ -3055,7 +3080,7 @@ msgid "Couldn't save tags."
 msgstr "Não foi possível gravar as categorias."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Configurações gravadas."
 
@@ -3218,7 +3243,7 @@ msgstr "Utilizador ou endereço de correio electrónico"
 #: actions/recoverpassword.php:193
 msgid "Your nickname on this server, or your registered email address."
 msgstr ""
-"A sua utilizador neste servidor, ou o seu correio electrónico registado."
+"O seu utilizador neste servidor, ou o seu correio electrónico registado."
 
 #: actions/recoverpassword.php:199 actions/recoverpassword.php:200
 msgid "Recover"
@@ -3250,7 +3275,7 @@ msgstr "Reiniciar"
 
 #: actions/recoverpassword.php:252
 msgid "Enter a nickname or email address."
-msgstr "Introduza uma utilizador ou um endereço de correio electrónico."
+msgstr "Introduza um utilizador ou um endereço de correio electrónico."
 
 #: actions/recoverpassword.php:282
 msgid "No user with that email address or username."
@@ -3599,7 +3624,7 @@ msgstr "Utilizador já está impedido de criar notas públicas."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessões"
 
@@ -3637,24 +3662,24 @@ msgid "Application profile"
 msgstr "Perfil da aplicação"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nome"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organização"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descrição"
 
@@ -3770,7 +3795,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Esta é uma forma de partilhar aquilo de que gosta."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupo %s"
@@ -3822,7 +3847,7 @@ msgstr "Fonte de notas do grupo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF do grupo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membros"
 
@@ -4276,7 +4301,7 @@ msgstr "Nenhum código introduzido"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Instantâneos"
 
@@ -4965,18 +4990,18 @@ msgid "Problem saving notice."
 msgstr "Problema na gravação da nota."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "O tipo fornecido ao método saveKnownGroups é incorrecto"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problema na gravação da caixa de entrada do grupo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5009,7 +5034,7 @@ msgid "Unable to save tag."
 msgstr "Não foi possível gravar a categoria."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Foi bloqueado de fazer subscrições"
 
@@ -5157,7 +5182,8 @@ msgid "Change site configuration"
 msgstr "Alterar a configuração do site"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Gestor"
@@ -5234,7 +5260,7 @@ msgstr "Pesquisa"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Aviso do site"
 
@@ -5298,7 +5324,10 @@ msgid "StatusNet software license"
 msgstr "Licença de software do StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5308,13 +5337,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** é um serviço de microblogues."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5326,20 +5358,20 @@ msgstr ""
 "fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licença de conteúdos do site"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "O conteúdo e dados do site %1$s são privados e confidenciais."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
@@ -5347,14 +5379,15 @@ msgstr ""
 "direitos reservados."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Direitos de autor sobre o conteúdo e dados detidos pelos contribuidores. "
 "Todos os direitos reservados."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
@@ -5362,19 +5395,19 @@ msgstr ""
 "licença %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginação"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Posteriores"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Anteriores"
 
@@ -5385,205 +5418,240 @@ msgstr ""
 "Era esperado um elemento raiz da fonte, mas foi recebido um documento XML "
 "inteiro."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Ainda não é possível processar conteúdos remotos."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Ainda não é possível processar conteúdo XML embutido."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Ainda não é possível processar conteúdo Base64 embutido."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Não pode fazer alterações a este site."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Não são permitidas alterações a esse painel."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() não implementado."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() não implementado."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Não foi possível apagar a configuração do estilo."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuração básica do site"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuração do estilo"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Estilo"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuração do utilizador"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Utilizador"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuração de acesso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuração das localizações"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuração das sessões"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Editar aviso do site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configuração dos instântaneos"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr "API requer acesso de leitura e escrita, mas só tem acesso de leitura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Nenhuma aplicação para essa chave de consumidor."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Código de acesso incorrecto."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "Nenhum utilizador para esse código."
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "Não foi possível autenticá-lo."
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr "Tentou revogar um código desconhecido."
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr "Falha ao eliminar código revogado."
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Editar aplicação"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Ícone para esta aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Descreva a sua aplicação em %d caracteres"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Descreva a sua aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL da página desta aplicação"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL de origem"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organização responsável por esta aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL da página desta organização"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL para onde reencaminhar após autenticação"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Browser"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipo da aplicação, browser ou desktop"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Leitura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Leitura e escrita"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr "Acesso por omissão para esta aplicação: leitura ou leitura e escrita"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancelar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "leitura e escrita"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "leitura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprovado a %1$s - acesso \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Retirar"
@@ -5603,11 +5671,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Fornecedor"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Notas em que este anexo aparece"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Categorias para este anexo"
 
@@ -5619,6 +5689,11 @@ msgstr "Não foi possível mudar a palavra-chave"
 msgid "Password changing is not allowed"
 msgstr "Não é permitido mudar a palavra-chave"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloquear"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultados do comando"
@@ -5647,7 +5722,14 @@ msgstr "Utilizador não tem nenhuma última nota."
 #: lib/command.php:130
 #, php-format
 msgid "Could not find a user with nickname %s."
-msgstr "Não foi encontrado um utilizador com a alcunha %s."
+msgstr "Não foi encontrado um utilizador com o nome %s."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr "Não foi encontrado nenhum utilizador local com o nome %s."
 
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
@@ -5686,6 +5768,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Nota marcada como favorita."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s juntou-se ao grupo %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s deixou o grupo %2$s."
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5775,12 +5871,26 @@ msgstr "Introduza o nome do utilizador para subscrever."
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "Não pode subscrever perfis OMB por comando."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "Subscreveu %s."
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr "Introduza o nome do utilizador para deixar de subscrever."
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "Deixou de subscrever %s."
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -5817,7 +5927,14 @@ msgstr "Comando para iniciar sessão foi desactivado."
 #: lib/command.php:784
 #, php-format
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
-msgstr ""
+msgstr "O link é utilizável uma única vez e só é válido durante 2 minutos: %s."
+
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "Subscrição de %s cancelada."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
@@ -5825,7 +5942,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Não subscreveu ninguém."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5840,7 +5957,7 @@ msgid "No one is subscribed to you."
 msgstr "Ninguém subscreve as suas notas."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5855,7 +5972,7 @@ msgid "You are not a member of any groups."
 msgstr "Não está em nenhum grupo."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5863,6 +5980,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Está no grupo:"
 msgstr[1] "Está nos grupos:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6081,37 +6199,77 @@ msgstr "Localidade do grupo, se aplicável, por ex. \"Cidade, Região, País\""
 #, php-format
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
-"Utilizadors extra para o grupo, separadas por vírgulas ou espaços, máx. %d"
+"Nomes adicionais para o grupo, separados por vírgulas ou espaços, máx. %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Grupo"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Grupo %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Membros"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Membros do grupo %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr "Bloqueado"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s utilizadores bloqueados"
+msgstr "Utilizadores bloqueados de %s"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr "Editar propriedades do grupo %s"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logotipo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr "Adicionar ou editar o logotipo de %s"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr "Adicionar ou editar o design de %s"
 
@@ -6146,7 +6304,8 @@ msgstr "Esse ficheiro é demasiado grande. O tamanho máximo de ficheiro é %s."
 msgid "Partial upload."
 msgstr "Transferência parcial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Ocorreu um erro de sistema ao transferir o ficheiro."
 
@@ -6549,17 +6708,20 @@ msgstr "Desculpe, não lhe é permitido receber correio electrónico."
 msgid "Unsupported message type: %s"
 msgstr "Tipo de mensagem não suportado: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Ocorreu um erro na base de dados ao gravar o seu ficheiro. Por favor, tente "
 "novamente."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Ficheiro carregado excede a directiva upload_max_filesize no php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6567,43 +6729,61 @@ msgstr ""
 "Ficheiro carregado excede a directiva MAX_FILE_SIZE especificada no "
 "formulário HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Ficheiro só foi parcialmente carregado."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Falta um directório temporário."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Não foi possível gravar o ficheiro no disco."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Transferência do ficheiro interrompida pela extensão."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Ficheiro excede quota do utilizador."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Não foi possível mover o ficheiro para o directório de destino."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Não foi possível determinar o tipo MIME do ficheiro."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Tente usar outro tipo de %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"\"%1$s\" não é um tipo de ficheiro suportado neste servidor. Tente usar "
+"outro formato de %2$s."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s não é um tipo de ficheiro suportado neste servidor."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "\"%s\" não é um tipo de ficheiro suportado neste servidor."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6721,26 +6901,23 @@ msgid "Send a nudge to this user"
 msgstr "Enviar toque a este utilizador"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Erro ao inserir perfil novo"
+msgid "Error inserting new profile."
+msgstr "Erro ao inserir perfil novo."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Erro ao inserir avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Erro ao actualizar o perfil remoto"
+msgid "Error inserting avatar."
+msgstr "Erro ao inserir avatar."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Erro ao inserir perfil remoto"
+msgid "Error inserting remote profile."
+msgstr "Erro ao inserir perfil remoto."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Nota duplicada"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Nota duplicada."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Não foi possível inserir nova subscrição."
 
@@ -6777,7 +6954,8 @@ msgstr "Mensagens enviadas"
 msgid "Tags in %s's notices"
 msgstr "Categorias nas notas de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Desconhecida"
 
@@ -6871,19 +7049,24 @@ msgstr "Bloquear notas públicas"
 msgid "Sandbox this user"
 msgstr "Impedir que notas deste utilizador sejam públicas"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Pesquisar site"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Categorias"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Pesquisa"
+msgstr "Pesquisar"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Pesquisar ajuda"
 
@@ -6997,7 +7180,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "O tema contém extensões de ficheiro inseguras; pode não ser seguro."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7083,56 +7266,64 @@ msgid "Moderator"
 msgstr "Moderador"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "há alguns segundos"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "há cerca de um minuto"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "há cerca de %d minutos"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "um minuto"
+msgstr[1] "%d minutos"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "há cerca de uma hora"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "há cerca de %d horas"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "uma hora"
+msgstr[1] "%d horas"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "há cerca de um dia"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "há cerca de %d dias"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "um dia"
+msgstr[1] "%d dias"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "há cerca de um mês"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "há cerca de %d meses"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "um mês"
+msgstr[1] "%d meses"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "há cerca de um ano"
 
index 35d77d6afcdb8318b1c195b621d387d10afbee5c..4a286a4bc51b7a6a102137ef40eeb0f29cae691b 100644 (file)
@@ -1,33 +1,36 @@
-# Translation of StatusNet to Brazilian Portuguese
+# Translation of StatusNet - Core to Brazilian Portuguese (Português do Brasil)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Aracnus
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Ewout
-# Author@translatewiki.net: Giro720
-# Author@translatewiki.net: Luckas Blade
-# Author@translatewiki.net: McDutchie
-# Author@translatewiki.net: Vuln
+# Author: Aracnus
+# Author: Brion
+# Author: Ewout
+# Author: Giro720
+# Author: Luckas Blade
+# Author: McDutchie
+# Author: Vuln
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:12+0000\n"
-"Language-Team: Brazilian Portuguese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:17+0000\n"
+"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-"
+"br>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: pt-br\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Acesso"
 
@@ -80,10 +83,10 @@ msgstr "Salvar as configurações de acesso"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Salvar"
@@ -96,15 +99,15 @@ msgstr "Esta página não existe."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -204,16 +207,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Atualizações de %1$s e amigos no %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -228,21 +231,23 @@ msgstr "Atualizações de %1$s e amigos no %2$s!"
 msgid "API method not found."
 msgstr "O método da API não foi encontrado!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Este método requer um POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -250,27 +255,27 @@ msgstr ""
 "Você tem que especificar um parâmetro denominado 'device', com um desses "
 "valores: sms, im, none"
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Não foi possível atualizar o usuário."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "O usuário não tem perfil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Não foi possível salvar o perfil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -282,30 +287,30 @@ msgstr ""
 "O servidor não conseguiu manipular a quantidade de dados do POST (%s bytes) "
 "devido à sua configuração atual."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Não foi possível salvar suas configurações de aparência."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Não foi possível atualizar a sua aparência."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Você não pode bloquear a si mesmo!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Não foi possível bloquear o usuário."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Não foi possível desbloquear o usuário."
 
@@ -329,61 +334,61 @@ msgstr "Mensagens diretas para %s"
 msgid "All the direct messages sent to %s"
 msgstr "Todas as mensagens diretas enviadas para %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Nenhuma mensagem de texto!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Isso é muito extenso. O tamanho máximo das mensagens é %d caracteres."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "O usuário destinatário não foi encontrado."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Não é possível enviar mensagens diretas para usuários que não sejam seus "
 "amigos."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Não foi encontrado nenhum status com esse ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Esta mensagem já é favorita!"
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Não foi possível criar a favorita."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Essa mensagem não é favorita!"
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Não foi possível excluir a favorita."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Não é possível deixar de seguir o usuário: Usuário não encontrado."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Não é possível seguir o usuário: %s já está na sua lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Não é possível deixar de seguir o usuário: Usuário não encontrado."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Você não pode deixar de seguir você mesmo!"
 
@@ -399,7 +404,7 @@ msgstr "Não foi possível determinar o usuário de origem."
 msgid "Could not find target user."
 msgstr "Não foi possível encontrar usuário de destino."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -407,95 +412,95 @@ msgstr ""
 "A identificação deve conter apenas letras minúsculas e números e não pode "
 "ter e espaços."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Esta identificação já está em uso. Tente outro."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Não é uma identificação válida."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "A URL informada não é válida."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Nome completo muito extenso (máx. 255 caracteres)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Descrição muito extensa (máximo %d caracteres)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Localização muito extensa (máx. 255 caracteres)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Muitos apelidos! O máximo são %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Apelido inválido: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "O apelido \"%s\" já está em uso. Tente outro."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "O apelido não pode ser igual à identificação."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "O grupo não foi encontrado."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Você já é membro desse grupo."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "O administrador desse grupo bloqueou sua inscrição."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Não foi possível associar o usuário %1$s ao grupo %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Você não é membro deste grupo."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -525,7 +530,7 @@ msgstr "Grupos de %s"
 msgid "groups on %s"
 msgstr "grupos no %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "O upload falhou."
 
@@ -539,9 +544,9 @@ msgstr "Token inválido."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -589,8 +594,8 @@ msgstr "O token %s solicitado foi negado e revogado."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -655,18 +660,18 @@ msgstr "Esse método requer um POST ou DELETE."
 msgid "You may not delete another user's status."
 msgstr "Você não pode excluir uma mensagem de outro usuário."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Essa mensagem não existe."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Você não pode repetir a sua própria mensagem."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Você já repetiu essa mensagem."
 
@@ -678,21 +683,21 @@ msgstr "A mensagem foi excluída."
 msgid "No status with that ID found."
 msgstr "Não foi encontrada nenhuma mensagem com esse ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "O cliente tem de fornecer um parâmetro 'status' com um valor."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Está muito extenso. O tamanho máximo é de %d caracteres."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Não encontrado."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "O tamanho máximo da mensagem é de %d caracteres"
@@ -894,7 +899,9 @@ msgid "Yes"
 msgstr "Sim"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bloquear este usuário"
 
@@ -936,11 +943,13 @@ msgstr "Uma lista dos usuários proibidos de se associarem a este grupo."
 msgid "Unblock user from group"
 msgstr "Desbloquear o usuário do grupo"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Desbloquear"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Desbloquear este usuário"
 
@@ -979,9 +988,9 @@ msgstr "Esse endereço já foi confirmado."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -989,7 +998,7 @@ msgstr "Não foi possível atualizar o usuário."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Não foi possível excluir a confirmação de e-mail."
@@ -1025,9 +1034,10 @@ msgstr "A aplicação não foi encontrada."
 msgid "You are not the owner of this application."
 msgstr "Você não é o dono desta aplicação."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Ocorreu um problema com o seu token de sessão."
 
@@ -1061,7 +1071,7 @@ msgstr "Excluir esta aplicação"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Você não está autenticado."
@@ -1124,7 +1134,6 @@ msgstr "Excluir este usuário"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Aparência"
 
@@ -1247,13 +1256,13 @@ msgstr "Restaura a aparência padrão"
 msgid "Reset back to default"
 msgstr "Restaura de volta ao padrão"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Salvar"
@@ -1409,7 +1418,7 @@ msgstr "Endereço de e-mail já confirmado."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1427,22 +1436,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Cancelar"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Endereço de e-mail, ex: \"usuario@exemplo.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1450,114 +1463,114 @@ msgstr "Adicionar"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "E-mail de recebimento"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Envie e-mails para esse endereço para publicar novas mensagens."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Cria um novo endereço de e-mail para publicar e cancela o antigo."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Novo"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Preferências de e-mail"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Envie-me notificações de novos assinantes por e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Envie-me um e-mail quando alguém adicionar alguma mensagem minha como "
 "favorita."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Envie-me um e-mail quando alguém me mandar uma mensagem particular."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 "Envie-me um e-mail quando alguém mandar uma mensagem citando meu nome "
 "(\"@nome\")."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Permita que meus amigos chamem minha atenção e enviem-me e-mails."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Eu quero publicar mensagens por e-mail."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publique um MicroID para meu endereço de e-mail."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "As configurações de e-mail foram salvas."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Nenhum endereço de e-mail."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Não foi possível normalizar este endereço de e-mail"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Não é um endereço de e-mail válido."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Esse já é seu endereço de e-mail."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Esse endereço de e-mail já pertence à outro usuário."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Não foi possível inserir o código de confirmação."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1569,50 +1582,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Nenhuma confirmação pendente para cancelar."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Esse é o endereço de e-mail errado."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "A confirmação por e-mail foi cancelada."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Esse não é seu endereço de email."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "O endereço de e-mail foi removido."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Nenhum endereço de e-mail para recebimentos."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Não foi possível atualizar o registro do usuário."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "O endereço de e-mail de recebimento foi removido."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr ""
 "Foi adicionado um novo endereço de e-mail para recebimento de mensagens."
@@ -1732,7 +1745,7 @@ msgstr "Não foi possível converter o token de requisição para token de acess
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "O serviço remoto usa uma versão desconhecida do protocolo OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Ocorreu um erro durante a atualização do perfil remoto."
 
@@ -1789,7 +1802,7 @@ msgstr "O usuário já está bloqueado no grupo."
 msgid "User is not a member of group."
 msgstr "O usuário não é um membro do grupo"
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Bloquear o usuário no grupo"
 
@@ -1872,37 +1885,47 @@ msgstr "A logo foi atualizada."
 msgid "Failed updating logo."
 msgstr "Não foi possível atualizar a logo."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Membros do grupo %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Membros do grupo %1$s, pág. %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Uma lista dos usuários deste grupo."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Admin"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Bloquear"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Tornar o usuário um administrador do grupo"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Tornar administrador"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Torna este usuário um administrador"
 
@@ -2044,7 +2067,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2055,65 +2081,65 @@ msgstr ""
 "ou no GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Preferências do mensageiro instantâneo"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Envie-me mensagens via Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Publicar uma mensagem quando eu mudar de status no Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Envie-me respostas de pessoas que eu não estou assinando através do Jabber/"
 "GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publique um MicroID para meu endereço de Jabber/Gtalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "As preferências foram salvas."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Nenhuma ID de Jabber."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Não foi possível normalizar essa ID do Jabber"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Não é uma ID de Jabber válida"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Essa já é sua ID do Jabber."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Esta ID do Jabber já pertence à outro usuário."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2123,28 +2149,28 @@ msgstr ""
 "informou. Você deve permitir que %s envie mensagens para você."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Isso é um endereço de MI errado."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Não foi possível excluir a confirmação do mensageiro instantâneo."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "A confirmação do mensageiro instantâneo foi cancelada."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Essa não é sua ID do Jabber."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "O endereço de mensageiro instantâneo foi removido."
 
@@ -2621,8 +2647,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Por favor, somente URLs %s sobre HTTP puro."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Não é um formato de dados suportado."
 
@@ -2764,7 +2790,7 @@ msgid "Password saved."
 msgstr "A senha foi salva."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Caminhos"
 
@@ -2977,7 +3003,7 @@ msgstr "Nome completo"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Site"
 
@@ -3083,7 +3109,7 @@ msgid "Couldn't save tags."
 msgstr "Não foi possível salvar as etiquetas."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "As configurações foram salvas."
 
@@ -3626,7 +3652,7 @@ msgstr "O usuário já está em isolamento."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessões"
 
@@ -3664,24 +3690,24 @@ msgid "Application profile"
 msgstr "Perfil da aplicação"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ícone"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Nome"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organização"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Descrição"
 
@@ -3795,7 +3821,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Esta é uma forma de compartilhar o que você gosta."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Grupo %s"
@@ -3847,7 +3873,7 @@ msgstr "Fonte de mensagens do grupo %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF para o grupo %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Membros"
 
@@ -4301,7 +4327,7 @@ msgstr "Não foi digitado nenhum código"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Estatísticas"
 
@@ -4993,18 +5019,18 @@ msgid "Problem saving notice."
 msgstr "Problema no salvamento da mensagem."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "O tipo fornecido ao método saveKnownGroups é incorreto"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problema no salvamento das mensagens recebidas do grupo."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5036,7 +5062,7 @@ msgid "Unable to save tag."
 msgstr "Não foi salvar gravar a categoria."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Você está proibido de assinar."
 
@@ -5184,7 +5210,8 @@ msgid "Change site configuration"
 msgstr "Altere as configurações do site"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administrar"
@@ -5261,9 +5288,9 @@ msgstr "Pesquisar"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
-msgstr "Mensagem do site"
+msgstr "Avisos do site"
 
 #. TRANS: DT element for local views block. String is hidden in default CSS.
 #: lib/action.php:605
@@ -5325,7 +5352,10 @@ msgid "StatusNet software license"
 msgstr "Licença do software StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5335,13 +5365,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%). "
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** é um serviço de microblog."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5353,51 +5386,52 @@ msgstr ""
 "fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licença do conteúdo do site"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "O conteúdo e os dados de %1$s são privados e confidenciais."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "Conteúdo e dados licenciados sob %1$s. Todos os direitos reservados."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Conteúdo e dados licenciados pelos colaboradores. Todos os direitos "
 "reservados."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Todo o conteúdo e dados de %1$s estão disponíveis sob a licença %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Paginação"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Próximo"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Anterior"
 
@@ -5408,208 +5442,243 @@ msgstr ""
 "Era esperado um elemento raiz da fonte, mas foi obtido o documento XML "
 "inteiro."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Ainda não é possível manipular conteúdo remoto."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Ainda não é possível manipular conteúdo XML incorporado."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Ainda não é possível manipular conteúdo Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Você não pode fazer alterações neste site."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Não são permitidas alterações a esse painel."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() não implementado."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() não implementado."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Não foi possível excluir as configurações da aparência."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Configuração básica do site"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Configuração da aparência"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Aparência"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Configuração do usuário"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Usuário"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Configuração do acesso"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Configuração dos caminhos"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Configuração das sessões"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Editar os avisos do site"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Configurações das estatísticas"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "Os recursos de API exigem acesso de leitura e escrita, mas você possui "
 "somente acesso de leitura."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Não foi encontrado nenhuma aplicação para essa chave de consumidor."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Token de acesso incorreto."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Editar a aplicação"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Ícone para esta aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Descreva a sua aplicação em %d caracteres"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Descreva sua aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL do site desta aplicação"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL da fonte"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organização responsável por esta aplicação"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL para o site da organização"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL para o redirecionamento após a autenticação"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Navegador"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Desktop"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Tipo de aplicação: navegador ou desktop"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Somente leitura"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Leitura e escrita"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Acesso padrão para esta aplicação: somente leitura ou leitura e escrita"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Cancelar"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "leitura e escrita"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "somente leitura"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Aprovado em %1$s - acesso \"%2$s\"."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Revogar"
@@ -5629,11 +5698,13 @@ msgstr "Autor"
 msgid "Provider"
 msgstr "Operadora"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Mensagens onde este anexo aparece"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Etiquetas para este anexo"
 
@@ -5645,6 +5716,11 @@ msgstr "Não foi possível alterar a senha"
 msgid "Password changing is not allowed"
 msgstr "Não é permitido alterar a senha"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Bloquear"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultados do comando"
@@ -5898,7 +5974,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Você não está assinando ninguém."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5913,7 +5989,7 @@ msgid "No one is subscribed to you."
 msgstr "Ninguém o assinou ainda."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5928,7 +6004,7 @@ msgid "You are not a member of any groups."
 msgstr "Você não é membro de nenhum grupo."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5936,6 +6012,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Você é membro deste grupo:"
 msgstr[1] "Você é membro destes grupos:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6158,37 +6235,77 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Apelidos extras para o grupo, separado por vírgulas ou espaços, no máximo %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Grupo"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Bloqueados"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s usuários bloqueados"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Editar propriedades do grupo %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logo"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Adicionar ou editar logo de %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Adicionar ou editar a aparência de %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6221,7 +6338,8 @@ msgstr "O arquivo é muito grande. O tamanho máximo é de %s."
 msgid "Partial upload."
 msgstr "Envio parcial."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Erro no sistema durante o envio do arquivo."
 
@@ -6625,19 +6743,22 @@ msgstr "Desculpe-me, mas não é permitido o recebimento de e-mails."
 msgid "Unsupported message type: %s"
 msgstr "Tipo de mensagem não suportado: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Ocorreu um erro no banco de dados durante o salvamento do seu arquivo. Por "
 "favor, tente novamente."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "O arquivo a ser enviado é maior do que o limite definido no parâmetro "
 "upload_max_filesize do php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6645,43 +6766,59 @@ msgstr ""
 "O arquivo a ser enviado é maior do que o limite definido no parâmetro "
 "MAX_FILE_SIZE do formulário HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "O arquivo foi apenas parcialmente enviado."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Falta uma pasta temporária."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Erro ao salvar o arquivo no disco."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "O arquivo a ser enviado foi barrado por causa de sua extensão."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "O arquivo excede a quota do usuário."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Não foi possível mover o arquivo para o diretório de destino."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Não foi possível determinar o tipo MIME do arquivo."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Tente usar outro formato %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s não é um tipo de arquivo suportado neste servidor."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6799,26 +6936,23 @@ msgid "Send a nudge to this user"
 msgstr "Chame a atenção deste usuário"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Erro na inserção do novo perfil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Erro na inserção do avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Ocorreu um erro na atualização do perfil remoto"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Erro na inserção do perfil remoto"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicar a mensagem"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Não foi possível inserir a nova assinatura."
 
@@ -6855,7 +6989,8 @@ msgstr "Suas mensagens enviadas"
 msgid "Tags in %s's notices"
 msgstr "Etiquetas nas mensagens de %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Desconhecido"
 
@@ -6949,19 +7084,24 @@ msgstr "Isolamento"
 msgid "Sandbox this user"
 msgstr "Colocar este usuário em isolamento"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Procurar no site"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Palavra(s)-chave"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Procurar"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Ajuda da procura"
 
@@ -7074,7 +7214,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "O tema contém extensões de arquivo inseguras; pode não ser seguro."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7160,56 +7300,64 @@ msgid "Moderator"
 msgstr "Moderador"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "alguns segundos atrás"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "cerca de 1 minuto atrás"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "cerca de %d minutos atrás"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "cerca de 1 hora atrás"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "cerca de %d horas atrás"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "cerca de 1 dia atrás"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "cerca de %d dias atrás"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "cerca de 1 mês atrás"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "cerca de %d meses atrás"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "cerca de 1 ano atrás"
 
index f5920331c2647023bdaaa90ebaf9cf598227b570..67326b72fb0329a1cdb147e117f9cfbad3dd3197 100644 (file)
@@ -1,33 +1,35 @@
-# Translation of StatusNet to Russian
+# Translation of StatusNet - Core to Russian (Русский)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Eleferen
-# Author@translatewiki.net: Kirill
-# Author@translatewiki.net: Lockal
-# Author@translatewiki.net: Rubin
-# Author@translatewiki.net: Александр Сигачёв
+# Author: Brion
+# Author: Eleferen
+# Author: Kirill
+# Author: Lockal
+# Author: Rubin
+# Author: Александр Сигачёв
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:14+0000\n"
-"Language-Team: Russian\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:19+0000\n"
+"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: ru\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10< =4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
+"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Доступ"
 
@@ -81,10 +83,10 @@ msgstr "Сохранить настройки доступа"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Сохранить"
@@ -97,15 +99,15 @@ msgstr "Нет такой страницы."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -203,16 +205,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Обновлено от %1$s и его друзей на %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -227,21 +229,23 @@ msgstr "Обновлено от %1$s и его друзей на %2$s!"
 msgid "API method not found."
 msgstr "Метод API не найден."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Этот метод требует POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
@@ -249,27 +253,27 @@ msgstr ""
 "Вы должны указать параметр с именем «device» и одним из значений: sms, im, "
 "none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Не удаётся обновить пользователя."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "У пользователя нет профиля."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Не удаётся сохранить профиль."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -281,30 +285,30 @@ msgstr ""
 "Сервер не смог обработать столько POST-данных (%s байт) из-за текущей "
 "конфигурации."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Не удаётся сохранить ваши настройки оформления!"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Не удаётся обновить ваше оформление."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Вы не можете заблокировать самого себя!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Неудача при блокировке пользователя."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Неудача при разблокировке пользователя."
 
@@ -328,63 +332,63 @@ msgstr "Прямые сообщения для %s"
 msgid "All the direct messages sent to %s"
 msgstr "Все прямые сообщения посланные для %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Отсутствует текст сообщения!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Слишком длинно. Максимальная длина сообщения — %d знаков."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Получатель не найден."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Не удаётся посылать прямые сообщения пользователям, которые не являются "
 "Вашими друзьями."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Нет статуса с таким ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Этот статус уже входит в число любимых."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Не удаётся создать любимую запись."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Этот статус не входит в число ваших любимых."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Не удаётся удалить любимую запись."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Не удаётся следовать за пользователем: профиль не найден."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Не удается включить %s в список поддержки, он уже в Вашем списке."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 "Не удаётся следовать за пользователем, т. к. такого пользователя не "
 "существует."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Вы не можете перестать следовать за собой."
 
@@ -400,102 +404,102 @@ msgstr "Не удаётся определить исходного пользо
 msgid "Could not find target user."
 msgstr "Не удаётся найти целевого пользователя."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 "Имя должно состоять только из прописных букв и цифр и не иметь пробелов."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Неверное имя."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "URL Главной страницы неверен."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Полное имя слишком длинное (не больше 255 знаков)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Слишком длинное описание (максимум %d символов)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Слишком длинное месторасположение (максимум 255 знаков)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Слишком много алиасов! Максимальное число — %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ошибочный псевдоним: «%s»."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Алиас «%s» уже используется. Попробуйте какой-нибудь другой."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Алиас не может совпадать с именем."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Группа не найдена."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Вы уже являетесь членом этой группы."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Вы заблокированы из этой группы администратором."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Не удаётся присоединить пользователя %1$s к группе %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Вы не являетесь членом этой группы."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -525,7 +529,7 @@ msgstr "Группы %s"
 msgid "groups on %s"
 msgstr "группы на %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Загрузка не удалась."
 
@@ -539,9 +543,9 @@ msgstr "Неправильный токен"
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -585,8 +589,8 @@ msgstr "Запрос токена %s был запрещен и аннулиро
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -651,18 +655,18 @@ msgstr "Этот метод требует POST или DELETE."
 msgid "You may not delete another user's status."
 msgstr "Вы не можете удалять статус других пользователей."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Нет такой записи."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Невозможно повторить собственную запись."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Запись уже повторена."
 
@@ -674,21 +678,21 @@ msgstr "Статус удалён."
 msgid "No status with that ID found."
 msgstr "Не найдено статуса с таким ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Клиент должен предоставить параметр «status» со значением."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Слишком длинная запись. Максимальная длина — %d знаков."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Не найдено."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Максимальная длина записи — %d символов, включая URL вложения."
@@ -889,7 +893,9 @@ msgid "Yes"
 msgstr "Да"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Заблокировать пользователя."
 
@@ -931,11 +937,13 @@ msgstr "Список пользователей, заблокированных
 msgid "Unblock user from group"
 msgstr "Разблокировать пользователя в группе."
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Разблокировать"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Разблокировать пользователя."
 
@@ -974,9 +982,9 @@ msgstr "Этот адрес уже подтверждён."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -984,7 +992,7 @@ msgstr "Не удаётся обновить пользователя."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Не удаётся удалить подверждение по электронному адресу."
@@ -1020,9 +1028,10 @@ msgstr "Приложение не найдено."
 msgid "You are not the owner of this application."
 msgstr "Вы не являетесь владельцем этого приложения."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста."
 
@@ -1056,7 +1065,7 @@ msgstr "Удалить это приложение"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Не авторизован."
@@ -1119,7 +1128,6 @@ msgstr "Удалить этого пользователя"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Оформление"
 
@@ -1240,13 +1248,13 @@ msgstr "Восстановить оформление по умолчанию"
 msgid "Reset back to default"
 msgstr "Восстановить значения по умолчанию"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Сохранить"
@@ -1402,7 +1410,7 @@ msgstr "Подтверждённый в настоящее время элект
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1420,22 +1428,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Отмена"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Электронный адрес вида \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1443,20 +1455,20 @@ msgstr "Добавить"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Входящий электронный адрес"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 "Отправляйте электронные письма на этот адрес для отсылки новых записей."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Создать новый адрес электронной почты для отсылки сообщений; отменяет старый "
@@ -1464,99 +1476,99 @@ msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Новый"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Настройки эл. почты"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Уведомлять меня о новых подписчиках по почте."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Посылать мне сообщение по электронной почте, если кто-нибудь добавит мою "
 "запись в число любимых."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 "Посылать мне сообщение по электронной почте, если кто-нибудь пошлёт мне "
 "приватное сообщение."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 "Посылать мне сообщение по электронной почте, если кто-нибудь пошлёт мне «@-"
 "ответ»."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 "Разрешить друзьям «подталкивать» меня и посылать мне электронные сообщения."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Я хочу отправлять записи по электронной почте."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Опубликовать MicroID для моего электронного адреса."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Настройки эл. почты сохранены."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Нет электронного адреса."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Не удаётся стандартизировать этот электронный адрес"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Неверный электронный адрес."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Это уже Ваш электронный адрес."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Этот электронный адрес уже задействован другим пользователем."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Не удаётся вставить код подтверждения."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1568,50 +1580,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Нет подтверждения отказа."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Это неверный адрес эл. почты."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Подтверждение эл. почты отменено."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Это не Ваш электронный адрес."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Адрес эл. почты удалён."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Нет входящего электронного адреса."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Не удаётся обновить пользовательскую запись."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Входящий электронный адрес удалён."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Новый входящий электронный адрес добавлен."
 
@@ -1730,7 +1742,7 @@ msgstr "Не удаётся преобразовать ключ запроса 
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Удалённый сервис использует неизвестную версию протокола OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Ошибка обновления удалённого профиля."
 
@@ -1787,7 +1799,7 @@ msgstr "Пользователь уже заблокирован из групп
 msgid "User is not a member of group."
 msgstr "Пользователь не является членом этой группы."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Заблокировать пользователя из группы."
 
@@ -1869,39 +1881,49 @@ msgstr "Логотип обновлён."
 msgid "Failed updating logo."
 msgstr "Неудача при обновлении логотипа."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Участники группы %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Участники группы %1$s, страница %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Список пользователей, являющихся членами этой группы."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Настройки"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Блокировать"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Сделать пользователя администратором группы"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Сделать администратором"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Сделать этого пользователя администратором"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2041,7 +2063,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2052,64 +2077,64 @@ msgstr ""
 "мессенджере или в GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Настройки IM"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Посылать мне записи через Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Публиковать запись, когда мой Jabber/GTalk - статус изменяется."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Посылать мне реплики через Jabber/GTalk от людей, на которых я не подписан."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Опубликовать MicroID для моего Jabber/GTalk - адреса."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Предпочтения сохранены."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Не Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Не удаётся стандартизировать этот Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Неверный код Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Это уже Ваш Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Этот Jabber ID уже используется другим пользователем."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2119,28 +2144,28 @@ msgstr ""
 "%s для отправки вам сообщений."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Это неверный IM-адрес."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Не удаётся удалить подверждение IM."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Подтверждение IM отменено."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Это не Ваш Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Адрес IM удалён."
 
@@ -2610,8 +2635,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Только %s URL в простом HTTP, пожалуйста."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Неподдерживаемый формат данных."
 
@@ -2753,7 +2778,7 @@ msgid "Password saved."
 msgstr "Пароль сохранён."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Пути"
 
@@ -2964,7 +2989,7 @@ msgstr "Полное имя"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Главная"
 
@@ -3069,7 +3094,7 @@ msgid "Couldn't save tags."
 msgstr "Не удаётся сохранить теги."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Настройки сохранены."
 
@@ -3607,7 +3632,7 @@ msgstr "Пользователь уже в режиме песочницы."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Сессии"
 
@@ -3645,24 +3670,24 @@ msgid "Application profile"
 msgstr "Профиль приложения"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Иконка"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Имя"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Организация"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Описание"
 
@@ -3777,7 +3802,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Это способ поделиться тем, что вам нравится."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Группа %s"
@@ -3829,7 +3854,7 @@ msgstr "Лента записей группы %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF для группы %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Участники"
 
@@ -4286,7 +4311,7 @@ msgstr "Код не введён"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Снимки"
 
@@ -4977,18 +5002,18 @@ msgid "Problem saving notice."
 msgstr "Проблемы с сохранением записи."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Для saveKnownGroups указан неверный тип"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Проблемы с сохранением входящих сообщений группы."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5021,7 +5046,7 @@ msgid "Unable to save tag."
 msgstr "Не удаётся сохранить тег."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Вы заблокированы от подписки."
 
@@ -5169,7 +5194,8 @@ msgid "Change site configuration"
 msgstr "Изменить конфигурацию сайта"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Настройки"
@@ -5246,7 +5272,7 @@ msgstr "Поиск"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Уведомление сайта"
 
@@ -5310,7 +5336,10 @@ msgid "StatusNet software license"
 msgstr "StatusNet лицензия"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5320,13 +5349,16 @@ msgstr ""
 "broughtby%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** — сервис микроблогинга."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5339,52 +5371,53 @@ msgstr ""
 "licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Лицензия содержимого сайта"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Содержание и данные %1$s являются личными и конфиденциальными."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 "Авторские права на содержание и данные принадлежат %1$s. Все права защищены."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Авторские права на содержание и данные принадлежат разработчикам. Все права "
 "защищены."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Все материалы и данные %1$s доступны на условиях лицензии %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Разбиение на страницы"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Сюда"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Туда"
 
@@ -5393,208 +5426,243 @@ msgstr "Туда"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Ожидался корневой элемент потока, а получен XML-документ целиком."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Пока ещё нельзя обрабатывать удалённое содержимое."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Пока ещё нельзя обрабатывать встроенный XML."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Пока ещё нельзя обрабатывать встроенное содержание Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Вы не можете изменять этот сайт."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Изменения для этой панели недопустимы."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() не реализована."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() не реализована."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Не удаётся удалить настройки оформления."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Основная конфигурация сайта"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Сайт"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Конфигурация оформления"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Оформление"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Конфигурация пользователя"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Пользователь"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Конфигурация доступа"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Конфигурация путей"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Конфигурация сессий"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Изменить уведомление сайта"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Конфигурация снимков"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "API ресурса требует доступ для чтения и записи, но у вас есть только доступ "
 "для чтения."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Изменить приложение"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Иконка для этого приложения"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Опишите ваше приложение при помощи %d символов"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Опишите ваше приложение"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL-адрес домашней страницы этого приложения"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL источника"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Организация, ответственная за это приложение"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL-адрес домашней страницы организации"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL для перенаправления после проверки подлинности"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Браузер"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Операционная система"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Среда выполнения приложения: браузер или операционная система"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Только чтение"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Чтение и запись"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Доступ по умолчанию для этого приложения: только чтение или чтение и запись"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Отменить"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "чтение/запись"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "только чтение"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Подтверждён доступ %1$s — «%2$s»."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Отозвать"
@@ -5614,11 +5682,13 @@ msgstr "Автор"
 msgid "Provider"
 msgstr "Сервис"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Сообщает, где появляется это вложение"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Теги для этого вложения"
 
@@ -5630,6 +5700,11 @@ msgstr "Изменение пароля не удалось"
 msgid "Password changing is not allowed"
 msgstr "Смена пароля не разрешена"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Блокировать"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Команда исполнена"
@@ -5881,7 +5956,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Вы ни на кого не подписаны."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5897,7 +5972,7 @@ msgid "No one is subscribed to you."
 msgstr "Никто не подписан на вас."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5913,7 +5988,7 @@ msgid "You are not a member of any groups."
 msgstr "Вы не состоите ни в одной группе."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5922,6 +5997,7 @@ msgstr[0] "Вы являетесь участником следующих гр
 msgstr[1] "Вы являетесь участником следующих групп:"
 msgstr[2] "Вы являетесь участником следующих групп:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6143,37 +6219,77 @@ msgstr ""
 "Дополнительные имена для группы, разделённые запятой или пробелом, максимум %"
 "d имён"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Группа"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Заблокированные"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s заблокированных пользователей"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Редактировать информацию о группе %s"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Логотип"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Добавить или изменить логотип группы %s"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Добавить или изменить оформление %s"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6206,7 +6322,8 @@ msgstr "Этот файл слишком большой. Максимальны
 msgid "Partial upload."
 msgstr "Частичная загрузка."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Системная ошибка при загрузке файла."
 
@@ -6608,60 +6725,79 @@ msgstr "Простите, входящих писем нет."
 msgid "Unsupported message type: %s"
 msgstr "Неподдерживаемый формат файла изображения: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "При сохранении вашего файла возникла ошибка базы данных. Пожалуйста, "
 "попробуйте ещё раз."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Загружаемый файл превышает директиву upload_max_filesize в php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 "Загружаемый файл превышает директиву MAX_FILE_SIZE, указанную в HTML-форме."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Загружаемый файл загружен только частично."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Отсутствует временной каталог."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Не удаётся записать файл на диск."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Загрузка файла остановлена по расширению."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Файл превышает пользовательскую квоту."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Файл не может быть перемещён в целевую директорию."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Не удаётся определить mime-тип файла."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Попробуйте использовать другой формат %s."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "Тип файла %s не поддерживается не этом сервере."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6779,26 +6915,23 @@ msgid "Send a nudge to this user"
 msgstr "«Подтолкнуть» этого пользователя"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Ошибка при вставке нового профиля"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Ошибка при вставке аватары"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Ошибка обновления удалённого профиля"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Ошибка вставки удалённого профиля"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Дублировать запись"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Не удаётся вставить новую подписку."
 
@@ -6835,7 +6968,8 @@ msgstr "Ваши исходящие сообщения"
 msgid "Tags in %s's notices"
 msgstr "Теги записей пользователя %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Неизвестно"
 
@@ -6929,19 +7063,24 @@ msgstr "Песочница"
 msgid "Sandbox this user"
 msgstr "Установить режим песочницы для этого пользователя"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Поиск по сайту"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Ключевые слова"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Поиск"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Справка по поиску"
 
@@ -7054,7 +7193,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Тема содержит файлы с опасным расширением; это может быть небезопасно."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7140,56 +7279,68 @@ msgid "Moderator"
 msgstr "Модератор"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "пару секунд назад"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "около минуты назад"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "около %d минут(ы) назад"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "около часа назад"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "около %d часа(ов) назад"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "около дня назад"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "около %d дня(ей) назад"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "около месяца назад"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "около %d месяца(ев) назад"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "около года назад"
 
index 1816b21ab9f23de3c7e6a98f1b1211e2e923a25e..c4dfe75f9b7a7dc2d8f46aaa582d511410c77d08 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr ""
 
@@ -72,10 +72,10 @@ msgstr ""
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr ""
@@ -88,15 +88,15 @@ msgstr ""
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -188,16 +188,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr ""
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -212,47 +212,49 @@ msgstr ""
 msgid "API method not found."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -262,30 +264,30 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr ""
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr ""
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr ""
 
@@ -309,59 +311,59 @@ msgstr ""
 msgid "All the direct messages sent to %s"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr ""
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr ""
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr ""
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr ""
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr ""
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr ""
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr ""
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr ""
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr ""
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr ""
 
@@ -377,101 +379,101 @@ msgstr ""
 msgid "Could not find target user."
 msgstr ""
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr ""
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr ""
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr ""
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr ""
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr ""
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr ""
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr ""
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr ""
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr ""
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr ""
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr ""
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr ""
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -501,7 +503,7 @@ msgstr ""
 msgid "groups on %s"
 msgstr ""
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr ""
 
@@ -515,9 +517,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -560,8 +562,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -622,18 +624,18 @@ msgstr ""
 msgid "You may not delete another user's status."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr ""
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr ""
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr ""
 
@@ -645,21 +647,21 @@ msgstr ""
 msgid "No status with that ID found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -856,7 +858,9 @@ msgid "Yes"
 msgstr ""
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr ""
 
@@ -898,11 +902,13 @@ msgstr ""
 msgid "Unblock user from group"
 msgstr ""
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr ""
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr ""
 
@@ -941,9 +947,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -951,7 +957,7 @@ msgstr ""
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr ""
@@ -987,9 +993,10 @@ msgstr ""
 msgid "You are not the owner of this application."
 msgstr ""
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -1020,7 +1027,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr ""
@@ -1079,7 +1086,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -1198,13 +1204,13 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr ""
@@ -1360,7 +1366,7 @@ msgstr ""
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1376,22 +1382,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr ""
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1399,110 +1409,110 @@ msgstr ""
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr ""
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr ""
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr ""
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr ""
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1511,50 +1521,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr ""
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr ""
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr ""
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr ""
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr ""
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr ""
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr ""
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr ""
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr ""
 
@@ -1667,7 +1677,7 @@ msgstr ""
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr ""
 
@@ -1724,7 +1734,7 @@ msgstr ""
 msgid "User is not a member of group."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr ""
 
@@ -1799,37 +1809,47 @@ msgstr ""
 msgid "Failed updating logo."
 msgstr ""
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr ""
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr ""
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1955,7 +1975,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1963,63 +1986,63 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr ""
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr ""
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr ""
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr ""
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr ""
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr ""
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2027,28 +2050,28 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr ""
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr ""
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr ""
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr ""
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr ""
 
@@ -2471,8 +2494,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr ""
 
@@ -2612,7 +2635,7 @@ msgid "Password saved."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -2819,7 +2842,7 @@ msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr ""
 
@@ -2922,7 +2945,7 @@ msgid "Couldn't save tags."
 msgstr ""
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr ""
 
@@ -3408,7 +3431,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -3446,24 +3469,24 @@ msgid "Application profile"
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr ""
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr ""
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr ""
 
@@ -3568,7 +3591,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr ""
@@ -3620,7 +3643,7 @@ msgstr ""
 msgid "FOAF for %s group"
 msgstr ""
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr ""
 
@@ -4040,7 +4063,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -4684,18 +4707,18 @@ msgid "Problem saving notice."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr ""
@@ -4725,7 +4748,7 @@ msgid "Unable to save tag."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -4873,7 +4896,8 @@ msgid "Change site configuration"
 msgstr ""
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -4950,7 +4974,7 @@ msgstr ""
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr ""
 
@@ -5014,7 +5038,10 @@ msgid "StatusNet software license"
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5022,13 +5049,16 @@ msgid ""
 msgstr ""
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr ""
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5037,49 +5067,50 @@ msgid ""
 msgstr ""
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr ""
 
@@ -5088,205 +5119,240 @@ msgstr ""
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr ""
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr ""
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr ""
@@ -5306,11 +5372,13 @@ msgstr ""
 msgid "Provider"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr ""
 
@@ -5322,6 +5390,11 @@ msgstr ""
 msgid "Password changing is not allowed"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr ""
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr ""
@@ -5565,7 +5638,7 @@ msgid "You are not subscribed to anyone."
 msgstr ""
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5580,7 +5653,7 @@ msgid "No one is subscribed to you."
 msgstr ""
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5595,7 +5668,7 @@ msgid "You are not a member of any groups."
 msgstr ""
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5603,6 +5676,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] ""
 msgstr[1] ""
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5782,35 +5856,75 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
 msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -5845,7 +5959,8 @@ msgstr ""
 msgid "Partial upload."
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -6144,56 +6259,75 @@ msgstr ""
 msgid "Unsupported message type: %s"
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -6310,26 +6444,23 @@ msgid "Send a nudge to this user"
 msgstr ""
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
+msgid "Error inserting new profile."
 msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr ""
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
+msgid "Error inserting avatar."
 msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
+msgid "Error inserting remote profile."
 msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
 msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr ""
 
@@ -6366,7 +6497,8 @@ msgstr ""
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -6460,19 +6592,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr ""
 
@@ -6667,56 +6804,64 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr ""
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr ""
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr ""
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr ""
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr ""
 
index b8f2aed97c801a675101483ea408e8e57f78ff35..fddbf065c29b4ae3412a6585188d339d27d5f026 100644 (file)
@@ -1,29 +1,31 @@
-# Translation of StatusNet to Swedish
+# Translation of StatusNet - Core to Swedish (Svenska)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Jamminjohn
-# Author@translatewiki.net: Kjell
-# Author@translatewiki.net: McDutchie
+# Author: Jamminjohn
+# Author: Kjell
+# Author: McDutchie
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:15+0000\n"
-"Language-Team: Swedish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:24+0000\n"
+"Language-Team: Swedish <http://translatewiki.net/wiki/Portal:sv>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: sv\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Åtkomst"
 
@@ -77,10 +79,10 @@ msgstr "Spara inställningar för åtkomst"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Spara"
@@ -93,15 +95,15 @@ msgstr "Ingen sådan sida"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -199,16 +201,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Uppdateringar från %1$s och vänner på %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -223,47 +225,49 @@ msgstr "Uppdateringar från %1$s och vänner på %2$s!"
 msgid "API method not found."
 msgstr "API-metod hittades inte."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Denna metod kräver en POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr "Du måste ange ett värdet på parametern 'device': sms, im, none"
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Kunde inte uppdatera användare."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Användaren har ingen profil."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Kunde inte spara profil."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -275,30 +279,30 @@ msgstr ""
 "Servern kunde inte hantera så mycket POST-data (%s byte) på grund av sin "
 "nuvarande konfiguration."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Kunde inte spara dina utseendeinställningar."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Kunde inte uppdatera din profils utseende."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Du kan inte blockera dig själv!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Blockering av användare misslyckades."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Hävning av blockering av användare misslyckades."
 
@@ -322,65 +326,65 @@ msgstr "Direktmeddelande till %s"
 msgid "All the direct messages sent to %s"
 msgstr "Alla direktmeddelanden skickade till %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Ingen meddelandetext!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Detta är för långt. Maximal meddelandestorlek är %d tecken."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Mottagare hittades inte."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "Kan inte skicka direktmeddelanden till användare som inte är din vän."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Ingen status hittad med det ID:t."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Denna status är redan en favorit."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Kunde inte skapa favorit."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Denna status är inte en favorit."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Kunde inte ta bort favoriten."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Kunde inte sluta följa användaren: användaren hittades inte."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Kunde inte följa användare: %s finns redan i din lista."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Kunde inte sluta följa användaren: användaren hittades inte."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Du kan inte sluta följa dig själv."
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
-msgstr ""
+msgstr "Två giltiga användar-ID:n eller screen_names måste tillhandahållas."
 
 #: actions/apifriendshipsshow.php:134
 msgid "Could not determine source user."
@@ -390,102 +394,102 @@ msgstr "Kunde inte fastställa användare hos källan."
 msgid "Could not find target user."
 msgstr "Kunde inte hitta målanvändare."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 "Smeknamnet får endast innehålla små bokstäver eller siffror, inga mellanslag."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Smeknamnet används redan. Försök med ett annat."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Inte ett giltigt smeknamn."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Hemsida är inte en giltig webbadress."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Fullständigt namn är för långt (max 255 tecken)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Beskrivning är för lång (max %d tecken)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Beskrivning av plats är för lång (max 255 tecken)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "För många alias! Maximum %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Ogiltigt alias: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Alias \"%s\" används redan. Försök med ett annat."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Alias kan inte vara samma som smeknamn."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Grupp hittades inte."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Du är redan en medlem i denna grupp."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Du har blivit blockerad från denna grupp av administratören."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Kunde inte ansluta användare %1$s till grupp %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Du är inte en medlem i denna grupp."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -515,6 +519,10 @@ msgstr "%s grupper"
 msgid "groups on %s"
 msgstr "grupper på %s"
 
+#: actions/apimediaupload.php:100
+msgid "Upload failed."
+msgstr "Uppladdning misslyckades."
+
 #: actions/apioauthauthorize.php:101
 msgid "No oauth_token parameter provided."
 msgstr "Ingen oauth_token-parameter angiven."
@@ -525,9 +533,9 @@ msgstr "Ogiltig token."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -570,8 +578,8 @@ msgstr "Begäran-token %s har nekats och återkallats."
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -635,18 +643,18 @@ msgstr "Denna metod kräver en POST eller en DELETE."
 msgid "You may not delete another user's status."
 msgstr "Du kan inte ta bort en annan användares status."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Ingen sådan notis."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Kan inte upprepa din egen notis."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Redan upprepat denna notis."
 
@@ -658,21 +666,21 @@ msgstr "Status borttagen."
 msgid "No status with that ID found."
 msgstr "Ingen status med det ID:t hittades."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
-msgstr ""
+msgstr "Klient måste tillhandahålla en 'status'-parameter med ett värde."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Det är för långt. Maximal notisstorlek är %d tecken."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Hittades inte."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "Maximal notisstorlek är %d tecken, inklusive webbadress för bilaga."
@@ -873,7 +881,9 @@ msgid "Yes"
 msgstr "Ja"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Blockera denna användare"
 
@@ -916,11 +926,13 @@ msgstr ""
 msgid "Unblock user from group"
 msgstr "Häv blockering av användare från grupp"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Häv blockering"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Häv blockering av denna användare"
 
@@ -959,9 +971,9 @@ msgstr "Denna adress har redan blivit bekräftad."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -969,7 +981,7 @@ msgstr "Kunde inte uppdatera användare."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Kunde inte ta bort e-postbekräftelse."
@@ -1005,9 +1017,10 @@ msgstr "Applikation hittades inte."
 msgid "You are not the owner of this application."
 msgstr "Du är inte ägaren av denna applikation."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Det var ett problem med din sessions-token."
 
@@ -1041,7 +1054,7 @@ msgstr "Ta bort denna applikation"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Inte inloggad."
@@ -1104,7 +1117,6 @@ msgstr "Ta bort denna användare"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Utseende"
 
@@ -1225,13 +1237,13 @@ msgstr "Återställ standardutseende"
 msgid "Reset back to default"
 msgstr "Återställ till standardvärde"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Spara"
@@ -1387,7 +1399,7 @@ msgstr "Aktuell, bekräftad e-postadress."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1405,22 +1417,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Avbryt"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "E-postadress, såsom \"användarnamn@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1428,111 +1444,111 @@ msgstr "Lägg till"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Inkommande e-post"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Skicka e-post till denna adress för att posta nya notiser."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 "Ange en ny e-postadress för att posta till; detta inaktiverar den gamla."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Ny"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "E-postinställningar"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Skicka notiser om nya prenumerationer till mig genom e-post."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Skicka mig e-post när någon lägger till min notis som en favorit."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Skicka mig e-post när någon skickar mig ett privat meddelande."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Skicka mig e-post när någon skickar ett \"@-svar\"."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Tillåt vänner att knuffa mig och skicka e-post till mig."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Jag vill posta notiser genom min e-post."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Publicera ett MicroID för min e-postadress."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "E-postinställningar sparade."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Ingen e-postadress."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Kan inte normalisera den e-postadressen"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Inte en giltig e-postadress."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Det är redan din e-postadress."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Den e-postadressen tillhör redan en annan användare."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Kunde inte infoga bekräftelsekod."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1544,50 +1560,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Ingen väntande bekräftelse att avbryta."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Detta är fel e-postadress."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "E-postbekräftelse avbruten."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Det är inte din e-postadress."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "E-postadressen togs bort."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Ingen inkommande e-postadress."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Kunde inte uppdatera användaruppgift."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Inkommande e-postadress borttagen."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Ny inkommande e-postadress tillagd."
 
@@ -1706,7 +1722,7 @@ msgstr "Kunde inte konvertera token för begäran till token för åtkomst."
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Fjärrtjänsten använder en okänd version av OMB-protokollet."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Fel vid uppdatering av fjärrprofil."
 
@@ -1763,7 +1779,7 @@ msgstr "Användaren är redan blockerad från grupp."
 msgid "User is not a member of group."
 msgstr "Användare är inte en gruppmedlem."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Blockera användare från grupp"
 
@@ -1844,39 +1860,49 @@ msgstr "Logtyp uppdaterad."
 msgid "Failed updating logo."
 msgstr "Misslyckades uppdatera logtyp."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s gruppmedlemmar"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s gruppmedlemmar, sida %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "En lista av användarna i denna grupp."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Administratör"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "Blockera"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Gör användare till en administratör för gruppen"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "Gör till administratör"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "Gör denna användare till administratör"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -2016,7 +2042,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2026,65 +2055,65 @@ msgstr ""
 "att lägga till %s i din kompislista i din IM-klient eller hos GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Inställningar för snabbmeddelanden"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Skicka notiser till mig genom Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Posta en notis när min Jabber/GTalk-status ändras."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Skicka svar till mig genom Jabber/GTalk från personer som jag inte "
 "prenumererar på."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Publicera ett MicroID för min Jabber/GTalk-adress."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Inställningar sparade."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Inget Jabber-ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Kan inte normalisera detta Jabber-ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Inte ett giltigt Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Detta är redan ditt Jabber-ID"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber-ID:t tillhör redan en annan användare."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2094,28 +2123,28 @@ msgstr ""
 "att %s får skicka meddelanden till dig."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Detta är fel IM-adress."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Kunde inte ta bort bekräftelse för snabbmeddelanden."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Bekräftelse för snabbmeddelanden avbruten."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Detta är inte ditt Jabber-ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Adressen för snabbmeddelanden togs bort."
 
@@ -2510,6 +2539,8 @@ msgstr "Uppdateringar som matchar söksträngen \"%1$s\" på %2$s!"
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
+"Denna användare tillåter inte knuffar eller har inte bekräftat eller angett "
+"sin e-post än."
 
 #: actions/nudge.php:94
 msgid "Nudge sent"
@@ -2584,8 +2615,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "Endast %s-webbadresser över vanlig HTTP."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Ett dataformat som inte stödjs"
 
@@ -2725,7 +2756,7 @@ msgid "Password saved."
 msgstr "Lösenord sparat."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Sökvägar"
 
@@ -2937,7 +2968,7 @@ msgstr "Fullständigt namn"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Hemsida"
 
@@ -3044,7 +3075,7 @@ msgid "Couldn't save tags."
 msgstr "Kunde inte spara taggar."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Inställningar sparade."
 
@@ -3583,7 +3614,7 @@ msgstr "Användare är redan flyttad till sandlådan."
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessioner"
 
@@ -3621,24 +3652,24 @@ msgid "Application profile"
 msgstr "Applikationsprofil"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Namn"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Organisation"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Beskrivning"
 
@@ -3730,6 +3761,15 @@ msgstr ""
 "bredvid någon notis du skulle vilja bokmärka för senare tillfälle eller för "
 "att sätta strålkastarljuset på."
 
+#: actions/showfavorites.php:208
+#, php-format
+msgid ""
+"%s hasn't added any favorite notices yet. Post something interesting they "
+"would add to their favorites :)"
+msgstr ""
+"%s har inte lagt till några favoritnotiser ännu. Posta något intressant de "
+"skulle lägga till sina favoriter :)"
+
 #: actions/showfavorites.php:212
 #, php-format
 msgid ""
@@ -3744,7 +3784,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Detta är ett sätt att dela med av det du gillar."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s grupp"
@@ -3796,7 +3836,7 @@ msgstr "Flöde av notiser för %s grupp (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF för %s grupp"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Medlemmar"
 
@@ -4246,7 +4286,7 @@ msgstr "Ingen kod ifylld"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Ögonblicksbilder"
 
@@ -4817,6 +4857,8 @@ msgid ""
 "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
 "Try to upload a smaller version."
 msgstr ""
+"Ingen fil får vara större än %1$d byte och filen du skickade var %2$d byte. "
+"Prova att ladda upp en mindre version."
 
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
@@ -4832,6 +4874,11 @@ msgstr "En så här stor fil skulle överskrida din användarkvot på %d byte."
 msgid "A file this large would exceed your monthly quota of %d bytes."
 msgstr "En sådan här stor fil skulle överskrida din månatliga kvot på %d byte."
 
+#. TRANS: Client exception thrown if a file upload does not have a valid name.
+#: classes/File.php:248 classes/File.php:263
+msgid "Invalid filename."
+msgstr "Ogiltigt filnamn."
+
 #. TRANS: Exception thrown when joining a group fails.
 #: classes/Group_member.php:42
 msgid "Group join failed."
@@ -4862,7 +4909,7 @@ msgstr "Kunde inte skapa inloggnings-token för %s"
 #. TRANS: Exception thrown when database name or Data Source Name could not be found.
 #: classes/Memcached_DataObject.php:533
 msgid "No database name or DSN found anywhere."
-msgstr ""
+msgstr "Inget databasnamn eller DSN funnen någonstans."
 
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
@@ -4884,7 +4931,7 @@ msgstr "Kunde inte uppdatera meddelande med ny URI."
 #: classes/Notice.php:98
 #, php-format
 msgid "No such profile (%1$d) for notice (%2$d)."
-msgstr ""
+msgstr "Ingen sådan profil (%1$d) för notis (%2$d)."
 
 #. TRANS: Server exception. %s are the error details.
 #: classes/Notice.php:193
@@ -4931,18 +4978,18 @@ msgid "Problem saving notice."
 msgstr "Problem med att spara notis."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
-msgstr ""
+msgstr "Dålig typ tillhandahållen saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Problem med att spara gruppinkorg."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4952,17 +4999,27 @@ msgstr "RT @%1$s %2$s"
 #: classes/Profile.php:737
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; does not exist."
-msgstr ""
+msgstr "Kan inte återkalla roll \"%1$s\" för användare #%2$d; finns inte."
 
 #. TRANS: Exception thrown when trying to revoke a role for a user with a failing database query.
 #. TRANS: %1$s is the role name, %2$s is the user ID (number).
 #: classes/Profile.php:746
 #, php-format
 msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
-msgstr ""
+msgstr "Kan inte återkalla roll \"%1$s\" för användare #%2$d; databasfel."
+
+#. TRANS: Exception thrown when a right for a non-existing user profile is checked.
+#: classes/Remote_profile.php:54
+msgid "Missing profile."
+msgstr "Saknar profil."
+
+#. TRANS: Exception thrown when a tag cannot be saved.
+#: classes/Status_network.php:339
+msgid "Unable to save tag."
+msgstr "Kunde inte spara tagg."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Du har blivit utestängd från att prenumerera."
 
@@ -5110,7 +5167,8 @@ msgid "Change site configuration"
 msgstr "Ändra webbplatskonfiguration"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Administratör"
@@ -5187,7 +5245,7 @@ msgstr "Sök"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Webbplatsnotis"
 
@@ -5251,7 +5309,10 @@ msgid "StatusNet software license"
 msgstr "Programvarulicens för StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5261,13 +5322,16 @@ msgstr ""
 "%%](%%site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** är en mikrobloggtjänst."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5279,50 +5343,51 @@ msgstr ""
 "fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Licens för webbplatsinnehåll"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Innehåll och data av %1$s är privat och konfidensiell."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "Innehåll och data copyright av %1$s. Alla rättigheter reserverade."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Innehåll och data copyright av medarbetare. Alla rättigheter reserverade."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Innehåll och data på %1$s är tillgänglig under licensen %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Numrering av sidor"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Senare"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Tidigare"
 
@@ -5331,207 +5396,242 @@ msgstr "Tidigare"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "Förväntade ett flödes rotelement, men fick ett helt XML-dokument."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Kan inte hantera fjärrinnehåll ännu."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Kan inte hantera inbäddat XML-innehåll ännu."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Kan inte hantera inbäddat Base64-innehåll ännu."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Du kan inte göra förändringar av denna webbplats."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Ändringar av den panelen tillåts inte."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() är inte implementerat."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSetting() är inte implementerat."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Kunde inte ta bort utseendeinställning."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Grundläggande webbplatskonfiguration"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Webbplats"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Konfiguration av utseende"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Utseende"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Konfiguration av användare"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Användare"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Konfiguration av åtkomst"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Konfiguration av sökvägar"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Konfiguration av sessioner"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Redigera webbplatsnotis"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Konfiguration av ögonblicksbilder"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "API-resursen kräver läs- och skrivrättigheter, men du har bara läsrättighet."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Redigera applikation"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Ikon för denna applikation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Beskriv din applikation med högst %d tecken"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Beskriv din applikation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL till hemsidan för denna applikation"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL för källa"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Organisation som ansvarar för denna applikation"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL till organisationens hemsidan"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL att omdirigera till efter autentisering"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Webbläsare"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Skrivbord"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Typ av applikation, webbläsare eller skrivbord"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Skrivskyddad"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Läs och skriv"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Standardåtkomst för denna applikation: skrivskyddad, eller läs och skriv"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Avbryt"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "läs och skriv"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "skrivskyddad"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Godkänd %1$s - \"%2$s\" åtkomst."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Återkalla"
@@ -5551,11 +5651,13 @@ msgstr "Författare"
 msgid "Provider"
 msgstr "Tillhandahållare"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Notiser där denna bilaga förekommer"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Taggar för denna billaga"
 
@@ -5567,6 +5669,11 @@ msgstr "Byte av lösenord misslyckades"
 msgid "Password changing is not allowed"
 msgstr "Byte av lösenord är inte tillåtet"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Blockera"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Resultat av kommando"
@@ -5579,6 +5686,31 @@ msgstr "Kommando komplett"
 msgid "Command failed"
 msgstr "Kommando misslyckades"
 
+#. TRANS: Command exception text shown when a notice ID is requested that does not exist.
+#: lib/command.php:84 lib/command.php:108
+msgid "Notice with that id does not exist."
+msgstr "Notis med den ID:n finns inte."
+
+#. TRANS: Command exception text shown when a last user notice is requested and it does not exist.
+#. TRANS: Error text shown when a last user notice is requested and it does not exist.
+#: lib/command.php:101 lib/command.php:630
+msgid "User has no last notice."
+msgstr "Användare har ingen sista notis."
+
+#. TRANS: Message given requesting a profile for a non-existing user.
+#. TRANS: %s is the nickname of the user for which the profile could not be found.
+#: lib/command.php:130
+#, php-format
+msgid "Could not find a user with nickname %s."
+msgstr "Kunde inte hitta en användare med smeknamnet %s."
+
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr "Kunde inte hitta en lokal användare med smeknamnet %s."
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -5589,6 +5721,13 @@ msgstr "Tyvärr, detta kommando är inte implementerat än."
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr "Det verkar inte vara särskilt meningsfullt att knuffa dig själv!"
 
+#. TRANS: Message given having nudged another user.
+#. TRANS: %s is the nickname of the user that was nudged.
+#: lib/command.php:240
+#, php-format
+msgid "Nudge sent to %s."
+msgstr "Knuff skickad till %s."
+
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -5609,6 +5748,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "Notis markerad som favorit."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr "%1$s gick med i grupp %2$s."
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr "%1$s lämnade grupp %2$s."
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -5657,11 +5810,32 @@ msgstr "Meddelande för långt - maximum är %1$d tecken, du skickade %2$d."
 msgid "Error sending direct message."
 msgstr "Fel vid sändning av direktmeddelande."
 
+#. TRANS: Message given having repeated a notice from another user.
+#. TRANS: %s is the name of the user for which the notice was repeated.
+#: lib/command.php:554
+#, php-format
+msgid "Notice from %s repeated."
+msgstr "Notis från %s upprepad."
+
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
 msgstr "Fel vid upprepning av notis."
 
+#. TRANS: Message given if content of a notice for a reply is too long.
+#. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
+#: lib/command.php:592
+#, php-format
+msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
+msgstr "Notis för långt - maximum är %1$d tecken, du skickade %2$d."
+
+#. TRANS: Text shown having sent a reply to a notice successfully.
+#. TRANS: %s is the nickname of the user of the notice the reply was sent to.
+#: lib/command.php:603
+#, php-format
+msgid "Reply to %s sent."
+msgstr "Svar på %s skickat."
+
 #. TRANS: Error text shown when a reply to a notice fails with an unknown reason.
 #: lib/command.php:606
 msgid "Error saving notice."
@@ -5670,18 +5844,32 @@ msgstr "Fel vid sparande av notis."
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "Ange namnet på användaren att prenumerara på."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr "Kan inte prenumera på OMB-profiler via kommando."
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "Prenumererar på %s."
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
-msgstr ""
+msgstr "Ange namnet på användaren att avsluta prenumeration på."
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr "Prenumeration på %s avslutad."
 
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
@@ -5712,7 +5900,7 @@ msgstr "Kan inte stänga av notifikation."
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
-msgstr ""
+msgstr "Inloggningskommando är inaktiverat."
 
 #. TRANS: Text shown after issuing the login command successfully.
 #. TRANS: %s is a logon link..
@@ -5720,6 +5908,14 @@ msgstr ""
 #, php-format
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
+"Denna länk är bara användbar en gång och är bara giltig i 2 minuter: %s. "
+
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr "%ss prenumeration avslutad."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
@@ -5727,7 +5923,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Du prenumererar inte på någon."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5742,7 +5938,7 @@ msgid "No one is subscribed to you."
 msgstr "Ingen prenumerar på dig."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5757,7 +5953,7 @@ msgid "You are not a member of any groups."
 msgstr "Du är inte medlem i några grupper."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5765,6 +5961,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "Du är en medlem i denna grupp:"
 msgstr[1] "Du är en medlem i dessa grupper:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5984,37 +6181,77 @@ msgstr "Plats för gruppen, om den finns, såsom \"Stad, Län, Land\""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr "Extra smeknamn för gruppen, komma- eller mellanslagsseparerade, max &d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Grupp"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Blockerad"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s blockerade användare"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "Redigera %s gruppegenskaper"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Logotyp"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "Lägg till eller redigera %s logotyp"
+msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "Lägg till eller redigera %s utseende"
+msgstr ""
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6047,7 +6284,8 @@ msgstr "Denna fil är för stor. Den maximala filstorleken är %s."
 msgid "Partial upload."
 msgstr "Bitvis uppladdad."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Systemfel vid uppladdning av fil."
 
@@ -6448,17 +6686,20 @@ msgstr "Tyvärr, ingen inkommande e-post tillåts."
 msgid "Unsupported message type: %s"
 msgstr "Formatet %s för meddelande stödjs inte."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 "Det var ett databasfel vid sparandet av din profil. Var vänlig försök igen."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 "Den uppladdade filen överstiger upload_max_filesize-direktivet i php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6466,43 +6707,59 @@ msgstr ""
 "Den uppladdade filen överstiger MAX_FILE_SIZE-direktivet som var angivet i "
 "HTML-formuläret."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Den uppladdade filen var bara delvis uppladdad."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Saknar en tillfällig mapp."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Misslyckades att skriva fil till disk."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Filuppladdningen stoppad pga filändelse"
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Fil överstiger användaren kvot."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Fil kunde inte flyttas till destinationskatalog."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Kunde inte fastställa filens MIME-typ."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "Försök använda ett annat %s-format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s är en filtyp som saknar stöd på denna server."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr ""
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6585,7 +6842,7 @@ msgstr "på"
 
 #: lib/noticelist.php:502
 msgid "web"
-msgstr ""
+msgstr "webb"
 
 #: lib/noticelist.php:568
 msgid "in context"
@@ -6620,26 +6877,23 @@ msgid "Send a nudge to this user"
 msgstr "Skicka en knuff till denna användare"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Fel vid infogning av ny profil"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Fel vid infogning av avatar"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Fel vid uppdatering av fjärrprofil"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Fel vid infogning av fjärrprofilen"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Duplicerad notis"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Kunde inte infoga ny prenumeration."
 
@@ -6676,7 +6930,8 @@ msgstr "Dina skickade meddelanden"
 msgid "Tags in %s's notices"
 msgstr "Taggar i %ss notiser"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Okänd"
 
@@ -6770,19 +7025,24 @@ msgstr "Flytta till sandlådan"
 msgid "Sandbox this user"
 msgstr "Flytta denna användare till sandlådan"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Sök webbplats"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Nyckelord"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Sök"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Sök hjälp"
 
@@ -6894,7 +7154,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "Tema innehåller osäkra filtilläggsnamn; kan vara osäkert."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -6980,56 +7240,64 @@ msgid "Moderator"
 msgstr "Moderator"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "ett par sekunder sedan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "för nån minut sedan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "för %d minuter sedan"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "för en timma sedan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "för %d timmar sedan"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "för en dag sedan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "för %d dagar sedan"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "för en månad sedan"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "för %d månader sedan"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "för ett år sedan"
 
index 187d96298017a75c732c842e5681ac6e15f978eb..f35ee97fa7231c7994812871163ac6d1dde83153 100644 (file)
@@ -1,28 +1,30 @@
-# Translation of StatusNet to Telugu
+# Translation of StatusNet - Core to Telugu (తెలుగు)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Brion
-# Author@translatewiki.net: Veeven
+# Author: Brion
+# Author: Veeven
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:17+0000\n"
-"Language-Team: Telugu\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:25+0000\n"
+"Language-Team: Telugu <http://translatewiki.net/wiki/Portal:te>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: te\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "అందుబాటు"
 
@@ -75,10 +77,10 @@ msgstr "అందుబాటు అమరికలను భద్రపరచ
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "భద్రపరచు"
@@ -91,15 +93,15 @@ msgstr "అటువంటి పేజీ లేదు."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -175,39 +177,41 @@ msgstr "మీరు మరియు మీ స్నేహితులు"
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr "%2$sలో %1$s మరియు స్నేహితుల నుండి తాజాకరణలు!"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "వాడుకరికి ప్రొఫైలు లేదు."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -217,21 +221,21 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "మీ రూపురేఖల అమరికలని భద్రపరచలేకున్నాం."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "మిమ్మల్ని మీరే నిరోధించుకోలేరు!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "వాడుకరి నిరోధం విఫలమైంది."
 
@@ -255,59 +259,59 @@ msgstr "%s కి నేరు సందేశాలు"
 msgid "All the direct messages sent to %s"
 msgstr "%sకి పంపిన అన్ని నేరు సందేశాలు"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "సందేశపు పాఠ్యం లేదు!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "చాలా పొడవుంది. గరిష్ఠ సందేశ పరిమాణం %d అక్షరాలు."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "అందుకోవాల్సిన వాడుకరి కనబడలేదు."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "మీ స్నేహితులు కాని వాడుకరులకి నేరు సందేశాలు పంపించలేరు."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "ఆ IDతో ఏ నోటీసూ కనబడలేదు."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "ఈ నోటీసు ఇప్పటికే మీ ఇష్టాంశం."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "ఇష్టాంశాన్ని సృష్టించలేకపోయాం."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "ఆ నోటీసు ఇష్టాంశం కాదు."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "వాడుకరిని అనుసరించలేకపోయాం: %s ఇప్పటికే మీ జాబితాలో ఉన్నారు."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "మిమ్మల్ని మీరే అననుసరించలేరు."
 
@@ -323,101 +327,101 @@ msgstr "లక్ష్యిత వాడుకరిని కనుగొన
 msgid "Could not find target user."
 msgstr "లక్ష్యిత వాడుకరిని కనుగొనలేకపోయాం."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "పేరులో చిన్నబడి అక్షరాలు మరియు అంకెలు మాత్రమే ఖాళీలు లేకుండా ఉండాలి."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "సరైన పేరు కాదు."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "హోమ్ పేజీ URL సరైనది కాదు."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "పూర్తి పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "ప్రాంతం పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "చాలా మారుపేర్లు! %d గరిష్ఠం."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "తప్పుడు మారుపేరు: \"%s\"."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "\"%s\" అన్న మారుపేరుని ఇప్పటికే వాడుతున్నారు. మరొకటి ప్రయత్నించండి."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "మారుపేరు పేరుతో సమానంగా ఉండకూడదు."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "గుంపు దొరకలేదు."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "మీరు ఇప్పటికే ఆ గుంపులో సభ్యులు."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "నిర్వాహకులు ఆ గుంపు నుండి మిమ్మల్ని నిరోధించారు."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "వాడుకరి %1$sని %2$s గుంపులో చేర్చలేకపోయాం"
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "మీరు ఈ గుంపులో సభ్యులు కాదు."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -447,7 +451,7 @@ msgstr "%s గుంపులు"
 msgid "groups on %s"
 msgstr "%s పై గుంపులు"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "ఎక్కింపు విఫలమైంది."
 
@@ -461,9 +465,9 @@ msgstr "తప్పుడు పాత్ర."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -502,8 +506,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -564,18 +568,18 @@ msgstr ""
 msgid "You may not delete another user's status."
 msgstr "ఇతర వాడుకరుల స్థితిని మీరు తొలగించలేరు."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "అటువంటి సందేశమేమీ లేదు."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "మీ నోటీసుని మీరే పునరావృతించలేరు."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "ఇప్పటికే ఆ నోటీసుని పునరావృతించారు."
 
@@ -587,21 +591,21 @@ msgstr "స్థితిని తొలగించాం."
 msgid "No status with that ID found."
 msgstr "ఆ IDతో ఏ నోటీసు కనబడలేదు."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "అది చాలా పొడవుంది. గరిష్ఠ నోటీసు పరిమాణం %d అక్షరాలు."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "కనబడలేదు."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని."
@@ -711,6 +715,10 @@ msgstr "ఏ దస్త్రమూ ఎక్కింపబడలేదు."
 msgid "Pick a square area of the image to be your avatar"
 msgstr "మీ అవతారానికి గానూ ఈ చిత్రం నుండి ఒక చతురస్రపు ప్రదేశాన్ని ఎంచుకోండి"
 
+#: actions/avatarsettings.php:347 actions/grouplogo.php:380
+msgid "Lost our file data."
+msgstr ""
+
 #: actions/avatarsettings.php:370
 msgid "Avatar updated."
 msgstr "అవతారాన్ని తాజాకరించాం."
@@ -771,7 +779,9 @@ msgid "Yes"
 msgstr "అవును"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "ఈ వాడుకరిని నిరోధించు"
 
@@ -813,7 +823,13 @@ msgstr "ఈ గుంపు లోనికి చేరకుండా ని
 msgid "Unblock user from group"
 msgstr "వాడుకరిని గుంపు నుండి నిరోధించు"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
+msgid "Unblock"
+msgstr "నిరోధాన్ని ఎత్తివేయి"
+
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "ఈ వాడుకరిని నిరోధించు"
 
@@ -852,9 +868,9 @@ msgstr "ఆ చిరునామా ఇప్పటికే నిర్ధా
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -862,7 +878,7 @@ msgstr "వాడుకరిని తాజాకరించలేకున
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "ఈమెయిల్ నిర్ధారణని తొలగించలేకున్నాం."
@@ -898,9 +914,10 @@ msgstr "ఉపకరణం కనబడలేదు."
 msgid "You are not the owner of this application."
 msgstr "మీరు ఈ ఉపకరణం యొక్క యజమాని కాదు."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -933,7 +950,7 @@ msgstr "ఈ ఉపకరణాన్ని తొలగించు"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "లోనికి ప్రవేశించలేదు."
@@ -994,7 +1011,6 @@ msgstr "ఈ వాడుకరిని తొలగించు"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "రూపురేఖలు"
 
@@ -1054,12 +1070,12 @@ msgstr "సైటుకి మీరు నేపథ్యపు చిత్ర
 #. TRANS: Used as radio button label to add a background image.
 #: actions/designadminpanel.php:527 lib/designsettings.php:139
 msgid "On"
-msgstr ""
+msgstr "ఆన్"
 
 #. TRANS: Used as radio button label to not add a background image.
 #: actions/designadminpanel.php:544 lib/designsettings.php:155
 msgid "Off"
-msgstr ""
+msgstr "ఆఫ్"
 
 #: actions/designadminpanel.php:564 lib/designsettings.php:170
 msgid "Change colours"
@@ -1087,19 +1103,19 @@ msgstr "ఉన్నత"
 
 #: actions/designadminpanel.php:655
 msgid "Custom CSS"
-msgstr ""
+msgstr "ప్రత్యేక CSS"
 
 #: actions/designadminpanel.php:676 lib/designsettings.php:247
 msgid "Use defaults"
 msgstr "అప్రమేయాలని ఉపయోగించు"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "భద్రపరచు"
@@ -1247,7 +1263,7 @@ msgstr "ప్రస్తుత నిర్ధారిత ఈమెయిల
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1265,22 +1281,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "రద్దుచేయి"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "ఈమెయిల్ చిరునామా, \"username@example.org\" వలె"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1288,77 +1308,77 @@ msgstr "చేర్చు"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "కొత్తది"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "ఈమెయిలు అభిరుచులు"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "నేను ఈమెయిలు ద్వారా నోటీసులు పంపాలనుకుంటున్నాను."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "ఈమెయిలు అభిరుచులు భద్రమయ్యాయి."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "ఈమెయిలు చిరునామా లేదు."
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "సరైన ఈమెయిల్ చిరునామా కాదు:"
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "అది ఇప్పటికే మీ ఈమెయిల్ చిరునామా."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "ఆ ఈమెయిల్ చిరునామా ఇప్పటేకే ఇతర వాడుకరికి సంబంధించినది."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "నిర్ధారణ సంకేతాన్ని చేర్చలేకపోయాం."
@@ -1366,29 +1386,29 @@ msgstr "నిర్ధారణ సంకేతాన్ని చేర్చ
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "రద్దుచేయడానికి వేచివున్న నిర్ధారణలేమీ లేవు."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "ఆ ఈమెయిలు చిరునామా సరైనది కాదు."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "ఈమెయిలు నిర్ధారణ రద్దయింది."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "అది మీ ఈమెయిలు చిరునామా కాదు."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "ఆ ఈమెయిలు చిరునామాని తొలగించాం."
 
@@ -1531,7 +1551,7 @@ msgstr "వాడుకరిని ఇప్పటికే గుంపున
 msgid "User is not a member of group."
 msgstr "వాడుకరి ఈ గుంపులో సభ్యులు కాదు."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "వాడుకరిని గుంపు నుండి నిరోధించు"
 
@@ -1604,39 +1624,49 @@ msgstr "చిహ్నాన్ని తాజాకరించాం."
 msgid "Failed updating logo."
 msgstr "చిహ్నపు తాజాకరణ విఫలమైంది."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "%s గుంపు సభ్యులు"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "%1$s గుంపు సభ్యులు, పేజీ %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "ఈ గుంపులో వాడుకరులు జాబితా."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "నిర్వాహకులు"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
-msgstr "నిరోధించు"
+msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "వాడుకరిని గుంపుకి ఒక నిర్వాహకునిగా చేయి"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
-msgstr "నిర్వాహకున్ని చేయి"
+msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "ఈ వాడుకరిని నిర్వాహకున్ని చేయి"
+msgstr ""
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1760,7 +1790,10 @@ msgstr "ప్రస్తుతం నిర్ధారించిన Jabber/
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1768,53 +1801,53 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM అభిరుచులు"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "అభిరుచులు భద్రమయ్యాయి."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Jabber ID లేదు."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "సరైన Jabber ఐడీ కాదు"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "ఈ Jabber ID మీకు ఇప్పటికే ఉంది"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID ఇప్పటికే వేరొకరికి ఉంది."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1822,23 +1855,23 @@ msgid ""
 msgstr ""
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "ఆ IM చిరునామా సరైనది కాదు."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "IM నిర్ధారణ రద్దయింది."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "ఇది మీ Jabber ID కాదు"
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "ఆ IM చిరునామాని తొలగించాం."
 
@@ -2267,12 +2300,6 @@ msgstr "నోటీసుకి ప్రొఫైలు లేదు."
 msgid "%1$s's status on %2$s"
 msgstr "%2$sలో %1$s యొక్క స్థితి"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -2280,8 +2307,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr ""
 
@@ -2395,7 +2422,7 @@ msgid "Password saved."
 msgstr "సంకేతపదం భద్రమయ్యింది."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "త్రోవలు"
 
@@ -2421,6 +2448,10 @@ msgstr "సేవకి"
 msgid "Site's server hostname."
 msgstr ""
 
+#: actions/pathsadminpanel.php:242
+msgid "Path"
+msgstr "త్రోవ"
+
 #: actions/pathsadminpanel.php:242
 msgid "Site path"
 msgstr "సైటు అలంకారం"
@@ -2559,7 +2590,7 @@ msgstr "పూర్తి పేరు"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "హోమ్ పేజీ"
 
@@ -2654,7 +2685,7 @@ msgid "Couldn't save tags."
 msgstr "ట్యాగులని భద్రపరచలేకున్నాం."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "అమరికలు భద్రమయ్యాయి."
 
@@ -2784,6 +2815,10 @@ msgstr "తెలియని చర్య"
 msgid "6 or more characters, and don't forget it!"
 msgstr "6 లేదా అంతకంటే ఎక్కువ అక్షరాలు, మర్చిపోకండి!"
 
+#: actions/recoverpassword.php:243
+msgid "Reset"
+msgstr "రీసెట్"
+
 #: actions/recoverpassword.php:252
 msgid "Enter a nickname or email address."
 msgstr "పేరు లేదా ఈమెయిల్ చిరునామా ఇవ్వండి."
@@ -2905,7 +2940,7 @@ msgstr ""
 #. TRANS: Copyright checkbox label in registration dialog, for all rights reserved.
 #: actions/register.php:535
 msgid "All rights reserved."
-msgstr ""
+msgstr "సర్వహక్కులూ సురక్షితం."
 
 #. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
 #: actions/register.php:540
@@ -3117,24 +3152,24 @@ msgid "Application profile"
 msgstr "ఉపకరణ ప్రవర"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "ప్రతీకం"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "పేరు"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "సంస్ధ"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "వివరణ"
 
@@ -3219,7 +3254,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "మీకు నచ్చినవి పంచుకోడానికి ఇదొక మార్గం."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s గుంపు"
@@ -3271,7 +3306,7 @@ msgstr "%s కొరకు స్పందనల ఫీడు (ఆటమ్)"
 msgid "FOAF for %s group"
 msgstr "%s గుంపు"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "సభ్యులు"
 
@@ -3548,13 +3583,6 @@ msgstr "ఇది ఇప్పటికే మీ ఫోను నెంబర
 msgid "That phone number already belongs to another user."
 msgstr "ఆ ఫోను నంబరు ఇప్పటికే వేరే వాడుకరికి చెందినది."
 
-#. TRANS: Message given saving valid SMS phone number that is to be confirmed.
-#: actions/smssettings.php:384
-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 ""
-
 #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number.
 #: actions/smssettings.php:413
 msgid "That is the wrong confirmation number."
@@ -3597,7 +3625,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3958,16 +3986,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:76 lib/designsettings.php:65
 msgid "Profile design"
 msgstr "ఫ్రొఫైలు రూపురేఖలు"
@@ -4148,13 +4166,13 @@ msgid "Problem saving notice."
 msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4179,7 +4197,7 @@ msgid "Unable to save tag."
 msgstr "ట్యాగులని భద్రపరచలేకపోయాం."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "చందాచేరడం నుండి మిమ్మల్ని నిషేధించారు."
 
@@ -4311,7 +4329,8 @@ msgid "Change site configuration"
 msgstr "సైటు స్వరూపణాన్ని మార్చండి"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "నిర్వాహకులు"
@@ -4388,7 +4407,7 @@ msgstr "వెతుకు"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "సైటు గమనిక"
 
@@ -4452,7 +4471,10 @@ msgid "StatusNet software license"
 msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -4462,13 +4484,16 @@ msgstr ""
 "అందిస్తున్న సూక్ష్మ బ్లాగింగు సేవ."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -4480,49 +4505,50 @@ msgstr ""
 "పై నడుస్తుంది."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "స్టేటస్‌నెట్ మృదూపకరణ లైసెన్సు"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "పేజీకరణ"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "తర్వాత"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "ఇంతక్రితం"
 
@@ -4531,178 +4557,213 @@ msgstr "ఇంతక్రితం"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "ఈ సైటుకి మీరు మార్పులు చేయలేరు."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "ప్రాథమిక సైటు స్వరూపణం"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "సైటు"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "రూపకల్పన స్వరూపణం"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "రూపురేఖలు"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "వాడుకరి స్వరూపణం"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "వాడుకరి"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "రూపకల్పన స్వరూపణం"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "వాడుకరి స్వరూపణం"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "సైటు గమనికని భద్రపరచు"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "వాడుకరి స్వరూపణం"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "ఉపకరణాన్ని మార్చు"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "ఈ ఉపకరణానికి ప్రతీకం"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "మీ ఉపకరణం గురించి %d అక్షరాల్లో వివరించండి"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "మీ ఉపకరణాన్ని వివరించండి"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "ఈ ఉపకరణం యొక్క హోమ్&zwnj;పేజీ చిరునామా"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "ఈ ఉపకరణానికి బాధ్యతాయుతమైన సంస్థ"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "ఈ ఉపకరణం యొక్క హోమ్&zwnj;పేజీ చిరునామా"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "విహారిణి"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "మేజోపరి"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "ఉపకరణ రకం, విహారిణి లేదా మేజోపరి"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "చదవడం-మాత్రమే"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "చదవడం-వ్రాయడం"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "రద్దుచేయి"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "చదవడం-వ్రాయడం"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "చదవడం-మాత్రమే"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
@@ -4722,10 +4783,20 @@ msgstr "రచయిత"
 msgid "Provider"
 msgstr "మునుజూపు"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
+#: lib/authenticationplugin.php:221 lib/authenticationplugin.php:226
+msgid "Password changing failed"
+msgstr "సంకేతపదం మార్పు విఫలమైంది"
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "నిరోధించు"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "ఆదేశ ఫలితాలు"
@@ -4738,6 +4809,13 @@ msgstr "ఆదేశం పూర్తయ్యింది"
 msgid "Command failed"
 msgstr "ఆదేశం విఫలమైంది"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4775,6 +4853,20 @@ msgstr ""
 msgid "Notice marked as fave."
 msgstr "నోటీసుని ఇష్టాంశంగా గుర్తించాం."
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the full name of the queried user.
 #: lib/command.php:434
 #, php-format
@@ -4829,17 +4921,31 @@ msgstr "నోటీసుని భద్రపరచడంలో పొరప
 #. TRANS: Error text shown when no username was provided when issuing a subscribe command.
 #: lib/command.php:655
 msgid "Specify the name of the user to subscribe to."
-msgstr ""
+msgstr "ఏవరికి చందా చేరాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి."
 
 #. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
 #: lib/command.php:664
 msgid "Can't subscribe to OMB profiles by command."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr "%sకి చందా చేరారు."
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
+msgstr "ఎవరినుండైతే చందావిరమించాలనుకుంటున్నారో ఆ వాడుకరి పేరుని ఇవ్వండి."
+
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
 msgstr ""
 
 #. TRANS: Error text shown when the command "off" fails for an unknown reason.
@@ -4859,13 +4965,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "మీరు ఎవరికీ చందాచేరలేదు."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4880,7 +4993,7 @@ msgid "No one is subscribed to you."
 msgstr "మీకు చందాదార్లు ఎవరూ లేరు."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4895,7 +5008,7 @@ msgid "You are not a member of any groups."
 msgstr "మీరు ఏ గుంపులోనూ సభ్యులు కాదు."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -4903,6 +5016,7 @@ msgid_plural "You are a member of these groups:"
 msgstr[0] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!"
 msgstr[1] "మీరు ఇప్పటికే లోనికి ప్రవేశించారు!"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4990,6 +5104,10 @@ msgid ""
 "You can upload your personal background image. The maximum file size is 2MB."
 msgstr "మీ వ్యక్తిగత నేపథ్యపు చిత్రాన్ని మీరు ఎక్కించవచ్చు. గరిష్ఠ ఫైలు పరిమాణం 2మెబై."
 
+#: lib/designsettings.php:418
+msgid "Design defaults restored."
+msgstr ""
+
 #: lib/favorform.php:114 lib/favorform.php:140
 msgid "Favor this notice"
 msgstr "ఈ నోటీసుని పునరావృతించు"
@@ -5016,7 +5134,7 @@ msgstr ""
 
 #: lib/feedlist.php:64
 msgid "Export data"
-msgstr ""
+msgstr "భోగట్టా ఎగుమతి"
 
 #: lib/galleryaction.php:121
 msgid "Filter tags"
@@ -5066,35 +5184,75 @@ msgstr "గుంపు యొక్క ప్రాంతం, ఉంటే, \"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "గుంపు"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "నిరోధించారు"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s నిరోధిత వాడుకరులు"
+msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "%s గుంపు లక్షణాలను మార్చు"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "చిహ్నం"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -5119,7 +5277,8 @@ msgstr ""
 msgid "Partial upload."
 msgstr "పాక్షిక ఎగుమతి."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -5489,56 +5648,75 @@ msgstr "నమోదైన వాడుకరి కాదు."
 msgid "Sorry, that is not your incoming email address."
 msgstr "క్షమించండి, అది మీ లోనికివచ్చు ఈమెయిలు చిరునామా కాదు."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "ఎక్కించిన ఫైలు కేవలం పాక్షికంగా మాత్రమే ఎక్కింది."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "తాత్కాలిక సంచయం కనబడటంలేదు."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "ఇష్టాంశాన్ని తొలగించలేకపోయాం."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
@@ -5614,11 +5792,11 @@ msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s"
 
 #: lib/noticelist.php:453
 msgid "at"
-msgstr ""
+msgstr "ప్రాంతం"
 
 #: lib/noticelist.php:502
 msgid "web"
-msgstr ""
+msgstr "జాలం"
 
 #: lib/noticelist.php:568
 msgid "in context"
@@ -5641,26 +5819,23 @@ msgid "Notice repeated"
 msgstr "నోటీసుని పునరావృతించారు"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "కొత్త ప్రొపైలుని చేర్చటంలో పొరపాటు"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "కొత్త ప్రొపైలుని చేర్చటంలో పొరపాటు"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "దూరపు ప్రొపైలుని తాజాకరించటంలో పొరపాటు"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "దూరపు ప్రొపైలుని చేర్చటంలో పొరపాటు"
+msgid "Error inserting remote profile."
+msgstr ""
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "నోటీసుని తొలగించు"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "కొత్త చందాని చేర్చలేకపోయాం."
 
@@ -5778,19 +5953,24 @@ msgstr ""
 msgid "Sandbox this user"
 msgstr "ఈ వాడుకరిని నిరోధించు"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "సైటుని వెతుకు"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "కీపదము(లు)"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "వెతుకు"
+msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "సహాయంలో వెతుకు"
 
@@ -5802,6 +5982,10 @@ msgstr "ప్రజలు"
 msgid "Find people on this site"
 msgstr "ఈ సైటులోని వ్యక్తులని కనుగొనండి"
 
+#: lib/searchgroupnav.php:83
+msgid "Find content of notices"
+msgstr ""
+
 #: lib/searchgroupnav.php:85
 msgid "Find groups on this site"
 msgstr "ఈ సైటులోని గుంపులని కనుగొనండి"
@@ -5904,10 +6088,18 @@ msgstr "నిరోధాన్ని తొలగించడంలో పొ
 msgid "Top posters"
 msgstr ""
 
+#: lib/unsandboxform.php:69
+msgid "Unsandbox"
+msgstr ""
+
 #: lib/unsandboxform.php:80
 msgid "Unsandbox this user"
 msgstr "ఈ వాడుకరి నుండి చందామాను"
 
+#: lib/unsilenceform.php:67
+msgid "Unsilence"
+msgstr ""
+
 #: lib/unsilenceform.php:78
 msgid "Unsilence this user"
 msgstr "ఈ వాడుకరిని తొలగించు"
@@ -5963,56 +6155,64 @@ msgid "Moderator"
 msgstr "సమన్వయకర్త"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "కొన్ని క్షణాల క్రితం"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "ఓ నిమిషం క్రితం"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "%d నిమిషాల క్రితం"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "ఒక గంట క్రితం"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "%d గంటల క్రితం"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "ఓ రోజు క్రితం"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "%d రోజుల క్రితం"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "ఓ నెల క్రితం"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "%d నెలల క్రితం"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
+msgstr[1] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "ఒక సంవత్సరం క్రితం"
 
index 1ca9d3ddf011cf78e31f94223ffe758f257fd94f..1664f062d0b3c49086a0b0a1016751b3671a19c7 100644 (file)
@@ -1,24 +1,26 @@
-# Translation of StatusNet to Turkish
+# Translation of StatusNet - Core to Turkish (Türkçe)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Joseph
-# Author@translatewiki.net: McDutchie
+# Author: Joseph
+# Author: McDutchie
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:22+0000\n"
-"Language-Team: Turkish\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:27+0000\n"
+"Language-Team: Turkish <http://translatewiki.net/wiki/Portal:tr>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: tr\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page notice
 #: actions/accessadminpanel.php:67
@@ -45,11 +47,6 @@ msgstr ""
 msgid "Disable new registrations."
 msgstr ""
 
-#. TRANS: Checkbox label for disabling new user registrations.
-#: actions/accessadminpanel.php:185
-msgid "Closed"
-msgstr ""
-
 #. TRANS: Server error when page not found (404)
 #: actions/all.php:68 actions/public.php:98 actions/replies.php:93
 #: actions/showfavorites.php:138 actions/tag.php:52
@@ -58,15 +55,15 @@ msgstr "Böyle bir kullanıcı yok."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -91,18 +88,6 @@ msgstr "Böyle bir kullanıcı yok."
 msgid "%s and friends"
 msgstr "%s ve arkadaşları"
 
-#. TRANS: %1$s is user nickname
-#: actions/all.php:107
-#, php-format
-msgid "Feed for friends of %s (RSS 1.0)"
-msgstr ""
-
-#. TRANS: %1$s is user nickname
-#: actions/all.php:116
-#, php-format
-msgid "Feed for friends of %s (RSS 2.0)"
-msgstr ""
-
 #. TRANS: %1$s is user nickname
 #: actions/all.php:138
 #, php-format
@@ -140,39 +125,41 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Kullanıcının profili yok."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -182,25 +169,21 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
-msgid "You cannot block yourself!"
-msgstr ""
-
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr ""
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr ""
 
@@ -224,36 +207,37 @@ msgstr ""
 msgid "All the direct messages sent to %s"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr ""
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr ""
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Profil kaydedilemedi."
 
-#: actions/apifriendshipsdestroy.php:120
-msgid "You cannot unfollow yourself."
+#: actions/apifriendshipscreate.php:119
+#, php-format
+msgid "Could not follow user: %s is already on your list."
 msgstr ""
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
 msgstr ""
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -261,85 +245,80 @@ msgstr ""
 "Takma ad sadece küçük harflerden ve rakamlardan oluşabilir, boşluk "
 "kullanılamaz. "
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Takma ad kullanımda. Başka bir tane deneyin."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Geçersiz bir takma ad."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Başlangıç sayfası adresi geçerli bir URL değil."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Tam isim çok uzun (azm: 255 karakter)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Yer bilgisi çok uzun (azm: %d karakter)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Yer bilgisi çok uzun (azm: 255 karakter)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Geçersiz büyüklük."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Onay kodu bulunamadı."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Bize o profili yollamadınız"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr ""
 
-#. TRANS: %s is a user name
-#: actions/apigrouplist.php:98
+#. TRANS: Message is used as a title. %s is a site name.
+#. TRANS: Message is used as a page title. %s is a nick name.
+#: actions/apigrouplistall.php:92 actions/usergroups.php:63
 #, php-format
-msgid "%s's groups"
-msgstr ""
-
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
+msgid "%s groups"
 msgstr ""
 
 #: actions/apigrouplistall.php:96
@@ -353,9 +332,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -386,8 +365,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -443,7 +422,7 @@ msgstr ""
 msgid "You may not delete another user's status."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Böyle bir durum mesajı yok."
@@ -452,20 +431,15 @@ msgstr "Böyle bir durum mesajı yok."
 msgid "No status with that ID found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
 
-#: actions/apitimelinefavorites.php:119
-#, php-format
-msgid "%1$s updates favorited by %2$s / %2$s."
-msgstr ""
-
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
@@ -481,11 +455,6 @@ msgstr ""
 msgid "Notices tagged with %s"
 msgstr ""
 
-#: actions/apitimelinetag.php:107 actions/tagrss.php:65
-#, php-format
-msgid "Updates tagged with %1$s on %2$s!"
-msgstr ""
-
 #: actions/attachment.php:73
 msgid "No such attachment."
 msgstr "Böyle bir durum mesajı yok."
@@ -562,18 +531,6 @@ msgid ""
 "will not be notified of any @-replies from them."
 msgstr ""
 
-#. TRANS: Button label on the user block form.
-#. TRANS: Button label on the delete application form.
-#. TRANS: Button label on the delete notice form.
-#. TRANS: Button label on the delete user form.
-#. TRANS: Button label on the form to block a user from a group.
-#: actions/block.php:153 actions/deleteapplication.php:154
-#: actions/deletenotice.php:147 actions/deleteuser.php:152
-#: actions/groupblock.php:178
-msgctxt "BUTTON"
-msgid "No"
-msgstr ""
-
 #. TRANS: Button label on the user block form.
 #. TRANS: Button label on the delete application form.
 #. TRANS: Button label on the delete notice form.
@@ -586,11 +543,6 @@ msgctxt "BUTTON"
 msgid "Yes"
 msgstr ""
 
-#. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
-msgid "Block this user"
-msgstr ""
-
 #: actions/block.php:187
 msgid "Failed to save block information."
 msgstr ""
@@ -611,25 +563,12 @@ msgstr ""
 msgid "No such group."
 msgstr "Böyle bir kullanıcı yok."
 
-#: actions/blockedfromgroup.php:97
-#, php-format
-msgid "%s blocked profiles"
-msgstr ""
-
-#: actions/blockedfromgroup.php:100
-#, php-format
-msgid "%1$s blocked profiles, page %2$d"
-msgstr ""
-
 #: actions/blockedfromgroup.php:115
 msgid "A list of the users blocked from joining this group."
 msgstr ""
 
-#: actions/blockedfromgroup.php:288
-msgid "Unblock user from group"
-msgstr ""
-
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr ""
 
@@ -645,12 +584,6 @@ msgstr "Onay kodu bulunamadı."
 msgid "That confirmation code is not for you!"
 msgstr "O onay kodu sizin için değil!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -662,9 +595,9 @@ msgstr "O adres daha önce onaylanmış."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -672,7 +605,7 @@ msgstr "Kullanıcı güncellenemedi."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Eposta onayı silinemedi."
@@ -695,9 +628,10 @@ msgstr "Durum mesajları"
 msgid "Application not found."
 msgstr "Onay kodu bulunamadı."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -714,7 +648,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Giriş yapılmadı."
@@ -729,11 +663,6 @@ msgstr ""
 msgid "Are you sure you want to delete this notice?"
 msgstr ""
 
-#. TRANS: Submit button title for 'No' when deleting a notice.
-#: actions/deletenotice.php:151
-msgid "Do not delete this notice"
-msgstr ""
-
 #. TRANS: Submit button title for 'Yes' when deleting a notice.
 #: actions/deletenotice.php:158 lib/noticelist.php:657
 msgid "Delete this notice"
@@ -752,7 +681,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -760,11 +688,6 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "Değiştir"
@@ -773,10 +696,6 @@ msgstr "Değiştir"
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -832,17 +751,21 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Kaydet"
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr ""
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
 msgstr ""
@@ -856,14 +779,18 @@ msgstr ""
 msgid "No such document \"%s\""
 msgstr "Böyle bir durum mesajı yok."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
+#: actions/editapplication.php:66
+msgid "You must be logged in to edit an application."
 msgstr ""
 
 #: actions/editapplication.php:161
 msgid "Use this form to edit your application."
 msgstr ""
 
+#: actions/editapplication.php:177 actions/newapplication.php:159
+msgid "Name is required."
+msgstr ""
+
 #: actions/editapplication.php:186 actions/newapplication.php:168
 msgid "Description is required."
 msgstr "Abonelik reddedildi."
@@ -872,6 +799,14 @@ msgstr "Abonelik reddedildi."
 msgid "Source URL is too long."
 msgstr ""
 
+#: actions/editapplication.php:203 actions/newapplication.php:188
+msgid "Organization is required."
+msgstr ""
+
+#: actions/editapplication.php:209 actions/newapplication.php:194
+msgid "Organization homepage is required."
+msgstr ""
+
 #: actions/editapplication.php:218 actions/newapplication.php:206
 msgid "Callback is too long."
 msgstr ""
@@ -885,6 +820,10 @@ msgstr ""
 msgid "Edit %s group"
 msgstr ""
 
+#: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
+msgid "You must be logged in to create a group."
+msgstr ""
+
 #: actions/editgroup.php:107 actions/editgroup.php:172
 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109
 msgid "You must be an admin to edit the group."
@@ -916,79 +855,74 @@ msgstr ""
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
 msgid "Remove"
 msgstr "Geri al"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr ""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Geçersiz bir eposta adresi."
@@ -996,7 +930,7 @@ msgstr "Geçersiz bir eposta adresi."
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Onay kodu eklenemedi."
@@ -1004,21 +938,26 @@ msgstr "Onay kodu eklenemedi."
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "İptal etmek için beklenen onay yok."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "İptal etmek için beklenen onay yok."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Eposta adresi zaten var."
 
+#. TRANS: Message given after successfully removing an incoming e-mail address.
+#: actions/emailsettings.php:512 actions/smssettings.php:581
+msgid "Incoming email address removed."
+msgstr ""
+
 #: actions/favor.php:79
 msgid "This notice is already a favorite!"
 msgstr ""
@@ -1027,11 +966,6 @@ msgstr ""
 msgid "Disfavor favorite"
 msgstr ""
 
-#: actions/favorited.php:67
-#, php-format
-msgid "Popular notices, page %d"
-msgstr ""
-
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
 msgstr ""
@@ -1059,11 +993,6 @@ msgstr ""
 msgid "%s's favorite notices"
 msgstr ""
 
-#: actions/favoritesrss.php:115
-#, php-format
-msgid "Updates favored by %1$s on %2$s!"
-msgstr ""
-
 #: actions/featured.php:69 lib/featureduserssection.php:87
 #: lib/publicgroupnav.php:89
 msgid "Featured users"
@@ -1111,10 +1040,6 @@ msgstr "Takip talebine izin verildi"
 msgid "Could not convert request token to access token."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:83
 msgid "Cannot read file."
 msgstr "Profil kaydedilemedi."
@@ -1123,10 +1048,6 @@ msgstr "Profil kaydedilemedi."
 msgid "This role is reserved and cannot be set."
 msgstr ""
 
-#: actions/grantrole.php:75
-msgid "You cannot grant user roles on this site."
-msgstr ""
-
 #: actions/groupblock.php:71 actions/groupunblock.php:71
 #: actions/makeadmin.php:71 actions/subedit.php:46
 #: lib/profileformaction.php:79
@@ -1148,10 +1069,6 @@ msgstr ""
 msgid "Only an admin can block group members."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
-msgid "Block user from group"
-msgstr ""
-
 #: actions/groupblock.php:160
 #, php-format
 msgid ""
@@ -1160,16 +1077,6 @@ msgid ""
 "the group in the future."
 msgstr ""
 
-#. TRANS: Submit button title for 'No' when blocking a user from a group.
-#: actions/groupblock.php:182
-msgid "Do not block this user from this group"
-msgstr ""
-
-#. TRANS: Submit button title for 'Yes' when blocking a user from a group.
-#: actions/groupblock.php:189
-msgid "Block this user from this group"
-msgstr ""
-
 #: actions/groupblock.php:206
 msgid "Database error blocking user from group."
 msgstr ""
@@ -1192,45 +1099,58 @@ msgid ""
 "palette of your choice."
 msgstr ""
 
+#: actions/grouplogo.php:142 actions/grouplogo.php:195
+msgid "Group logo"
+msgstr ""
+
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
 msgstr ""
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
+#, php-format
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr ""
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
-#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
-#: actions/grouprss.php:142
-#, php-format
-msgid "Updates from members of %1$s on %2$s!"
-msgstr ""
-
 #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249
 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
 msgid "Groups"
@@ -1251,15 +1171,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
-#: actions/groupsearch.php:79 actions/noticesearch.php:117
-#: actions/peoplesearch.php:83
-msgid "No results."
-msgstr ""
-
 #: actions/groupsearch.php:82
 #, php-format
 msgid ""
@@ -1278,10 +1189,6 @@ msgstr ""
 msgid "Only an admin can unblock group members."
 msgstr ""
 
-#: actions/groupunblock.php:95
-msgid "User is not blocked from group."
-msgstr ""
-
 #. TRANS: Title for instance messaging settings.
 #: actions/imsettings.php:60
 msgid "IM settings"
@@ -1299,11 +1206,6 @@ msgstr ""
 "Jabber/GTalk kullanarak durum mesaji gÖnderip alabilirsiniz. IM adres "
 "ayarlarinizi aşağıda yapın."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #: actions/imsettings.php:113
 msgid "Current confirmed Jabber/GTalk address."
 msgstr "Onaylanmış Jabber/Gtalk adresi."
@@ -1321,7 +1223,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1331,54 +1236,54 @@ msgstr ""
 "IM istemcisi veya Gtalk arkadaşlar listenize eklenmiş olmalıdır."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Tercihler kaydedildi."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Durum mesajlarını Jabber/GTalk üzerinden gönder."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 "Jabber/GTalk durum mesajim değiştiğinde nedurum.com'da durumumu güncelle"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Tercihler kaydedildi."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "JabberID yok."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Jabber işlemlerinde bir hata oluştu."
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Geçersiz bir Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Bu zaten sizin Jabber ID'niz."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID başka bir kullanıcıya ait."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1388,18 +1293,18 @@ msgstr ""
 "mesaj yollanabilmesi için onaylamanız gerekmektedir."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Yanlış IM adresi."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Onay kodu yok."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Bu sizin Jabber ID'niz değil."
 
@@ -1421,11 +1326,6 @@ msgstr ""
 msgid "Invites have been disabled."
 msgstr ""
 
-#: actions/invite.php:41
-#, php-format
-msgid "You must be logged in to invite other users to use %s."
-msgstr ""
-
 #: actions/invite.php:110
 msgid "Invitation(s) sent"
 msgstr ""
@@ -1469,12 +1369,6 @@ msgstr ""
 msgid "Optionally add a personal message to the invitation."
 msgstr ""
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:231
 #, php-format
@@ -1561,37 +1455,12 @@ msgstr ""
 msgid "Login with your username and password."
 msgstr "Yanlış kullanıcı adı veya parola."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:96
-#, php-format
-msgid "%1$s is already an admin for group \"%2$s\"."
-msgstr ""
-
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/makeadmin.php:146
-#, php-format
-msgid "Can't make %1$s an admin for group %2$s."
-msgstr ""
-
-#: actions/microsummary.php:69
-msgid "No current status."
-msgstr ""
-
-#: actions/newapplication.php:52
-msgid "New Application"
+#: actions/newapplication.php:64
+msgid "You must be logged in to register an application."
 msgstr ""
 
 #: actions/newapplication.php:143
@@ -1606,6 +1475,10 @@ msgstr ""
 msgid "Could not create application."
 msgstr "Eposta onayı silinemedi."
 
+#: actions/newgroup.php:53
+msgid "New group"
+msgstr ""
+
 #: actions/newgroup.php:110
 msgid "Use this form to create a new group."
 msgstr ""
@@ -1663,11 +1536,6 @@ msgstr ""
 msgid "Text search"
 msgstr "Metin arama"
 
-#: actions/noticesearch.php:91
-#, php-format
-msgid "Search results for \"%1$s\" on %2$s"
-msgstr ""
-
 #: actions/noticesearch.php:121
 #, php-format
 msgid ""
@@ -1682,16 +1550,6 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
-#: actions/noticesearchrss.php:98
-#, php-format
-msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr ""
-
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
@@ -1717,6 +1575,15 @@ msgstr ""
 msgid "Applications you have registered"
 msgstr ""
 
+#: actions/oauthappssettings.php:135
+#, php-format
+msgid "You have not registered any applications yet."
+msgstr ""
+
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1743,12 +1610,6 @@ msgstr "Kullanıcının profili yok."
 msgid "%1$s's status on %2$s"
 msgstr "%1$s'in %2$s'deki durum mesajları "
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1779,18 +1640,6 @@ msgstr ""
 msgid "Show or hide profile designs."
 msgstr ""
 
-#: actions/otp.php:69
-msgid "No user ID specified."
-msgstr ""
-
-#: actions/otp.php:83
-msgid "No login token specified."
-msgstr ""
-
-#: actions/otp.php:95
-msgid "Invalid login token specified."
-msgstr ""
-
 #: actions/otp.php:104
 msgid "Login token expired."
 msgstr ""
@@ -1859,7 +1708,7 @@ msgid "Password saved."
 msgstr "Parola kaydedildi."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1867,26 +1716,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -1927,6 +1756,10 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
+#: actions/pathsadminpanel.php:264
+msgid "Theme server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:268
 msgid "Theme path"
 msgstr ""
@@ -1943,6 +1776,10 @@ msgstr "Avatar"
 msgid "Backgrounds"
 msgstr ""
 
+#: actions/pathsadminpanel.php:305
+msgid "Background server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:309
 msgid "Background path"
 msgstr ""
@@ -1979,10 +1816,6 @@ msgstr "Sunucu"
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -1997,11 +1830,6 @@ msgstr ""
 msgid "People search"
 msgstr "Kişi Arama"
 
-#: actions/peopletag.php:142
-#, php-format
-msgid "Users self-tagged with %1$s - page %2$d"
-msgstr ""
-
 #: actions/postnotice.php:95
 msgid "Invalid notice content."
 msgstr "Geçersiz büyüklük."
@@ -2040,7 +1868,7 @@ msgstr "Tam İsim"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Başlangıç Sayfası"
 
@@ -2049,15 +1877,6 @@ msgid "URL of your homepage, blog, or profile on another site"
 msgstr ""
 "Web Sitenizin, blogunuzun ya da varsa başka bir sitedeki profilinizin adresi"
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "Hakkında"
@@ -2128,7 +1947,7 @@ msgid "Couldn't save profile."
 msgstr "Profil kaydedilemedi."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Ayarlar kaydedildi."
 
@@ -2141,18 +1960,6 @@ msgstr ""
 msgid "Public timeline"
 msgstr "Genel zaman çizgisi"
 
-#: actions/public.php:160
-msgid "Public Stream Feed (RSS 1.0)"
-msgstr ""
-
-#: actions/public.php:164
-msgid "Public Stream Feed (RSS 2.0)"
-msgstr ""
-
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2187,10 +1994,6 @@ msgid ""
 "tool."
 msgstr ""
 
-#: actions/publictagcloud.php:57
-msgid "Public tag cloud"
-msgstr ""
-
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
@@ -2386,14 +2189,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
 #: actions/register.php:583
 #, php-format
 msgid ""
@@ -2456,10 +2251,6 @@ msgstr "Abone ol"
 msgid "Invalid profile URL (bad format)"
 msgstr ""
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
@@ -2508,29 +2299,13 @@ msgid ""
 "newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
 
-#: actions/revokerole.php:75
-msgid "You cannot revoke user roles on this site."
-msgstr ""
-
-#: actions/revokerole.php:82
-msgid "User doesn't have this role."
-msgstr ""
-
 #: actions/rsd.php:146 actions/version.php:159
 msgid "StatusNet"
 msgstr "İstatistikler"
 
-#: actions/sandbox.php:65 actions/unsandbox.php:65
-msgid "You cannot sandbox users on this site."
-msgstr ""
-
-#: actions/sandbox.php:72
-msgid "User is already sandboxed."
-msgstr ""
-
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2559,14 +2334,13 @@ msgstr ""
 msgid "Save site settings"
 msgstr "Profil ayarları"
 
-#. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
-msgid "Icon"
+#: actions/showapplication.php:82
+msgid "You must be logged in to view an application."
 msgstr ""
 
-#. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
-msgid "Organization"
+#. TRANS: Form input field label for application icon.
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
+msgid "Icon"
 msgstr ""
 
 #: actions/showapplication.php:192 actions/showgroup.php:436
@@ -2579,10 +2353,18 @@ msgstr "İstatistikler"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2613,21 +2395,6 @@ msgstr ""
 msgid "Are you sure you want to reset your consumer key and secret?"
 msgstr ""
 
-#: actions/showfavorites.php:79
-#, php-format
-msgid "%1$s's favorite notices, page %2$d"
-msgstr ""
-
-#: actions/showfavorites.php:171
-#, php-format
-msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr ""
-
-#: actions/showfavorites.php:178
-#, php-format
-msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr ""
-
 #: actions/showfavorites.php:206
 msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
@@ -2653,9 +2420,9 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:84
+#: actions/showgroup.php:82
 #, php-format
-msgid "%1$s group, page %2$d"
+msgid "%s group"
 msgstr ""
 
 #: actions/showgroup.php:227
@@ -2671,19 +2438,8 @@ msgstr ""
 msgid "Aliases"
 msgstr ""
 
-#: actions/showgroup.php:338
-#, php-format
-msgid "Notice feed for %s group (RSS 1.0)"
-msgstr ""
-
-#: actions/showgroup.php:344
-#, php-format
-msgid "Notice feed for %s group (RSS 2.0)"
-msgstr ""
-
-#: actions/showgroup.php:355
-#, php-format
-msgid "FOAF for %s group"
+#: actions/showgroup.php:302
+msgid "Group actions"
 msgstr ""
 
 #: actions/showgroup.php:398 lib/profileaction.php:117
@@ -2733,25 +2489,11 @@ msgstr ""
 msgid "Message from %1$s on %2$s"
 msgstr ""
 
-#: actions/shownotice.php:90
-msgid "Notice deleted."
-msgstr ""
-
 #: actions/showstream.php:73
 #, php-format
 msgid " tagged %s"
 msgstr ""
 
-#: actions/showstream.php:79
-#, php-format
-msgid "%1$s, page %2$d"
-msgstr ""
-
-#: actions/showstream.php:122
-#, php-format
-msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
-msgstr ""
-
 #: actions/showstream.php:148
 #, php-format
 msgid "FOAF for %s"
@@ -2796,10 +2538,6 @@ msgstr ""
 msgid "You cannot silence users on this site."
 msgstr ""
 
-#: actions/silence.php:72
-msgid "User is already silenced."
-msgstr ""
-
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
 msgstr ""
@@ -2909,11 +2647,6 @@ msgstr "Profil ayarları"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr ""
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form guide in SMS settings form.
 #: actions/smssettings.php:120
 msgid "Current confirmed SMS-enabled phone number."
@@ -2986,7 +2719,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -2994,6 +2727,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Eposta adresi onayı"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3043,15 +2780,6 @@ msgstr "Yeni abonelik eklenemedi."
 msgid "This action only accepts POST requests."
 msgstr ""
 
-#: actions/subscribe.php:117
-msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr ""
-
-#: actions/subscribers.php:52
-#, php-format
-msgid "%1$s subscribers, page %2$d"
-msgstr ""
-
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
 msgstr "Sizin durumunuzu takip edenler"
@@ -3102,25 +2830,6 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: actions/tag.php:69
-#, php-format
-msgid "Notices tagged with %1$s, page %2$d"
-msgstr ""
-
-#: actions/tag.php:87
-#, php-format
-msgid "Notice feed for tag %s (RSS 1.0)"
-msgstr ""
-
-#: actions/tag.php:93
-#, php-format
-msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
-
-#: actions/tagother.php:39
-msgid "No ID argument."
-msgstr ""
-
 #: actions/tagother.php:65
 #, php-format
 msgid "Tag %s"
@@ -3209,10 +2918,6 @@ msgstr ""
 msgid "Welcome text for new users (Max 255 chars)."
 msgstr ""
 
-#: actions/useradminpanel.php:251
-msgid "Invitations"
-msgstr ""
-
 #: actions/useradminpanel.php:256
 msgid "Invitations enabled"
 msgstr ""
@@ -3225,13 +2930,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Takip isteğini onayla"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr ""
@@ -3304,16 +3002,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3324,12 +3012,6 @@ msgstr ""
 msgid "Enjoy your hotdog!"
 msgstr ""
 
-#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
-#: actions/usergroups.php:66
-#, php-format
-msgid "%1$s groups, page %2$d"
-msgstr ""
-
 #: actions/usergroups.php:132
 msgid "Search for more groups"
 msgstr ""
@@ -3474,13 +3156,13 @@ msgid "Problem saving notice."
 msgstr "Durum mesajını kaydederken hata oluştu."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr ""
@@ -3500,7 +3182,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3551,6 +3233,11 @@ msgstr "Profil kaydedilemedi."
 msgid "Change email handling"
 msgstr ""
 
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
+msgstr ""
+
 #. TRANS: Link description in user account settings menu.
 #: lib/accountsettingsaction.php:146
 msgid "Other"
@@ -3572,25 +3259,14 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Account"
-#: lib/action.php:460
-msgctxt "TOOLTIP"
-msgid "Change your email, avatar, password, profile"
-msgstr ""
-
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "Bağlan"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -3602,24 +3278,12 @@ msgctxt "TOOLTIP"
 msgid "Invite friends and colleagues to join you on %s"
 msgstr ""
 
-#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
-#: lib/action.php:481
-msgctxt "MENU"
-msgid "Invite"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Logout"
 #: lib/action.php:487
 msgctxt "TOOLTIP"
 msgid "Logout from the site"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
@@ -3637,11 +3301,6 @@ msgstr ""
 msgid "Local views"
 msgstr ""
 
-#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
-#: lib/action.php:778
-msgid "Secondary site navigation"
-msgstr ""
-
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
@@ -3686,22 +3345,17 @@ msgstr ""
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3714,215 +3368,231 @@ msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr ""
 
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
-msgid "After"
-msgstr ""
-
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
-msgid "Before"
-msgstr ""
-
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr ""
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
-msgctxt "MENU"
-msgid "Site"
-msgstr ""
-
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Onay kodu yok."
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr ""
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
-#, php-format
-msgid "Describe your application in %d characters"
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
-msgid "Describe your application"
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
-msgid "URL of the homepage of this application"
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
 msgstr ""
 
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
-msgid "Organization responsible for this application"
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
-msgid "URL for the homepage of the organization"
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "İptal et"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Geri al"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr ""
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr ""
+
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr ""
+
+#: lib/channel.php:157 lib/channel.php:177
+msgid "Command results"
 msgstr ""
 
 #: lib/channel.php:229 lib/mailhandler.php:142
@@ -3938,13 +3608,6 @@ msgstr ""
 msgid "Notice with that id does not exist."
 msgstr ""
 
-#. TRANS: Message given requesting a profile for a non-existing user.
-#. TRANS: %s is the nickname of the user for which the profile could not be found.
-#: lib/command.php:130
-#, php-format
-msgid "Could not find a user with nickname %s."
-msgstr ""
-
 #. TRANS: Message given getting a non-existing user.
 #. TRANS: %s is the nickname of the user that could not be found.
 #: lib/command.php:150
@@ -3993,6 +3656,13 @@ msgstr ""
 msgid "%1$s joined group %2$s."
 msgstr ""
 
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
 #, php-format
@@ -4008,13 +3678,6 @@ msgstr ""
 msgid "Message too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
 
-#. TRANS: Message given having repeated a notice from another user.
-#. TRANS: %s is the name of the user for which the notice was repeated.
-#: lib/command.php:554
-#, php-format
-msgid "Notice from %s repeated."
-msgstr ""
-
 #. TRANS: Error text shown when repeating a notice fails with an unknown reason.
 #: lib/command.php:557
 msgid "Error repeating notice."
@@ -4032,9 +3695,11 @@ msgstr ""
 msgid "Specify the name of the user to subscribe to."
 msgstr ""
 
-#. TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command.
-#: lib/command.php:664
-msgid "Can't subscribe to OMB profiles by command."
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
 msgstr ""
 
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
@@ -4043,6 +3708,13 @@ msgstr ""
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4071,8 +3743,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4080,7 +3759,7 @@ msgid_plural "You are subscribed to these people:"
 msgstr[0] "Bize o profili yollamadınız"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4088,13 +3767,14 @@ msgid_plural "These people are subscribed to you:"
 msgstr[0] "Uzaktan abonelik"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "Bize o profili yollamadınız"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4161,6 +3841,10 @@ msgstr ""
 msgid "Updates by SMS"
 msgstr ""
 
+#: lib/connectsettingsaction.php:121
+msgid "Authorized connected applications"
+msgstr ""
+
 #: lib/dberroraction.php:60
 msgid "Database error"
 msgstr ""
@@ -4226,49 +3910,80 @@ msgstr ""
 msgid "Grant this user the \"%s\" role"
 msgstr ""
 
-#: lib/groupeditform.php:168
-msgid "Describe the group or topic"
+#: lib/groupeditform.php:187
+#, php-format
+msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
+msgid "Group"
 msgstr ""
 
-#: lib/groupeditform.php:187
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
 #, php-format
-msgid "Extra nicknames for the group, comma- or space- separated, max %d"
+msgctxt "TOOLTIP"
+msgid "%s group"
 msgstr ""
 
-#: lib/groupnav.php:85
-msgid "Group"
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
 msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
 msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Giriş"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4298,7 +4013,8 @@ msgstr "Desteklenmeyen görüntü dosyası biçemi."
 msgid "Partial upload."
 msgstr "Kısmi yükleme."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Dosya yüklemede sistem hatası."
 
@@ -4328,10 +4044,6 @@ msgstr ""
 msgid "Unknown inbox source %d."
 msgstr ""
 
-#: lib/logingroupnav.php:86
-msgid "Sign up for a new account"
-msgstr ""
-
 #. TRANS: Subject for address confirmation email
 #: lib/mail.php:174
 msgid "Email address confirmation"
@@ -4368,22 +4080,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Body of notification mail for new posting email address
 #: lib/mail.php:308
 #, php-format
@@ -4459,12 +4155,6 @@ msgid ""
 "%5$s\n"
 msgstr ""
 
-#. TRANS: Subject for favorite notification email
-#: lib/mail.php:589
-#, php-format
-msgid "%s (@%s) added your notice as a favorite"
-msgstr ""
-
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
 #, php-format
@@ -4547,56 +4237,69 @@ msgstr ""
 msgid "Sorry, no incoming email allowed."
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
-msgid "Could not determine file's MIME type."
-msgstr ""
-
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -4607,11 +4310,6 @@ msgstr ""
 msgid "To"
 msgstr ""
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
@@ -4625,10 +4323,6 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
@@ -4676,27 +4370,36 @@ msgstr ""
 msgid "Reply"
 msgstr "Cevaplar"
 
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr ""
+
 #: lib/nudgeform.php:128
 msgid "Nudge"
 msgstr ""
 
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr ""
+
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Yeni profil eklemede hata oluştu"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Avatar eklemede hata oluştu"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Uzaktaki profili güncellemede hata oluştu"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Uzak profil eklemede hata oluştu"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Yeni abonelik eklenemedi."
 
@@ -4733,7 +4436,8 @@ msgstr ""
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -4782,19 +4486,14 @@ msgstr ""
 msgid "Recent tags"
 msgstr ""
 
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
+#: lib/publicgroupnav.php:88
+msgid "Featured"
 msgstr ""
 
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr ""
 
-#: lib/revokeroleform.php:91
-#, php-format
-msgid "Revoke the \"%s\" role from this user"
-msgstr ""
-
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
 msgstr ""
@@ -4803,13 +4502,16 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Ara"
+msgstr ""
 
 #: lib/searchgroupnav.php:81
 msgid "Find people on this site"
@@ -4831,10 +4533,6 @@ msgstr ""
 msgid "More..."
 msgstr ""
 
-#: lib/silenceform.php:67
-msgid "Silence"
-msgstr ""
-
 #: lib/subgroupnav.php:99
 #, php-format
 msgid "Groups %s is a member of"
@@ -4915,6 +4613,10 @@ msgstr ""
 msgid "Unsubscribe"
 msgstr "Aboneliği sonlandır"
 
+#: lib/userprofile.php:234 lib/userprofile.php:248
+msgid "User actions"
+msgstr ""
+
 #: lib/userprofile.php:237
 msgid "User deletion in progress..."
 msgstr ""
@@ -4946,56 +4648,60 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "birkaç saniye önce"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "yaklaşık bir dakika önce"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "yaklaşık %d dakika önce"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "yaklaşık bir saat önce"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "yaklaşık %d saat önce"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "yaklaşık bir gün önce"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "yaklaşık %d gün önce"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "yaklaşık bir ay önce"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "yaklaşık %d ay önce"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "yaklaşık bir yıl önce"
 
index bc3312e4672eb43abee408f6af5bcd9faea1cf7b..180a64e64f4dd77ce05dea0053d1d3f50fedaca3 100644 (file)
@@ -1,31 +1,33 @@
-# Translation of StatusNet to Ukrainian
+# Translation of StatusNet - Core to Ukrainian (Українська)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: AS
-# Author@translatewiki.net: Boogie
-# Author@translatewiki.net: Prima klasy4na
-# Author@translatewiki.net: Тест
+# Author: AS
+# Author: Boogie
+# Author: Prima klasy4na
+# Author: Тест
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:25+0000\n"
-"Language-Team: Ukrainian\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:28+0000\n"
+"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: uk\n"
-"X-Message-Group: out-statusnet\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10< =4 && (n%100<10 or n%100>=20) ? 1 : 2);\n"
+"X-Message-Group: #out-statusnet-core\n"
+"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
+"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Погодитись"
 
@@ -80,10 +82,10 @@ msgstr "Зберегти параметри доступу"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Зберегти"
@@ -96,15 +98,15 @@ msgstr "Немає такої сторінки."
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -202,16 +204,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "Оновлення від %1$s та друзів на %2$s!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -226,48 +228,50 @@ msgstr "Оновлення від %1$s та друзів на %2$s!"
 msgid "API method not found."
 msgstr "API метод не знайдено."
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Цей метод потребує POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 "Ви мусите встановити параметр «device» з одним зі значень: sms, im, none."
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "Не вдалося оновити користувача."
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Користувач не має профілю."
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "Не вдалося зберегти профіль."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -279,30 +283,30 @@ msgstr ""
 "Сервер нездатен обробити таку кількість даних (%s байтів) за поточної "
 "конфігурації."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
 msgstr "Не маю можливості зберегти налаштування дизайну."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
 msgstr "Не вдалося оновити Ваш дизайн."
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
 msgstr "Ви не можете блокувати самого себе!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "Спроба заблокувати користувача невдала."
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "Спроба розблокувати користувача невдала."
 
@@ -326,60 +330,60 @@ msgstr "Пряме повідомлення до %s"
 msgid "All the direct messages sent to %s"
 msgstr "Всі прямі повідомлення надіслані до %s"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "Повідомлення без тексту!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "Надто довго. Максимальний розмір %d знаків."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Отримувача не знайдено."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 "Не можна надіслати пряме повідомлення користувачеві, який не є Вашим другом."
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Жодних статусів з таким ID."
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "Цей статус вже є обраним."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Не можна позначити як обране."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Цей статус не є обраним."
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "Не можна видалити зі списку обраних."
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "Не вдалося додати користувача: користувача не знайдено."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Не вдалося додати користувача: %s вже присутній у Вашому списку."
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "Не вдалося відмінити підписку: користувача не знайдено."
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
 msgstr "Ви не можете відписатись від самого себе."
 
@@ -395,7 +399,7 @@ msgstr "Не вдалось встановити джерело користув
 msgid "Could not find target user."
 msgstr "Не вдалося знайти цільового користувача."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
@@ -403,95 +407,95 @@ msgstr ""
 "Ім’я користувача повинно складатись з літер нижнього регістру і цифр, ніяких "
 "інтервалів."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Це ім’я вже використовується. Спробуйте інше."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Це недійсне ім’я користувача."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Веб-сторінка має недійсну URL-адресу."
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Повне ім’я задовге (255 знаків максимум)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Опис надто довгий (%d знаків максимум)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Розташування надто довге (255 знаків максимум)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "Забагато додаткових імен! Максимум становить %d."
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Помилкове додаткове ім’я: «%s»."
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "Додаткове ім’я «%s» вже використовується. Спробуйте інше."
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "Додаткове ім’я не може бути таким самим що й основне."
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Групу не знайдено."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Ви вже є учасником цієї групи."
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr "Адмін цієї групи заблокував Вашу присутність в ній."
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "Не вдалось долучити користувача %1$s до групи %2$s."
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
 msgstr "Ви не є учасником цієї групи."
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -521,7 +525,7 @@ msgstr "%s групи"
 msgid "groups on %s"
 msgstr "групи на %s"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "Збій при завантаженні."
 
@@ -535,9 +539,9 @@ msgstr "Невірний токен."
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -583,8 +587,8 @@ msgstr "Токен запиту %s було скасовано і відхиле
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -649,18 +653,18 @@ msgstr "Цей метод потребує або НАПИСАТИ, або ВИ
 msgid "You may not delete another user's status."
 msgstr "Ви не можете видалити статус іншого користувача."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Такого допису немає."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Не можу повторити Ваш власний допис."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Цей допис вже повторено."
 
@@ -672,21 +676,21 @@ msgstr "Статус видалено."
 msgid "No status with that ID found."
 msgstr "Не знайдено жодних статусів з таким ID."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr "Клієнт мусить надати параметр «статус» зі значенням."
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "Надто довго. Максимальний розмір допису — %d знаків."
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Не знайдено."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -888,7 +892,9 @@ msgid "Yes"
 msgstr "Так"
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Блокувати користувача"
 
@@ -930,11 +936,13 @@ msgstr "Список користувачів блокованих в цій г
 msgid "Unblock user from group"
 msgstr "Розблокувати користувача"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Розблокувати"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Розблокувати цього користувача"
 
@@ -973,9 +981,9 @@ msgstr "Цю адресу вже підтверджено."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -983,7 +991,7 @@ msgstr "Не вдалося оновити користувача."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Не вдалося видалити підтвердження поштової адреси."
@@ -1019,9 +1027,10 @@ msgstr "Додаток не виявлено."
 msgid "You are not the owner of this application."
 msgstr "Ви не є власником цього додатку."
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr "Виникли певні проблеми з токеном поточної сесії."
 
@@ -1055,7 +1064,7 @@ msgstr "Видалити додаток"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Не увійшли."
@@ -1116,7 +1125,6 @@ msgstr "Видалити цього користувача"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr "Дизайн"
 
@@ -1237,13 +1245,13 @@ msgstr "Оновити налаштування за замовчуванням"
 msgid "Reset back to default"
 msgstr "Повернутись до початкових налаштувань"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Зберегти"
@@ -1399,7 +1407,7 @@ msgstr "Поточна підтверджена поштова адреса."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1417,22 +1425,26 @@ msgstr ""
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "Скасувати"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "Електронна адреса, на зразок «UserName@example.org»"
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1440,110 +1452,110 @@ msgstr "Додати"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "Вхідна пошта"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Надсилайте дописи на цю адресу і їх буде опубліковано на сайті."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Створити нову адресу для надсилання повідомлень; видалити стару."
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "Нове"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Преференції ел. пошти"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Поівдомляти мене поштою про нові підписки."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "Надсилати мені листа, коли хтось додає мій допис до списку обраних."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Надсилати мені листа, коли хтось має приватне повідомлення для мене."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "Надсилати мені листа, коли на мій допис з’являється «@-відповідь»."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "Дозволити друзям «розштовхати» мене, надіславши мені листа."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Я хочу надсилати дописи поштою."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Позначати міткою MicroID мою електронну адресу."
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Преференції пошти збережно."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Немає електронної адреси."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Не можна полагодити цю поштову адресу"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Це недійсна електронна адреса."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Це і є Вашою адресою."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Ця електронна адреса належить іншому користувачу."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Не вдалося додати код підтвердження."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1555,50 +1567,50 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Не очікується підтвердження для скасування."
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "Це помилкова адреса електронної пошти."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Підтвердження електронної пошти скасовано."
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
 msgstr "Це не є Вашою адресою."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Адреса була видалена."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Немає адреси для вхідної пошти."
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "Не вдалося оновити запис користувача."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Адресу вхідної пошти видалено."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Нову адресу для вхідних повідомлень додано."
 
@@ -1715,7 +1727,7 @@ msgstr "Не вдалося перетворити токени запиту н
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr "Невідома версія протоколу OMB."
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "Помилка при оновленні віддаленого профілю."
 
@@ -1772,7 +1784,7 @@ msgstr "Користувача заблоковано в цій групі."
 msgid "User is not a member of group."
 msgstr "Користувач не є учасником групи."
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Блокувати користувача в групі"
 
@@ -1854,37 +1866,47 @@ msgstr "Логотип оновлено."
 msgid "Failed updating logo."
 msgstr "Оновлення логотипу завершилось невдачею."
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
 msgstr "Учасники групи %s"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr "Учасники групи %1$s, сторінка %2$d"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr "Список учасників цієї групи."
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "Адмін"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "Блок"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "Надати користувачеві права адміністратора"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "Зробити адміном"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr "Надати цьому користувачеві права адміністратора"
 
@@ -2027,7 +2049,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -2038,65 +2063,65 @@ msgstr ""
 "GTalk."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Преференції ІМ"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Повідомляти мене через Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Надсилати дописи на сайт, коли мій статус Jabber/GTalk змінюється."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Надсилати також мені відповіді через Jabber/GTalk від людей, до яких я не "
 "підписаний."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Позначати міткою MicroID мою адресу Jabber/GTalk."
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Преференції збережно."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Немає Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Не можна полагодити цей Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Це недійсний Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Це і є Ваш Jabber ID."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID вже належить іншому користувачу."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -2106,28 +2131,28 @@ msgstr ""
 "затведити %s для відправлення вам повідомлень."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Це помилкова адреса IM."
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "Не вдалося видалити підтвердження ІМ."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Підтвердження ІМ скасовано."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Це не Ваш Jabber ID."
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr "Адреса ІМ була видалена."
 
@@ -2600,8 +2625,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "URL-адреса %s лише в простому HTTP, будь ласка."
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Такий формат даних не підтримується."
 
@@ -2743,7 +2768,7 @@ msgid "Password saved."
 msgstr "Пароль збережено."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "Шлях"
 
@@ -2955,7 +2980,7 @@ msgstr "Повне ім’я"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Веб-сторінка"
 
@@ -3061,7 +3086,7 @@ msgid "Couldn't save tags."
 msgstr "Не вдалося зберегти теґи."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Налаштування збережено."
 
@@ -3598,7 +3623,7 @@ msgstr "Користувача ізольовано доки наберетьс
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Сесії"
 
@@ -3636,24 +3661,24 @@ msgid "Application profile"
 msgstr "Профіль додатку"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "Іконка"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "Ім’я"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "Організація"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Опис"
 
@@ -3768,7 +3793,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "Це спосіб поділитись з усіма тим, що вам подобається."
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Група %s"
@@ -3820,7 +3845,7 @@ msgstr "Стрічка дописів групи %s (Atom)"
 msgid "FOAF for %s group"
 msgstr "FOAF для групи %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Учасники"
 
@@ -4276,7 +4301,7 @@ msgstr "Код не введено"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "Снепшоти"
 
@@ -4965,18 +4990,18 @@ msgid "Problem saving notice."
 msgstr "Проблема при збереженні допису."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "Задається невірний тип для saveKnownGroups"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "Проблема при збереженні вхідних дописів для групи."
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -5007,7 +5032,7 @@ msgid "Unable to save tag."
 msgstr "Не вдається зберегти теґ."
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr "Вас позбавлено можливості підписатись."
 
@@ -5155,7 +5180,8 @@ msgid "Change site configuration"
 msgstr "Змінити конфігурацію сайту"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "Адмін"
@@ -5232,7 +5258,7 @@ msgstr "Пошук"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "Об’яви на сайті"
 
@@ -5296,7 +5322,10 @@ msgid "StatusNet software license"
 msgstr "Ліцензія програмного забезпечення StatusNet"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5306,13 +5335,16 @@ msgstr ""
 "site.broughtbyurl%%)."
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** — це сервіс мікроблоґів."
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5324,50 +5356,51 @@ msgstr ""
 "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)."
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "Ліцензія змісту сайту"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "Зміст і дані %1$s є приватними і конфіденційними."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "Авторські права на зміст і дані належать %1$s. Всі права захищено."
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 "Авторські права на зміст і дані належать розробникам. Всі права захищено."
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "Весь зміст і дані %1$s доступні на умовах ліцензії %2$s."
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "Нумерація сторінок"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "Вперед"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "Назад"
 
@@ -5377,208 +5410,243 @@ msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 "В очікуванні кореневого елементу веб-стрічки, отримали цілий документ XML."
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "Поки що не можу обробити віддалений контент."
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "Поки що не можу обробити вбудований XML контент."
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "Поки що не можу обробити вбудований контент Base64."
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
 msgstr "Ви не можете щось змінювати на цьому сайті."
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "Для цієї панелі зміни не припустимі."
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() не виконано."
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() не виконано."
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr "Немає можливості видалити налаштування дизайну."
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "Основна конфігурація сайту"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "Сайт"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "Конфігурація дизайну"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
 msgstr "Дизайн"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "Конфігурація користувача"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "Користувач"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "Прийняти конфігурацію"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "Конфігурація шляху"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "Конфігурація сесій"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Редагувати повідомлення сайту"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "Конфігурація знімків"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 "API-ресурс вимагає дозвіл типу «читання-запис», але у вас є лише доступ для "
 "читання."
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "Немає додатків для даного споживчого ключа."
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "Токен погодження невірний."
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "Немає користувача для цього токену."
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "Не вдалося автентифікувати Вас."
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr "Спроба скасувати невідомий токен."
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr "Не вдалося видалити скасований токен."
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "Керувати додатками"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "Іконка для цього додатку"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
 msgstr "Опишіть додаток, вкладаючись у %d знаків"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Опишіть Ваш додаток"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "URL-адреса веб-сторінки цього додатку"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "URL-адреса"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "Організація, відповідальна за цей додаток"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "URL-адреса веб-сторінки організації"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "URL-адреса, на яку перенаправляти після автентифікації"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "Браузер"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "Десктоп"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "Тип додатку, браузер або десктоп"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "Лише читання"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "Читати-писати"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 "Дозвіл за замовчуванням для цього додатку: лише читання або читати-писати"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Скасувати"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "читання/запис"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "лише читання"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "Підтверджено доступ %1$s — «%2$s»."
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Відкликати"
@@ -5598,11 +5666,13 @@ msgstr "Автор"
 msgid "Provider"
 msgstr "Провайдер"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "Дописи, до яких прикріплено це вкладення"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "Теґи для цього вкладення"
 
@@ -5614,6 +5684,11 @@ msgstr "Не вдалося змінити пароль"
 msgid "Password changing is not allowed"
 msgstr "Змінювати пароль не дозволено"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "Блок"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "Результати команди"
@@ -5864,7 +5939,7 @@ msgid "You are not subscribed to anyone."
 msgstr "Ви не маєте жодних підписок."
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -5880,7 +5955,7 @@ msgid "No one is subscribed to you."
 msgstr "До Вас ніхто не підписаний."
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -5896,7 +5971,7 @@ msgid "You are not a member of any groups."
 msgstr "Ви не є учасником жодної групи."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
@@ -5905,6 +5980,7 @@ msgstr[0] "Ви є учасником групи:"
 msgstr[1] "Ви є учасником таких груп:"
 msgstr[2] "Ви є учасником таких груп:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -6122,35 +6198,75 @@ msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 "Додаткові імена для групи, відокремлювати комами або пробілами, максимум %d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "Група"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "Група %s"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "Учасники"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "Учасники групи %s"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Ð\91лок"
+msgstr "Ð\97аблокованÑ\96"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s заблокувані користувачі"
+msgstr "Заблоковані користувачі %s"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr "Редагувати властивості групи %s"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Лого"
+msgstr "Логотип"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr "Додати або редагувати логотип %s"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr "Додати або редагувати дизайн %s"
 
@@ -6185,7 +6301,8 @@ msgstr "Цей файл завеликий. Максимальний розмі
 msgid "Partial upload."
 msgstr "Часткове завантаження."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Система відповіла помилкою при завантаженні цього файла."
 
@@ -6590,15 +6707,18 @@ msgstr ""
 msgid "Unsupported message type: %s"
 msgstr "Формат повідомлення не підтримується: %s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr "Виникла помилка під час завантаження Вашого файлу. Спробуйте ще."
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "Завантажений файл перевищив UPLOAD_MAX_FILESIZE вказаний у php.ini."
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
@@ -6606,43 +6726,61 @@ msgstr ""
 "Завантажений файл перевищив MAX_FILE_SIZE котрий було встановлено для форми "
 "HTML."
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "Файл було завантажено частково."
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "Загублено тимчасову теку."
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "Запис файлу на диск скасовано."
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "Завантаження файлу зупинено розширенням."
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "Файл перевищив квоту користувача."
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "Файл не може бути переміщений у директорію призначення."
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "Не вдається визначити MIME-тип файлу."
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr " Спробуйте використати інший %s формат."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr ""
+"Тип файлів «%1$s» тепер не підтримується на даному сервері. Спробуйте "
+"використати інший формат %2$s."
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "%s не підтримується як тип файлів на цьому сервері."
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "Тип файлів «%s» тепер не підтримується на даному сервері."
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6760,26 +6898,23 @@ msgid "Send a nudge to this user"
 msgstr "Спробувати «розштовхати» цього користувача"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Помилка при додаванні нового профілю"
+msgid "Error inserting new profile."
+msgstr "Помилка при додаванні нового профілю."
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Помилка при додаванні аватари"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Помилка при оновленні віддаленого профілю"
+msgid "Error inserting avatar."
+msgstr "Помилка при додаванні аватари."
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Помилка при додаванні віддаленого профілю"
+msgid "Error inserting remote profile."
+msgstr "Помилка при додаванні віддаленого профілю."
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "Дублікат допису"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "Дублікат допису."
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Не вдалося додати нову підписку."
 
@@ -6816,7 +6951,8 @@ msgstr "Надіслані вами повідомлення"
 msgid "Tags in %s's notices"
 msgstr "Теґи у дописах %s"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "Невідомо"
 
@@ -6910,19 +7046,24 @@ msgstr "Пісочниця"
 msgid "Sandbox this user"
 msgstr "Ізолювати, відіслати користувача гратися у пісочниці"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "Пошук"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "Ключові слова"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr "Пошук"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "Пошук"
 
@@ -7036,6 +7177,8 @@ msgstr ""
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
 msgstr ""
+"У темі містяться файли, що мають небезпечні розширення; це може виявитися "
+"небезпечним."
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -7121,56 +7264,68 @@ msgid "Moderator"
 msgstr "Модератор"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "мить тому"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "хвилину тому"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "близько %d хвилин тому"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "хвилину тому"
+msgstr[1] "%d хвилин тому"
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "годину тому"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "близько %d годин тому"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "годину тому"
+msgstr[1] "%d годин тому"
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "день тому"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "близько %d днів тому"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "день тому"
+msgstr[1] "%d днів тому"
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "місяць тому"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "близько %d місяців тому"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "місяць тому"
+msgstr[1] "%d місяців тому"
+msgstr[2] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "рік тому"
 
index 32b5eb0c4d7745bc5683ce2ff9689caf2b098780..2c99c22900bb4171b4a24f25242ce66e194597a4 100644 (file)
@@ -1,27 +1,29 @@
-# Translation of StatusNet to Vietnamese
+# Translation of StatusNet - Core to Vietnamese (Tiếng Việt)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Minh Nguyen
+# Author: Minh Nguyen
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:27+0000\n"
-"Language-Team: Vietnamese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:30+0000\n"
+"Language-Team: Vietnamese <http://translatewiki.net/wiki/Portal:vi>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: vi\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "Truy cập"
 
@@ -59,25 +61,25 @@ msgstr "Đóng"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "Lưu"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -136,39 +138,41 @@ msgstr ""
 msgid "You and friends"
 msgstr "Bạn và bạn bè"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "Phương thức này yêu cầu là POST."
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "Người dùng không có thông tin."
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -178,10 +182,6 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockcreate.php:105
-msgid "You cannot block yourself!"
-msgstr ""
-
 #: actions/apidirectmessage.php:89
 #, php-format
 msgid "Direct messages from %s"
@@ -192,44 +192,45 @@ msgstr "Bạn có tin nhắn riêng từ %s"
 msgid "Direct messages to %s"
 msgstr "Bạn có tin nhắn riêng từ %s"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessage.php:105
+#, php-format
+msgid "All the direct messages sent to %s"
+msgstr ""
+
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 "Bạn có thể cập nhật hồ sơ cá nhân tại đây để mọi người có thể biết thông tin "
 "về bạn."
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "Không tìm thấy mã xác nhận."
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó."
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "Không thể tạo favorite."
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "Không thể tạo favorite."
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
 msgstr "Không thể theo bạn này: %s đã có trong danh sách bạn bè của bạn rồi."
 
-#: actions/apifriendshipsdestroy.php:120
-msgid "You cannot unfollow yourself."
-msgstr ""
-
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
 msgstr ""
@@ -242,87 +243,81 @@ msgstr "Không thể cập nhật thành viên."
 msgid "Could not find target user."
 msgstr "Không thể cập nhật thành viên."
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "Biệt hiệu phải là chữ viết thường hoặc số và không có khoảng trắng."
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác."
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "Biệt hiệu không hợp lệ."
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "Trang chủ không phải là URL"
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)."
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "Tên khu vực quá dài (không quá %d ký tự)."
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "Tên khu vực quá dài (không quá 255 ký tự)."
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "Địa chỉ email không đúng:%s"
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "Không tìm thấy nhóm."
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
 msgstr "Bạn chưa cập nhật thông tin riêng"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
 msgstr ""
 
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
-msgstr ""
-
 #. TRANS: Message is used as a title. %s is a site name.
 #. TRANS: Message is used as a page title. %s is a nick name.
 #: actions/apigrouplistall.php:92 actions/usergroups.php:63
@@ -336,9 +331,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -369,8 +364,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -431,18 +426,18 @@ msgstr "Phương thức này yêu cầu là POST hoặc DELETE"
 msgid "You may not delete another user's status."
 msgstr "Bạn đã không xóa trạng thái của những người khác."
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "Không có tin nhắn nào."
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
 msgstr "Không thể xóa tin nhắn này."
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "Không thể xóa tin nhắn này."
 
@@ -450,15 +445,15 @@ msgstr "Không thể xóa tin nhắn này."
 msgid "No status with that ID found."
 msgstr "Không tìm thấy trạng thái nào tương ứng với ID đó."
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "Không tìm thấy."
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -478,6 +473,11 @@ msgstr "Dòng tin nhắn cho %s"
 msgid "%1$s / Updates mentioning %2$s"
 msgstr "Trạng thái của %1$s vào %2$s"
 
+#: actions/apitimelinementions.php:131
+#, php-format
+msgid "%1$s updates that reply to updates from %2$s / %3$s."
+msgstr ""
+
 #: actions/apitimelinepublic.php:202 actions/publicrss.php:105
 #, php-format
 msgid "%s updates from everyone!"
@@ -574,20 +574,10 @@ msgid ""
 "will not be notified of any @-replies from them."
 msgstr ""
 
-#. TRANS: Button label on the user block form.
-#. TRANS: Button label on the delete application form.
-#. TRANS: Button label on the delete notice form.
-#. TRANS: Button label on the delete user form.
-#. TRANS: Button label on the form to block a user from a group.
-#: actions/block.php:153 actions/deleteapplication.php:154
-#: actions/deletenotice.php:147 actions/deleteuser.php:152
-#: actions/groupblock.php:178
-msgctxt "BUTTON"
-msgid "No"
-msgstr ""
-
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "Bỏ chặn người dùng này"
 
@@ -611,20 +601,17 @@ msgstr ""
 msgid "No such group."
 msgstr "Không có user nào."
 
-#: actions/blockedfromgroup.php:100
-#, php-format
-msgid "%1$s blocked profiles, page %2$d"
-msgstr ""
-
 #: actions/blockedfromgroup.php:115
 msgid "A list of the users blocked from joining this group."
 msgstr ""
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "Bỏ chặn"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "Bỏ chặn người dùng này"
 
@@ -646,12 +633,6 @@ msgstr "Không tìm thấy mã xác nhận."
 msgid "That confirmation code is not for you!"
 msgstr "Mã xác nhận này không phải của bạn!"
 
-#. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
-#: actions/confirmaddress.php:91
-#, php-format
-msgid "Unrecognized address type %s."
-msgstr ""
-
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
@@ -663,9 +644,9 @@ msgstr "Địa chỉ đó đã được xác nhận rồi."
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -673,7 +654,7 @@ msgstr "Không thể cập nhật thành viên."
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "Không thể xóa email xác nhận."
@@ -713,7 +694,7 @@ msgstr ""
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "Chưa đăng nhập."
@@ -722,12 +703,6 @@ msgstr "Chưa đăng nhập."
 msgid "Can't delete this notice."
 msgstr "Không thể xóa tin nhắn này."
 
-#: actions/deletenotice.php:103
-msgid ""
-"You are about to permanently delete a notice. Once this is done, it cannot "
-"be undone."
-msgstr ""
-
 #: actions/deletenotice.php:109 actions/deletenotice.php:141
 msgid "Delete notice"
 msgstr "Xóa tin nhắn"
@@ -749,7 +724,6 @@ msgstr ""
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -757,11 +731,6 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "Thay đổi"
@@ -770,23 +739,10 @@ msgstr "Thay đổi"
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
 
-#: actions/designadminpanel.php:486 lib/designsettings.php:101
-msgid "Change background image"
-msgstr ""
-
-#: actions/designadminpanel.php:491 actions/designadminpanel.php:574
-#: lib/designsettings.php:178
-msgid "Background"
-msgstr ""
-
 #. TRANS: Used as radio button label to add a background image.
 #: actions/designadminpanel.php:527 lib/designsettings.php:139
 msgid "On"
@@ -801,10 +757,6 @@ msgstr ""
 msgid "Turn background image on or off."
 msgstr ""
 
-#: actions/designadminpanel.php:550 lib/designsettings.php:161
-msgid "Tile background image"
-msgstr ""
-
 #: actions/designadminpanel.php:613 lib/designsettings.php:217
 msgid "Text"
 msgstr "Chuỗi bất kỳ"
@@ -829,21 +781,17 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "Lưu"
 
-#: actions/designadminpanel.php:686 lib/designsettings.php:257
-msgid "Save design"
-msgstr ""
-
 #: actions/disfavor.php:94
 msgid "Add to favorites"
 msgstr "Ưa thích"
@@ -853,8 +801,8 @@ msgstr "Ưa thích"
 msgid "No such document \"%s\""
 msgstr "Không có tin nhắn nào."
 
-#: actions/editapplication.php:54
-msgid "Edit Application"
+#: actions/editapplication.php:161
+msgid "Use this form to edit your application."
 msgstr ""
 
 #: actions/editapplication.php:194
@@ -918,7 +866,7 @@ msgstr "Đã xác nhận địa chỉ này."
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -933,112 +881,97 @@ msgstr ""
 "Đang đợi xác nhận đến địa chỉ này. Hãy kiểm tra hộp thư đến (hoặc thư rác) "
 "để nhận tin nhắn và lời hướng dẫn."
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
-msgid "Email address, like \"UserName@example.org\""
-msgstr ""
-
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
+#. TRANS: Form legend for incoming e-mail settings form.
+#. TRANS: Form legend for incoming SMS settings form.
+#: actions/emailsettings.php:151 actions/smssettings.php:171
+msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr "Gửi email đến địa chỉ này để đưa tin nhắn mới lên."
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr "Tạo một địa chỉ email mới để đưa tin nhắn lên; và xóa "
 
-#. TRANS: Button label for adding an e-mail address to send notices from.
-#. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
-msgctxt "BUTTON"
-msgid "New"
-msgstr ""
-
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Địa chỉ email"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "Hãy gửi email cho tôi thông báo về các đăng nhận mới."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 "Gửi email thông báo tôi khi có ai đó lưu tin nhắn của tôi vào danh sách ưa "
 "thích của họ."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "Gửi email báo cho tôi biết khi có ai đó gửi tin nhắn riêng cho tôi."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "Tôi muốn đưa tin nhắn lên bằng email."
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "Xuất bản một MicroID đến địa chỉ email của tôi."
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "Không có địa chỉ email."
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "Không thể bình thường hóa Jabber ID"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "Địa chỉ email không hợp lệ."
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
 msgstr "Tài khoản đó đã là tên tài khoản Jabber của bạn rồi."
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "Jabber ID này đã thuộc về người khác rồi."
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "Không thể  chèn mã xác nhận."
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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."
@@ -1049,32 +982,32 @@ msgstr ""
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "Sự xác nhận chưa được hủy bỏ."
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "Sự xác nhận chưa được hủy bỏ."
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
 msgstr "Không có địa chỉ email."
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "Không có địa chỉ email."
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr "Không có địa chỉ email."
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "Không có địa chỉ email."
 
@@ -1087,10 +1020,6 @@ msgstr "Tin nhắn này đã có trong danh sách tin nhắn ưa thích của b
 msgid "Popular notices"
 msgstr "Không có tin nhắn nào."
 
-#: actions/favorited.php:79
-msgid "The most popular notices on the site right now."
-msgstr ""
-
 #: actions/favorited.php:150
 msgid "Favorite notices appear on this page but no one has favorited one yet."
 msgstr ""
@@ -1119,6 +1048,11 @@ msgstr "Những tin nhắn ưa thích của %s"
 msgid "Updates favored by %1$s on %2$s!"
 msgstr "Dòng tin nhắn cho %s"
 
+#: actions/featured.php:69 lib/featureduserssection.php:87
+#: lib/publicgroupnav.php:89
+msgid "Featured users"
+msgstr ""
+
 #: actions/featured.php:71
 #, php-format
 msgid "Featured users, page %d"
@@ -1141,10 +1075,6 @@ msgstr "Không có tin nhắn nào."
 msgid "Not expecting this response!"
 msgstr "Không mong đợi trả lời lại!"
 
-#: actions/finishremotesubscribe.php:80
-msgid "User being listened to does not exist."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
 msgstr "Bạn có thể đăng ký tại nơi bạn ở!"
@@ -1157,14 +1087,6 @@ msgstr ""
 msgid "You are not authorized."
 msgstr "Đăng nhận được phép"
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
-#: actions/finishremotesubscribe.php:118
-msgid "Remote service uses unknown version of OMB protocol."
-msgstr ""
-
 #: actions/getfile.php:83
 msgid "Cannot read file."
 msgstr "Không thể tạo favorite."
@@ -1173,6 +1095,12 @@ msgstr "Không thể tạo favorite."
 msgid "This role is reserved and cannot be set."
 msgstr ""
 
+#: actions/groupblock.php:71 actions/groupunblock.php:71
+#: actions/makeadmin.php:71 actions/subedit.php:46
+#: lib/profileformaction.php:79
+msgid "No profile specified."
+msgstr ""
+
 #: actions/groupblock.php:81 actions/groupunblock.php:81
 #: actions/makeadmin.php:81
 msgid "No group specified."
@@ -1182,11 +1110,7 @@ msgstr ""
 msgid "Only an admin can block group members."
 msgstr ""
 
-#: actions/groupblock.php:95
-msgid "User is already blocked from group."
-msgstr ""
-
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "Chặn người dùng"
 
@@ -1198,6 +1122,10 @@ msgid ""
 "the group in the future."
 msgstr ""
 
+#: actions/groupblock.php:206
+msgid "Database error blocking user from group."
+msgstr ""
+
 #: actions/groupbyid.php:74 actions/userbyid.php:70
 msgid "No ID."
 msgstr "Không có Jabber ID."
@@ -1216,28 +1144,29 @@ msgstr "Nhóm"
 msgid "Pick a square area of the image to be the logo."
 msgstr ""
 
-#: actions/groupmembers.php:103
-#, php-format
-msgid "%1$s group members, page %2$d"
-msgstr ""
-
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:487
-msgid "Make user an admin of the group"
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
+msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1250,11 +1179,6 @@ msgstr ""
 msgid "%s timeline"
 msgstr "Dòng tin công cộng"
 
-#: actions/groups.php:64
-#, php-format
-msgid "Groups, page %d"
-msgstr ""
-
 #: actions/groups.php:90
 #, php-format
 msgid ""
@@ -1265,15 +1189,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
-#: actions/groupsearch.php:79 actions/noticesearch.php:117
-#: actions/peoplesearch.php:83
-msgid "No results."
-msgstr ""
-
 #: actions/groupsearch.php:82
 #, php-format
 msgid ""
@@ -1309,11 +1224,6 @@ msgstr ""
 "Bạn có thể gửi và nhận những tin nhắn qua Jabber hoặc GTalk [tin nhắn nhanh]"
 "(%%doc.im%%). Định dạng địa chỉ của bạn và các thiết lập sau."
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1337,7 +1247,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1347,65 +1260,65 @@ msgstr ""
 "tạo thêm %s vào danh sách buddy trên IM client hoặc GTalk của bạn."
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "Các tính năng đã được lưu."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr "Hãy gửi tin nhắn đến tôi qua Jabber hay GTalk"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr "Gửi một tin nhắn khi trạng thái của tôi trên Jabber hay GTalk "
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 "Gửi những tin nhắn trả lời của tôi từ những người mà tôi không theo qua "
 "Jabber/GTalk."
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
 msgstr "Gửi MicroID đến địa chỉ Jabber/GTalk của tôi. "
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "Các tính năng đã được lưu."
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "Không có Jabber ID."
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "Không thể bình thường hóa Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "Jabber ID không hợp lệ"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
 msgstr "Tài khoản đó đã là tên tài khoản Jabber của bạn rồi."
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID này đã thuộc về người khác rồi."
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1415,18 +1328,18 @@ msgstr ""
 "tin nhắn đến bạn."
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr "Sai IM."
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "Không có mã số xác nhận."
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
 msgstr "Đây không phải Jabber ID của bạn."
 
@@ -1515,12 +1428,6 @@ msgstr "Tin nhắn cá nhân"
 msgid "Optionally add a personal message to the invitation."
 msgstr "Không bắt buộc phải thêm thông điệp vào thư mời."
 
-#. TRANS: Send button for inviting friends
-#: actions/invite.php:198
-msgctxt "BUTTON"
-msgid "Send"
-msgstr ""
-
 #. TRANS: Subject for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:228
 #, php-format
@@ -1626,30 +1533,10 @@ msgstr ""
 "Vì lý do bảo mật, bạn hãy nhập lại tên đăng nhập và mật khẩu trước khi thay "
 "đổi trong điều chỉnh."
 
-#: actions/login.php:295
-#, php-format
-msgid ""
-"Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr ""
-
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
 msgstr ""
 
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/makeadmin.php:146
-#, php-format
-msgid "Can't make %1$s an admin for group %2$s."
-msgstr ""
-
-#: actions/microsummary.php:69
-msgid "No current status."
-msgstr ""
-
 #: actions/newapplication.php:143
 msgid "Use this form to register a new application."
 msgstr ""
@@ -1688,14 +1575,6 @@ msgid ""
 "Don't send a message to yourself; just say it to yourself quietly instead."
 msgstr ""
 
-#: actions/newmessage.php:181
-msgid "Message sent"
-msgstr ""
-
-#: actions/newmessage.php:210 actions/newnotice.php:261 lib/channel.php:189
-msgid "Ajax Error"
-msgstr ""
-
 #: actions/newnotice.php:69
 msgid "New notice"
 msgstr "Thông báo mới"
@@ -1736,11 +1615,6 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
 #: actions/noticesearchrss.php:98
 #, php-format
 msgid "Updates matching search term \"%1$s\" on %2$s!"
@@ -1751,6 +1625,10 @@ msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
 msgstr ""
 
+#: actions/oauthappssettings.php:74
+msgid "OAuth applications"
+msgstr ""
+
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
 msgstr ""
@@ -1760,6 +1638,10 @@ msgstr ""
 msgid "You have not registered any applications yet."
 msgstr ""
 
+#: actions/oauthconnectionssettings.php:72
+msgid "Connected applications"
+msgstr ""
+
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
 msgstr ""
@@ -1786,12 +1668,6 @@ msgstr "Người dùng không có thông tin."
 msgid "%1$s's status on %2$s"
 msgstr "Trạng thái của %1$s vào %2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1799,8 +1675,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "Không hỗ trợ định dạng dữ liệu này."
 
@@ -1832,14 +1708,14 @@ msgstr ""
 msgid "Show or hide profile designs."
 msgstr ""
 
-#: actions/otp.php:69
-msgid "No user ID specified."
-msgstr ""
-
 #: actions/otp.php:90
 msgid "No login token requested."
 msgstr "Không có yêu cầu!"
 
+#: actions/otp.php:104
+msgid "Login token expired."
+msgstr ""
+
 #: actions/outbox.php:61
 #, php-format
 msgid "Outbox for %s"
@@ -1901,7 +1777,7 @@ msgid "Password saved."
 msgstr "Đã lưu mật khẩu."
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1909,26 +1785,6 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:163
-#, php-format
-msgid "Avatar directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
-msgstr ""
-
 #: actions/pathsadminpanel.php:183
 msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
@@ -1973,26 +1829,6 @@ msgstr ""
 msgid "Theme directory"
 msgstr ""
 
-#: actions/pathsadminpanel.php:292
-msgid "Avatar directory"
-msgstr ""
-
-#: actions/pathsadminpanel.php:301
-msgid "Backgrounds"
-msgstr ""
-
-#: actions/pathsadminpanel.php:305
-msgid "Background server"
-msgstr ""
-
-#: actions/pathsadminpanel.php:309
-msgid "Background path"
-msgstr ""
-
-#: actions/pathsadminpanel.php:313
-msgid "Background directory"
-msgstr ""
-
 #: actions/pathsadminpanel.php:325
 msgid "Always"
 msgstr ""
@@ -2005,18 +1841,10 @@ msgstr ""
 msgid "When to use SSL"
 msgstr ""
 
-#: actions/pathsadminpanel.php:335
-msgid "SSL server"
-msgstr ""
-
 #: actions/pathsadminpanel.php:336
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2066,7 +1894,7 @@ msgstr "Tên đầy đủ"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "Trang chủ hoặc Blog"
 
@@ -2074,15 +1902,6 @@ msgstr "Trang chủ hoặc Blog"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr "URL về Trang chính, Blog, hoặc hồ sơ cá nhân của bạn trên "
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "Lý lịch"
@@ -2157,7 +1976,7 @@ msgid "Couldn't save profile."
 msgstr "Không thể lưu hồ sơ cá nhân."
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "Đã lưu các điều chỉnh."
 
@@ -2170,10 +1989,6 @@ msgstr ""
 msgid "Public timeline"
 msgstr "Dòng tin công cộng"
 
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2208,10 +2023,6 @@ msgid ""
 "tool."
 msgstr ""
 
-#: actions/publictagcloud.php:57
-msgid "Public tag cloud"
-msgstr ""
-
 #: actions/publictagcloud.php:63
 #, php-format
 msgid "These are most popular recent tags on %s "
@@ -2429,33 +2240,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
-#: actions/register.php:583
-#, php-format
-msgid ""
-"Congratulations, %1$s! And welcome to %%%%site.name%%%%. From here, you may "
-"want to...\n"
-"\n"
-"* Go to [your profile](%2$s) and post your first message.\n"
-"* Add a [Jabber/GTalk address](%%%%action.imsettings%%%%) so you can send "
-"notices through instant messages.\n"
-"* [Search for people](%%%%action.peoplesearch%%%%) that you may know or that "
-"share your interests. \n"
-"* Update your [profile settings](%%%%action.profilesettings%%%%) to tell "
-"others more about you. \n"
-"* Read over the [online docs](%%%%doc.help%%%%) for features you may have "
-"missed. \n"
-"\n"
-"Thanks for signing up and we hope you enjoy using this service."
-msgstr ""
-
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
@@ -2509,18 +2293,10 @@ msgstr "Theo bạn này"
 msgid "Invalid profile URL (bad format)"
 msgstr "URL hồ sơ cá nhân không đúng định dạng."
 
-#: actions/remotesubscribe.php:168
-msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)."
-msgstr ""
-
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
 msgstr ""
@@ -2580,13 +2356,9 @@ msgstr "%s chào mừng bạn "
 msgid "StatusNet"
 msgstr "Số liệu thống kê"
 
-#: actions/sandbox.php:72
-msgid "User is already sandboxed."
-msgstr ""
-
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2611,18 +2383,13 @@ msgid "Turn on debugging output for sessions."
 msgstr ""
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
-#. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
-msgid "Organization"
-msgstr ""
-
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "Mô tả"
 
@@ -2636,10 +2403,18 @@ msgstr "Số liệu thống kê"
 msgid "Created by %1$s - %2$s access by default - %3$d users"
 msgstr ""
 
+#: actions/showapplication.php:213
+msgid "Application actions"
+msgstr ""
+
 #: actions/showapplication.php:236
 msgid "Reset key & secret"
 msgstr ""
 
+#: actions/showapplication.php:261
+msgid "Application info"
+msgstr ""
+
 #: actions/showapplication.php:263
 msgid "Consumer key"
 msgstr ""
@@ -2710,7 +2485,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "Hộp thư đi của %s"
@@ -2747,7 +2522,7 @@ msgstr "Chọn những người bạn của %s"
 msgid "FOAF for %s group"
 msgstr "Hộp thư đi của %s"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "Thành viên"
 
@@ -2784,10 +2559,6 @@ msgstr ""
 msgid "No such message."
 msgstr "Không có tin nhắn nào."
 
-#: actions/showmessage.php:98
-msgid "Only the sender and recipient may read this message."
-msgstr ""
-
 #: actions/shownotice.php:90
 msgid "Notice deleted."
 msgstr "Không có mã nào được nhập"
@@ -2847,10 +2618,6 @@ msgid ""
 "[StatusNet](http://status.net/) tool. "
 msgstr ""
 
-#: actions/silence.php:72
-msgid "User is already silenced."
-msgstr ""
-
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
 msgstr ""
@@ -2960,11 +2727,6 @@ msgstr "Thay đổi hình đại diện"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr "Bạn có thể nhận tin nhắn SMS qua email từ %%site.name%%."
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -3049,7 +2811,7 @@ msgstr "Không có mã nào được nhập"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3057,6 +2819,10 @@ msgstr ""
 msgid "Manage snapshot configuration"
 msgstr "Xac nhan dia chi email"
 
+#: actions/snapshotadminpanel.php:127
+msgid "Invalid snapshot run value."
+msgstr ""
+
 #: actions/snapshotadminpanel.php:133
 msgid "Snapshot frequency must be a number."
 msgstr ""
@@ -3110,11 +2876,6 @@ msgstr "Không thể chèn thêm vào đăng nhận."
 msgid "This action only accepts POST requests."
 msgstr ""
 
-#: actions/subscribers.php:52
-#, php-format
-msgid "%1$s subscribers, page %2$d"
-msgstr ""
-
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
 msgstr "Có nhiều người nghe theo lời nhắn của bạn."
@@ -3190,10 +2951,6 @@ msgstr "Chọn những người bạn của %s"
 msgid "Notice feed for tag %s (Atom)"
 msgstr "Chọn những người bạn của %s"
 
-#: actions/tagother.php:39
-msgid "No ID argument."
-msgstr ""
-
 #: actions/tagother.php:77 lib/userprofile.php:76
 msgid "User profile"
 msgstr "Người dùng không có thông tin."
@@ -3228,6 +2985,12 @@ msgid ""
 "Listenee stream license ‘%1$s’ is not compatible with site license ‘%2$s’."
 msgstr ""
 
+#. TRANS: User admin panel title
+#: actions/useradminpanel.php:59
+msgctxt "TITLE"
+msgid "User"
+msgstr ""
+
 #: actions/useradminpanel.php:70
 msgid "User settings for this StatusNet site."
 msgstr ""
@@ -3275,13 +3038,6 @@ msgstr ""
 msgid "Authorize subscription"
 msgstr "Đăng nhận cho phép"
 
-#: actions/userauthorization.php:110
-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 ""
-
 #: actions/userauthorization.php:196 actions/version.php:167
 msgid "License"
 msgstr ""
@@ -3311,24 +3067,10 @@ msgstr "Không có yêu cầu!"
 msgid "Subscription authorized"
 msgstr "Đăng nhận được phép"
 
-#: actions/userauthorization.php:256
-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 ""
-
 #: actions/userauthorization.php:266
 msgid "Subscription rejected"
 msgstr "Đăng nhận từ chối"
 
-#: actions/userauthorization.php:268
-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 ""
-
 #: actions/userauthorization.php:303
 #, php-format
 msgid "Listener URI ‘%s’ not found here."
@@ -3354,16 +3096,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
-#: actions/userauthorization.php:355
-#, php-format
-msgid "Wrong image type for avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
@@ -3505,6 +3237,11 @@ msgid ""
 "few minutes."
 msgstr ""
 
+#. TRANS: Client exception thrown when a user tries to post while being banned.
+#: classes/Notice.php:291
+msgid "You are banned from posting notices on this site."
+msgstr ""
+
 #. TRANS: Server exception thrown when a notice cannot be saved.
 #. TRANS: Server exception thrown when a notice cannot be updated.
 #: classes/Notice.php:358 classes/Notice.php:385
@@ -3512,13 +3249,13 @@ msgid "Problem saving notice."
 msgstr "Có lỗi xảy ra khi lưu tin nhắn."
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -3538,7 +3275,7 @@ msgid "Cannot revoke role \"%1$s\" for user #%2$d; database error."
 msgstr ""
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3592,9 +3329,9 @@ msgstr "Đang thực hiện việc thay đổi email"
 msgid "Design your profile"
 msgstr "Người dùng không có thông tin."
 
-#. TRANS: Link description in user account settings menu.
-#: lib/accountsettingsaction.php:146
-msgid "Other"
+#. TRANS: Link title attribute in user account settings menu.
+#: lib/accountsettingsaction.php:144
+msgid "Other options"
 msgstr ""
 
 #. TRANS: Page title. %1$s is the title, %2$s is the site name.
@@ -3619,19 +3356,14 @@ msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
 msgstr "Kết nối"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -3642,18 +3374,17 @@ msgctxt "TOOLTIP"
 msgid "Logout from the site"
 msgstr ""
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
 msgid "Login to the site"
 msgstr ""
 
+#: lib/action.php:510
+msgctxt "MENU"
+msgid "Help"
+msgstr "Trợ giúp"
+
 #. TRANS: Tooltip for main menu option "Search"
 #: lib/action.php:513
 msgctxt "TOOLTIP"
@@ -3665,11 +3396,6 @@ msgstr ""
 msgid "Local views"
 msgstr ""
 
-#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
-#: lib/action.php:778
-msgid "Secondary site navigation"
-msgstr ""
-
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
@@ -3705,200 +3431,206 @@ msgstr "Nguồn"
 msgid "Contact"
 msgstr "Liên hệ"
 
-#: lib/action.php:810
-msgid "Badge"
-msgstr ""
-
 #. TRANS: DT element for StatusNet software license.
 #: lib/action.php:839
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn."
 
-#. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
-#, php-format
-msgid ""
-"It runs the [StatusNet](http://status.net/) microblogging software, version %"
-"s, available under the [GNU Affero General Public License](http://www.fsf."
-"org/licensing/licenses/agpl-3.0.html)."
-msgstr ""
-
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
-msgid "After"
-msgstr ""
-
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
-msgid "Before"
-msgstr ""
-
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
+msgid "User"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "Xóa tin nhắn"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
+#. TRANS: Form legend.
+#: lib/applicationeditform.php:129
+msgid "Edit application"
+msgstr ""
+
+#. TRANS: Form guide.
+#: lib/applicationeditform.php:178
+msgid "Icon for this application"
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
 msgstr "Mô tả"
 
 #. TRANS: Form input field instructions.
 #: lib/applicationeditform.php:224
-msgid "URL of the homepage of this application"
-msgstr ""
-
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
 msgid "Organization responsible for this application"
 msgstr ""
 
 #. TRANS: Form input field instructions.
 #: lib/applicationeditform.php:242
-msgid "URL for the homepage of the organization"
-msgstr ""
-
-#. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "Hủy"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "Khôi phục"
 
+#. TRANS: DT element label in attachment list.
+#: lib/attachmentlist.php:88
+msgid "Attachments"
+msgstr ""
+
 #. TRANS: DT element label in attachment list item.
 #: lib/attachmentlist.php:265
 msgid "Author"
@@ -3909,18 +3641,31 @@ msgstr ""
 msgid "Provider"
 msgstr "Xem trước"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
-#: lib/authenticationplugin.php:236
-msgid "Password changing is not allowed"
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
+msgid "Tags for this attachment"
+msgstr ""
+
+#: lib/channel.php:229 lib/mailhandler.php:142
+msgid "Command complete"
 msgstr ""
 
 #: lib/channel.php:240
 msgid "Command failed"
 msgstr "Bạn và bạn bè"
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -3931,13 +3676,6 @@ msgstr ""
 msgid "It does not make a lot of sense to nudge yourself!"
 msgstr ""
 
-#. TRANS: Message given having nudged another user.
-#. TRANS: %s is the nickname of the user that was nudged.
-#: lib/command.php:240
-#, php-format
-msgid "Nudge sent to %s."
-msgstr ""
-
 #. TRANS: User statistics text.
 #. TRANS: %1$s is the number of other user the user is subscribed to.
 #. TRANS: %2$s is the number of users that are subscribed to the user.
@@ -3950,6 +3688,20 @@ msgid ""
 "Notices: %3$s"
 msgstr ""
 
+#. TRANS: Message given having added a user to a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:360
+#, php-format
+msgid "%1$s joined group %2$s."
+msgstr ""
+
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Whois output. %s is the location of the queried user.
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/command.php:438 lib/mail.php:268
@@ -3996,12 +3748,26 @@ msgstr ""
 msgid "Specify the name of the user to subscribe to."
 msgstr ""
 
+#. TRANS: Text shown after having subscribed to another user successfully.
+#. TRANS: %s is the name of the user the subscription was requested for.
+#: lib/command.php:672
+#, php-format
+msgid "Subscribed to %s."
+msgstr ""
+
 #. TRANS: Error text shown when no username was provided when issuing an unsubscribe command.
 #. TRANS: Error text shown when no username was provided when issuing the command.
 #: lib/command.php:694 lib/command.php:804
 msgid "Specify the name of the user to unsubscribe from."
 msgstr ""
 
+#. TRANS: Text shown after having unsubscribed from another user successfully.
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:705
+#, php-format
+msgid "Unsubscribed from %s."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the command "off" with a setting which has not yet been implemented.
 #. TRANS: Error text shown when issuing the command "on" with a setting which has not yet been implemented.
 #: lib/command.php:724 lib/command.php:750
@@ -4013,6 +3779,11 @@ msgstr ""
 msgid "Can't turn off notification."
 msgstr ""
 
+#. TRANS: Error text shown when the command "on" fails for an unknown reason.
+#: lib/command.php:757
+msgid "Can't turn on notification."
+msgstr ""
+
 #. TRANS: Error text shown when issuing the login command while login is disabled.
 #: lib/command.php:771
 msgid "Login command is disabled."
@@ -4025,13 +3796,20 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
 msgstr "Bạn đã theo những người này:"
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4039,7 +3817,7 @@ msgid_plural "You are subscribed to these people:"
 msgstr[0] "Bạn đã theo những người này:"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4047,13 +3825,14 @@ msgid_plural "These people are subscribed to you:"
 msgstr[0] "Không thể tạo favorite."
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "Bạn chưa cập nhật thông tin riêng"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4128,6 +3907,10 @@ msgstr ""
 msgid "Database error"
 msgstr ""
 
+#: lib/designsettings.php:105
+msgid "Upload file"
+msgstr "Tải tập tin lên"
+
 #: lib/designsettings.php:418
 msgid "Design defaults restored."
 msgstr ""
@@ -4181,47 +3964,83 @@ msgstr ""
 msgid "Grant this user the \"%s\" role"
 msgstr ""
 
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
-msgstr ""
-
 #: lib/groupeditform.php:187
 #, php-format
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
-msgstr "Nhóm"
+msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "Chặn người dùng"
+msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "Chặn người dùng"
+msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
+#, php-format
+msgctxt "TOOLTIP"
+msgid "Edit %s group properties"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "Đăng nhập"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
-#: lib/groupsbymemberssection.php:71
-msgid "Groups with most members"
-msgstr ""
-
 #: lib/groupsbypostssection.php:71
 msgid "Groups with most posts"
 msgstr ""
@@ -4244,7 +4063,8 @@ msgstr "Không hỗ trợ kiểu file ảnh này."
 msgid "Partial upload."
 msgstr "Upload từng phần."
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "Hệ thống xảy ra lỗi trong khi tải file."
 
@@ -4252,10 +4072,6 @@ msgstr "Hệ thống xảy ra lỗi trong khi tải file."
 msgid "Not an image or corrupt file."
 msgstr "File hỏng hoặc không phải là file ảnh."
 
-#: lib/imagefile.php:163 lib/imagefile.php:224
-msgid "Unknown file type"
-msgstr ""
-
 #: lib/imagefile.php:244
 msgid "MB"
 msgstr ""
@@ -4278,33 +4094,11 @@ msgstr ""
 msgid "Login with a username and password"
 msgstr "Tên đăng nhập hoặc mật khẩu không hợp lệ."
 
-#: lib/logingroupnav.php:86
-msgid "Sign up for a new account"
-msgstr ""
-
 #. TRANS: Subject for address confirmation email
 #: lib/mail.php:174
 msgid "Email address confirmation"
 msgstr "Xac nhan dia chi email"
 
-#. TRANS: Body for address confirmation email.
-#: lib/mail.php:177
-#, 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 ""
-
 #. TRANS: Subject of new-subscriber notification e-mail
 #: lib/mail.php:243
 #, php-format
@@ -4318,22 +4112,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/mail.php:274
 #, php-format
@@ -4373,12 +4151,6 @@ msgstr ""
 msgid "SMS confirmation"
 msgstr "Xác nhận SMS"
 
-#. TRANS: Main body heading for SMS-by-email address confirmation message
-#: lib/mail.php:463
-#, php-format
-msgid "%s: confirm you own this phone number with this code:"
-msgstr ""
-
 #. TRANS: Subject for 'nudge' notification email
 #: lib/mail.php:484
 #, php-format
@@ -4450,28 +4222,6 @@ msgstr ""
 "Gửi email thông báo tôi khi có ai đó lưu tin nhắn của tôi vào danh sách ưa "
 "thích của họ."
 
-#. TRANS: Body for favorite notification email
-#: lib/mail.php:592
-#, php-format
-msgid ""
-"%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n"
-"\n"
-"The URL of your notice is:\n"
-"\n"
-"%3$s\n"
-"\n"
-"The text of your notice is:\n"
-"\n"
-"%4$s\n"
-"\n"
-"You can see the list of %1$s's favorites here:\n"
-"\n"
-"%5$s\n"
-"\n"
-"Faithfully yours,\n"
-"%6$s\n"
-msgstr ""
-
 #. TRANS: Line in @-reply notification e-mail. %s is conversation URL.
 #: lib/mail.php:651
 #, php-format
@@ -4481,6 +4231,11 @@ msgid ""
 "\t%s"
 msgstr ""
 
+#: lib/mail.php:657
+#, php-format
+msgid "%s (@%s) sent a notice to your attention"
+msgstr ""
+
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
 #, php-format
@@ -4519,10 +4274,6 @@ msgid ""
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
 
-#: lib/mailbox.php:228 lib/noticelist.php:506
-msgid "from"
-msgstr ""
-
 #: lib/mailhandler.php:42
 msgid "Not a registered user."
 msgstr "Không có người dùng nào đăng ký"
@@ -4535,63 +4286,75 @@ msgstr "Xin lỗi, đó không phải là địa chỉ email mà bạn nhập v
 msgid "Sorry, no incoming email allowed."
 msgstr "Xin lỗi, không có địa chỉ email cho phép."
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:146
 msgid "To"
 msgstr ""
 
-#: lib/messageform.php:178 lib/noticeform.php:237
-msgctxt "Send button for sending notice"
-msgid "Send"
-msgstr ""
-
 #: lib/noticeform.php:174
 #, php-format
 msgid "What's up, %s?"
@@ -4605,25 +4368,12 @@ msgstr ""
 msgid "Attach a file"
 msgstr ""
 
-#: lib/noticeform.php:213
-msgid "Share my location"
-msgstr ""
-
-#: lib/noticeform.php:216
-msgid "Do not share my location"
-msgstr ""
-
 #: lib/noticeform.php:217
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
 msgstr ""
 
-#. TRANS: Used in coordinates as abbreviation of north
-#: lib/noticelist.php:436
-msgid "N"
-msgstr ""
-
 #. TRANS: Used in coordinates as abbreviation of south
 #: lib/noticelist.php:438
 msgid "S"
@@ -4668,27 +4418,24 @@ msgstr "Tìm kiếm thông báo"
 msgid "Nudge this user"
 msgstr "Bỏ chặn người dùng này"
 
-#: lib/nudgeform.php:128
-msgid "Nudge"
-msgstr ""
-
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "Lỗi xảy ra khi thêm mới hồ sơ cá nhân"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "Lỗi xảy ra khi thêm mới hình đại diện"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "Lỗi xảy ra khi cập nhật hồ sơ cá nhân"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "Lỗi xảy ra khi thêm mới hồ sơ cá nhân"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "Không thể chèn thêm vào đăng nhận."
 
@@ -4720,11 +4467,6 @@ msgstr "Hộp thư đi"
 msgid "Your sent messages"
 msgstr "Thư bạn đã gửi"
 
-#: lib/personaltagcloudsection.php:56
-#, php-format
-msgid "Tags in %s's notices"
-msgstr ""
-
 #: lib/profileaction.php:109 lib/profileaction.php:205 lib/subgroupnav.php:82
 msgid "Subscriptions"
 msgstr "Tôi theo bạn này"
@@ -4737,6 +4479,10 @@ msgstr "Tất cả đăng nhận"
 msgid "Subscribers"
 msgstr "Bạn này theo tôi"
 
+#: lib/profileaction.php:191
+msgid "User ID"
+msgstr ""
+
 #: lib/profileaction.php:196
 msgid "Member since"
 msgstr "Gia nhập từ"
@@ -4754,12 +4500,8 @@ msgstr ""
 msgid "Public"
 msgstr "Công cộng"
 
-#: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
-msgid "Recent tags"
-msgstr ""
-
-#: lib/redirectingaction.php:95
-msgid "No return-to arguments."
+#: lib/publicgroupnav.php:88
+msgid "Featured"
 msgstr ""
 
 #: lib/repeatform.php:107
@@ -4774,22 +4516,20 @@ msgstr "Có"
 msgid "Repeat this notice"
 msgstr "Không thể xóa tin nhắn này."
 
-#: lib/revokeroleform.php:91
-#, php-format
-msgid "Revoke the \"%s\" role from this user"
-msgstr ""
-
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
-msgstr "Tìm kiếm"
+msgstr ""
 
 #: lib/searchgroupnav.php:80
 msgid "People"
@@ -4811,10 +4551,6 @@ msgstr ""
 msgid "More..."
 msgstr ""
 
-#: lib/silenceform.php:67
-msgid "Silence"
-msgstr ""
-
 #: lib/silenceform.php:78
 msgid "Silence this user"
 msgstr "Bỏ chặn người dùng này"
@@ -4843,10 +4579,6 @@ msgstr ""
 msgid "People Tagcloud as tagged"
 msgstr ""
 
-#: lib/tagcloudsection.php:56
-msgid "None"
-msgstr ""
-
 #: lib/themeuploader.php:50
 msgid "This server cannot handle theme uploads without ZIP support."
 msgstr ""
@@ -4883,10 +4615,6 @@ msgstr ""
 msgid "Theme contains file of type '.%s', which is not allowed."
 msgstr ""
 
-#: lib/topposterssection.php:74
-msgid "Top posters"
-msgstr ""
-
 #: lib/unsandboxform.php:69
 msgid "Unsandbox"
 msgstr ""
@@ -4930,56 +4658,60 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "vài giây trước"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "1 phút trước"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "%d phút trước"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "1 giờ trước"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "%d giờ trước"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "1 ngày trước"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "%d ngày trước"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "1 tháng trước"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "%d tháng trước"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "1 năm trước"
 
index 67fa987185e57bc81bec833ba978797e583868b6..e2257f3319fbc0ea4d17bc71021ce35f54a6a789 100644 (file)
@@ -1,33 +1,34 @@
-# Translation of StatusNet to Simplified Chinese
+# Translation of StatusNet - Core to Simplified Chinese (‪中文(简体)‬)
+# Expored from translatewiki.net
 #
-# Author@translatewiki.net: Chenxiaoqino
-# Author@translatewiki.net: Shizhao
-# Author@translatewiki.net: Sweeite012f
-# Author@translatewiki.net: Tommyang
-# Author@translatewiki.net: ZhengYiFeng
+# Author: Chenxiaoqino
+# Author: Shizhao
+# Author: Sweeite012f
+# Author: Tommyang
+# Author: ZhengYiFeng
 # --
-# Messages of identi.ca
-# Copyright (C) 2008 Gouki <gouki@goukihq.org>
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:31+0000\n"
-"Language-Team: Simplified Chinese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:31+0000\n"
+"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-"
+"hans>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: zh-hans\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page title
 #. TRANS: Menu item for site administration
-#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:376
+#: actions/accessadminpanel.php:55 lib/adminpanelaction.php:363
 msgid "Access"
 msgstr "访问"
 
@@ -80,10 +81,10 @@ msgstr "保存访问设置"
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr "保存"
@@ -92,19 +93,19 @@ msgstr "保存"
 #: actions/all.php:68 actions/public.php:98 actions/replies.php:93
 #: actions/showfavorites.php:138 actions/tag.php:52
 msgid "No such page."
-msgstr "æ\9cªæ\89¾å\88°æ­¤æ¶\88æ\81¯。"
+msgstr "没æ\9c\89è¿\99个页é\9d¢。"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -133,7 +134,7 @@ msgstr "%1$s 和好友,第%2$d页"
 #: lib/personalgroupnav.php:100
 #, php-format
 msgid "%s and friends"
-msgstr "%s å\8f\8a好å\8f\8b"
+msgstr "%s å\92\8c好å\8f\8b们"
 
 #. TRANS: %1$s is user nickname
 #: actions/all.php:107
@@ -175,7 +176,7 @@ msgid ""
 "You can try to [nudge %1$s](../%2$s) from their profile or [post something "
 "to them](%%%%action.newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
-"可以试着到他们的资料页 [呼叫%1$s](../%2$s) 他们或者 [给他们发消息](%%%%"
+"可以试着到他们的资料页 [呼叫%1$s](../%2$s) 他们或者 [给他们发消息](%%%%"
 "action.newnotice%%%%?status_textarea=%3$s)。"
 
 #: actions/all.php:149 actions/replies.php:210 actions/showstream.php:211
@@ -189,7 +190,7 @@ msgstr ""
 #. TRANS: H1 text
 #: actions/all.php:182
 msgid "You and friends"
-msgstr "和好友们"
+msgstr "和好友们"
 
 #. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
 #. TRANS: Message is used as a subtitle. %1$s is a user nickname, %2$s is a site name.
@@ -200,16 +201,16 @@ msgid "Updates from %1$s and friends on %2$s!"
 msgstr "%2$s上%1$s和好友们的更新!"
 
 #: actions/apiaccountratelimitstatus.php:72
-#: actions/apiaccountupdatedeliverydevice.php:94
-#: actions/apiaccountupdateprofile.php:97
-#: actions/apiaccountupdateprofilebackgroundimage.php:94
-#: actions/apiaccountupdateprofilecolors.php:118
+#: actions/apiaccountupdatedeliverydevice.php:95
+#: actions/apiaccountupdateprofile.php:98
+#: actions/apiaccountupdateprofilebackgroundimage.php:95
+#: actions/apiaccountupdateprofilecolors.php:119
 #: actions/apiaccountverifycredentials.php:70 actions/apidirectmessage.php:156
-#: actions/apifavoritecreate.php:100 actions/apifavoritedestroy.php:101
-#: actions/apifriendshipscreate.php:100 actions/apifriendshipsdestroy.php:100
-#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:139
-#: actions/apigroupismember.php:115 actions/apigroupjoin.php:156
-#: actions/apigroupleave.php:142 actions/apigrouplist.php:137
+#: actions/apifavoritecreate.php:101 actions/apifavoritedestroy.php:102
+#: actions/apifriendshipscreate.php:101 actions/apifriendshipsdestroy.php:101
+#: actions/apifriendshipsshow.php:128 actions/apigroupcreate.php:140
+#: actions/apigroupismember.php:115 actions/apigroupjoin.php:157
+#: actions/apigroupleave.php:143 actions/apigrouplist.php:137
 #: actions/apigrouplistall.php:122 actions/apigroupmembership.php:107
 #: actions/apigroupshow.php:116 actions/apihelptest.php:88
 #: actions/apistatusesdestroy.php:104 actions/apistatusesretweets.php:112
@@ -224,48 +225,50 @@ msgstr "%2$s上%1$s和好友们的更新!"
 msgid "API method not found."
 msgstr "API方法没有找到。"
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr "此方法接受POST请求。"
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
-"必须指定一个名为'device'的参数,值可以是以下中的一个:sms, im, none。"
+"必须指定一个名为'device'的参数,值可以是以下中的一个:sms, im, none。"
 
-#: actions/apiaccountupdatedeliverydevice.php:133
+#: actions/apiaccountupdatedeliverydevice.php:134
 msgid "Could not update user."
 msgstr "无法更新用户。"
 
-#: actions/apiaccountupdateprofile.php:112
-#: actions/apiaccountupdateprofilebackgroundimage.php:194
-#: actions/apiaccountupdateprofilecolors.php:185
-#: actions/apiaccountupdateprofileimage.php:130 actions/apiusershow.php:108
+#: actions/apiaccountupdateprofile.php:113
+#: actions/apiaccountupdateprofilebackgroundimage.php:195
+#: actions/apiaccountupdateprofilecolors.php:186
+#: actions/apiaccountupdateprofileimage.php:131 actions/apiusershow.php:108
 #: actions/avatarbynickname.php:80 actions/foaf.php:65 actions/hcard.php:74
 #: actions/replies.php:80 actions/usergroups.php:100 lib/galleryaction.php:66
 #: lib/profileaction.php:84
 msgid "User has no profile."
 msgstr "用户没有个人信息。"
 
-#: actions/apiaccountupdateprofile.php:147
+#: actions/apiaccountupdateprofile.php:148
 msgid "Could not save profile."
 msgstr "无法保存个人信息。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -275,30 +278,30 @@ msgid ""
 "current configuration."
 msgstr "服务器当前的设置无法处理这么多的 POST 数据(%s bytes)。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:136
-#: actions/apiaccountupdateprofilebackgroundimage.php:146
-#: actions/apiaccountupdateprofilecolors.php:164
-#: actions/apiaccountupdateprofilecolors.php:174
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
 #: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
 msgid "Unable to save your design settings."
-msgstr "无法保存您的设计设置。"
+msgstr "无法保存你的外观设置。"
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:187
-#: actions/apiaccountupdateprofilecolors.php:142
+#: actions/apiaccountupdateprofilebackgroundimage.php:188
+#: actions/apiaccountupdateprofilecolors.php:143
 msgid "Could not update your design."
-msgstr "无法更新您的设计。"
+msgstr "无法更新你的外观。"
 
-#: actions/apiblockcreate.php:105
+#: actions/apiblockcreate.php:106
 msgid "You cannot block yourself!"
-msgstr "不能屏蔽自己!"
+msgstr "不能屏蔽自己!"
 
-#: actions/apiblockcreate.php:126
+#: actions/apiblockcreate.php:127
 msgid "Block user failed."
 msgstr "屏蔽用户失败。"
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr "取消屏蔽用户失败。"
 
@@ -322,61 +325,61 @@ msgstr "发给%s的私信"
 msgid "All the direct messages sent to %s"
 msgstr "所有发给%s的私信"
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr "消息没有正文!"
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr "太长了。最长的信息长度是%d个字符。"
 
-#: actions/apidirectmessagenew.php:138
+#: actions/apidirectmessagenew.php:139
 msgid "Recipient user not found."
 msgstr "未找到收件人。"
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr "不能给未成为好友的用户发送私信。"
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr "没有找到此 ID 的消息。"
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr "已收藏此状态。"
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "无法创建收藏。"
 
-#: actions/apifavoritedestroy.php:123
+#: actions/apifavoritedestroy.php:124
 msgid "That status is not a favorite."
 msgstr "此状态未被收藏。"
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "无法删除收藏。"
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "无法关注用户:未找到用户。"
 
-#: actions/apifriendshipscreate.php:118
+#: actions/apifriendshipscreate.php:119
 #, php-format
 msgid "Could not follow user: %s is already on your list."
-msgstr "无法关注用户:已经关注了%s。"
+msgstr "无法关注用户:已经关注了%s。"
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "无法取消关注用户:未找到用户。"
 
-#: actions/apifriendshipsdestroy.php:120
+#: actions/apifriendshipsdestroy.php:121
 msgid "You cannot unfollow yourself."
-msgstr "不能取消关注自己。"
+msgstr "不能取消关注自己。"
 
 #: actions/apifriendshipsexists.php:91
 msgid "Two valid IDs or screen_names must be supplied."
@@ -390,101 +393,101 @@ msgstr "无法确定源用户。"
 msgid "Could not find target user."
 msgstr "无法找到目标用户。"
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "昵称只能使用小写字母和数字且不能使用空格。"
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "昵称已被使用,换一个吧。"
 
-#: actions/apigroupcreate.php:183 actions/editgroup.php:193
+#: actions/apigroupcreate.php:184 actions/editgroup.php:193
 #: actions/newgroup.php:133 actions/profilesettings.php:218
 #: actions/register.php:217
 msgid "Not a valid nickname."
 msgstr "不是有效的昵称。"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "主页的URL不正确。"
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "全名过长(不能超过 255 个字符)。"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "描述过长(不能超过%d 个字符)。"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "位置过长(不能超过255个字符)。"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr "太多别名了!最多%d 个。"
 
-#: actions/apigroupcreate.php:267
+#: actions/apigroupcreate.php:268
 #, php-format
 msgid "Invalid alias: \"%s\"."
 msgstr "无效的别名:“%s”。"
 
-#: actions/apigroupcreate.php:276 actions/editgroup.php:232
+#: actions/apigroupcreate.php:277 actions/editgroup.php:232
 #: actions/newgroup.php:172
 #, php-format
 msgid "Alias \"%s\" already in use. Try another one."
 msgstr "%s这个别名已被使用,换一个吧。"
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr "别名不能和昵称相同。"
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "小组未找到。"
 
 #. TRANS: Error text shown a user tries to join a group they already are a member of.
-#: actions/apigroupjoin.php:111 actions/joingroup.php:100 lib/command.php:336
+#: actions/apigroupjoin.php:112 actions/joingroup.php:100 lib/command.php:336
 msgid "You are already a member of that group."
-msgstr "已经是该小组成员。"
+msgstr "已经是该小组成员。"
 
 #. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
-#: actions/apigroupjoin.php:120 actions/joingroup.php:105 lib/command.php:341
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
 msgid "You have been blocked from that group by the admin."
-msgstr "您已经被该小组的管理员屏蔽。"
+msgstr "你已经被管理员从该小组中屏蔽。"
 
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "无法把用户%1$s添加到%2$s小组"
 
-#: actions/apigroupleave.php:115
+#: actions/apigroupleave.php:116
 msgid "You are not a member of this group."
-msgstr "不是该小组成员。"
+msgstr "不是该小组成员。"
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
@@ -500,7 +503,7 @@ msgstr "%s 的小组"
 #: actions/apigrouplist.php:108
 #, php-format
 msgid "%1$s groups %2$s is a member of."
-msgstr "%1$s 个小组,%2$s 是其中一个小组成员。"
+msgstr "%1$s 的小组,%2$s 是小组成员。"
 
 #. TRANS: Message is used as a title. %s is a site name.
 #. TRANS: Message is used as a page title. %s is a nick name.
@@ -514,7 +517,7 @@ msgstr "%s 的小组"
 msgid "groups on %s"
 msgstr "在%s上的小组"
 
-#: actions/apimediaupload.php:99
+#: actions/apimediaupload.php:100
 msgid "Upload failed."
 msgstr "上传失败"
 
@@ -528,9 +531,9 @@ msgstr "无效的 token。"
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -542,7 +545,7 @@ msgstr "无效的 token。"
 #: actions/unsubscribe.php:69 actions/userauthorization.php:52
 #: lib/designsettings.php:294
 msgid "There was a problem with your session token. Try again, please."
-msgstr "的 session 出现了一个问题,请重试。"
+msgstr "的 session 出现了一个问题,请重试。"
 
 #: actions/apioauthauthorize.php:135
 msgid "Invalid nickname / password!"
@@ -566,15 +569,15 @@ msgstr "Request token 已被批准。请为它换一个 access token。"
 #: actions/apioauthauthorize.php:227
 #, php-format
 msgid "The request token %s has been denied and revoked."
-msgstr "%s的 request token 被拒绝并被取消。"
+msgstr "%s的 request token 被拒绝并被取消。"
 
 #. TRANS: Message given submitting a form with an unknown action in e-mail settings.
 #. TRANS: Message given submitting a form with an unknown action in IM settings.
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -582,7 +585,7 @@ msgstr "未预料的表单提交。"
 
 #: actions/apioauthauthorize.php:259
 msgid "An application would like to connect to your account"
-msgstr "一个应用想连接到的账号"
+msgstr "一个应用想连接到的账号"
 
 #: actions/apioauthauthorize.php:276
 msgid "Allow or deny access"
@@ -596,7 +599,7 @@ msgid ""
 "give access to your %4$s account to third parties you trust."
 msgstr ""
 "来自<strong>%2$s</strong>的<strong>%1$s</strong>应用希望能够<strong>%3$s</"
-"strong>您的%4$s账户数据。您应该只允许您信任的第三方程序访问您的%4$s账户。"
+"strong>你的%4$s账户数据。你应该只允许你信任信任的第三方程序访问你的%4$s账户。"
 
 #. TRANS: Main menu option when logged in for access to user settings
 #: actions/apioauthauthorize.php:310 lib/action.php:463
@@ -627,7 +630,7 @@ msgstr "允许"
 
 #: actions/apioauthauthorize.php:351
 msgid "Allow or deny access to your account information."
-msgstr "允许或阻止对账户信息的访问。"
+msgstr "允许或阻止对账户信息的访问。"
 
 #: actions/apistatusesdestroy.php:112
 msgid "This method requires a POST or DELETE."
@@ -635,20 +638,20 @@ msgstr "此方法接受POST或DELETE请求。"
 
 #: actions/apistatusesdestroy.php:135
 msgid "You may not delete another user's status."
-msgstr "不能删除其他用户的消息。"
+msgstr "不能删除其他用户的消息。"
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "没有这条消息。"
 
 #. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
+#: actions/apistatusesretweet.php:84 lib/command.php:538
 msgid "Cannot repeat your own notice."
-msgstr "不能转发自己的消息。"
+msgstr "不能转发自己的消息。"
 
 #. TRANS: Error text shown when trying to repeat an notice that was already repeated by the user.
-#: actions/apistatusesretweet.php:91 lib/command.php:544
+#: actions/apistatusesretweet.php:92 lib/command.php:544
 msgid "Already repeated that notice."
 msgstr "已转发了该消息。"
 
@@ -660,21 +663,21 @@ msgstr "消息已删除。"
 msgid "No status with that ID found."
 msgstr "没有找到此 ID 的消息。"
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
-msgstr "客户端必须提供一个“状态”参数与数值。"
+msgstr "客户端必须提供一个包含内容的“状态”参数。"
 
-#: actions/apistatusesupdate.php:242 actions/newnotice.php:157
+#: actions/apistatusesupdate.php:243 actions/newnotice.php:157
 #: lib/mailhandler.php:60
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr "太长了。最长的消息长度是%d个字符。"
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "未找到。"
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr "每条消息最长%d字符,包括附件的链接 URL。"
@@ -686,22 +689,22 @@ msgstr "不支持的格式。"
 #: actions/apitimelinefavorites.php:110
 #, php-format
 msgid "%1$s / Favorites from %2$s"
-msgstr "%1$s 的 %2$s 状态"
+msgstr "%1$s / 来自 %2$s 的收藏"
 
 #: actions/apitimelinefavorites.php:119
 #, php-format
 msgid "%1$s updates favorited by %2$s / %2$s."
-msgstr "回复 %2$s / %3$s 的 %1$s 更新。"
+msgstr "%1$s 条消息被 %2$s 收藏 / %2$s"
 
 #: actions/apitimelinementions.php:118
 #, php-format
 msgid "%1$s / Updates mentioning %2$s"
-msgstr "%1$s 的 %2$s 状态"
+msgstr "%1$s / 条消息提到了 %2$s"
 
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
-msgstr "回复 %2$s / %3$s 的 %1$s 更新。"
+msgstr " %1$s 条消息回复给来自 %2$s 的消息 / %3$s。"
 
 #: actions/apitimelinepublic.php:197 actions/publicrss.php:103
 #, php-format
@@ -765,7 +768,7 @@ msgstr "头像"
 #: actions/avatarsettings.php:78
 #, php-format
 msgid "You can upload your personal avatar. The maximum file size is %s."
-msgstr "您可以上传您的个人头像。文件大小限制在%s以下。"
+msgstr "你可以上传你的个人头像。文件大小限制在%s以下。"
 
 #: actions/avatarsettings.php:106 actions/avatarsettings.php:185
 #: actions/grouplogo.php:181 actions/remotesubscribe.php:191
@@ -781,7 +784,7 @@ msgstr "头像设置"
 #: actions/avatarsettings.php:127 actions/avatarsettings.php:205
 #: actions/grouplogo.php:202 actions/grouplogo.php:262
 msgid "Original"
-msgstr "原始"
+msgstr "原始"
 
 #: actions/avatarsettings.php:142 actions/avatarsettings.php:217
 #: actions/grouplogo.php:213 actions/grouplogo.php:274
@@ -803,11 +806,11 @@ msgstr "剪裁"
 
 #: actions/avatarsettings.php:305
 msgid "No file uploaded."
-msgstr "上传文件未成功。"
+msgstr "没有文件被上传。"
 
 #: actions/avatarsettings.php:332
 msgid "Pick a square area of the image to be your avatar"
-msgstr "请选择一块方形区域作为的头像"
+msgstr "请选择一块方形区域作为的头像"
 
 #: actions/avatarsettings.php:347 actions/grouplogo.php:380
 msgid "Lost our file data."
@@ -827,11 +830,11 @@ msgstr "头像已删除。"
 
 #: actions/block.php:69
 msgid "You already blocked that user."
-msgstr "已经屏蔽该用户。"
+msgstr "已经屏蔽该用户。"
 
 #: actions/block.php:107 actions/block.php:136 actions/groupblock.php:158
 msgid "Block user"
-msgstr "屏蔽用户失败。"
+msgstr "屏蔽用户。"
 
 #: actions/block.php:138
 msgid ""
@@ -839,8 +842,8 @@ msgid ""
 "unsubscribed from you, unable to subscribe to you in the future, and you "
 "will not be notified of any @-replies from them."
 msgstr ""
-"您确定要屏蔽这个用户吗?屏蔽后,会取消这个用户对您的关注,并且以后也无法关注"
-"您,您也不会收到任何来自这个用户的@回复提醒。"
+"你确定要屏蔽这个用户吗?屏蔽后,会取消这个用户对你的关注,将来也无法再关注"
+"你,你也不会收到任何来自这个用户的@回复提醒。"
 
 #. TRANS: Button label on the user block form.
 #. TRANS: Button label on the delete application form.
@@ -870,10 +873,12 @@ msgstr "不要屏蔽这个用户"
 #: actions/groupblock.php:185
 msgctxt "BUTTON"
 msgid "Yes"
-msgstr "确定"
+msgstr ""
 
 #. TRANS: Submit button title for 'Yes' when blocking a user.
-#: actions/block.php:164 actions/groupmembers.php:392 lib/blockform.php:80
+#. TRANS: Submit button title.
+#. TRANS: Description of the form to block a user.
+#: actions/block.php:164 actions/groupmembers.php:403 lib/blockform.php:82
 msgid "Block this user"
 msgstr "屏蔽这个用户"
 
@@ -915,11 +920,13 @@ msgstr "被屏蔽加入此小组的用户列表。"
 msgid "Unblock user from group"
 msgstr "取消小组对用户的屏蔽。"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr "取消屏蔽"
 
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:80
+#. TRANS: Description of the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:82
 msgid "Unblock this user"
 msgstr "取消屏蔽这个用户。"
 
@@ -931,7 +938,7 @@ msgstr "发布到 %s"
 
 #: actions/confirmaddress.php:75
 msgid "No confirmation code."
-msgstr "没有验证码"
+msgstr "没有确认码"
 
 #: actions/confirmaddress.php:80
 msgid "Confirmation code not found."
@@ -939,7 +946,7 @@ msgstr "未找到确认码。"
 
 #: actions/confirmaddress.php:85
 msgid "That confirmation code is not for you!"
-msgstr "此确认码不是的!"
+msgstr "此确认码不是的!"
 
 #. TRANS: Server error for an unknow address type, which can be 'email', 'jabber', or 'sms'.
 #: actions/confirmaddress.php:91
@@ -950,7 +957,7 @@ msgstr "不可识别的地址类型%s。"
 #. TRANS: Client error for an already confirmed email/jabbel/sms address.
 #: actions/confirmaddress.php:96
 msgid "That address has already been confirmed."
-msgstr "此地址已被确认。"
+msgstr "此地址已被确认过了。"
 
 #. TRANS: Server error thrown on database error updating e-mail preferences.
 #. TRANS: Server error thrown on database error removing a registered e-mail address.
@@ -958,9 +965,9 @@ msgstr "此地址已被确认。"
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -968,7 +975,7 @@ msgstr "无法更新用户。"
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "无法删除电子邮件确认。"
@@ -980,7 +987,7 @@ msgstr "确认地址"
 #: actions/confirmaddress.php:161
 #, php-format
 msgid "The address \"%s\" has been confirmed for your account."
-msgstr "地址 \"%s\" 已确认。"
+msgstr "你账户的地址 \"%s\" 已被确认。"
 
 #: actions/conversation.php:99
 msgid "Conversation"
@@ -993,7 +1000,7 @@ msgstr "消息"
 
 #: actions/deleteapplication.php:63
 msgid "You must be logged in to delete an application."
-msgstr "您必须登录才能删除应用。"
+msgstr "你必须登录后才能删除应用。"
 
 #: actions/deleteapplication.php:71
 msgid "Application not found."
@@ -1002,13 +1009,14 @@ msgstr "未找到应用。"
 #: actions/deleteapplication.php:78 actions/editapplication.php:77
 #: actions/showapplication.php:94
 msgid "You are not the owner of this application."
-msgstr "不是该应用的拥有者。"
+msgstr "不是该应用的拥有者。"
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
-msgstr "的 session token 出现了问题。"
+msgstr "的 session token 出现了问题。"
 
 #: actions/deleteapplication.php:123 actions/deleteapplication.php:147
 msgid "Delete application"
@@ -1020,7 +1028,7 @@ msgid ""
 "about the application from the database, including all existing user "
 "connections."
 msgstr ""
-"确定要删除这个应用吗?这将从数据库中清除有关这个应用的所有数据,包括所有的"
+"确定要删除这个应用吗?这将从数据库中清除有关这个应用的所有数据,包括所有的"
 "用户关联。"
 
 #. TRANS: Submit button title for 'No' when deleting an application.
@@ -1039,7 +1047,7 @@ msgstr "删除这个应用"
 #: actions/makeadmin.php:61 actions/newmessage.php:87 actions/newnotice.php:89
 #: actions/nudge.php:63 actions/subedit.php:31 actions/subscribe.php:96
 #: actions/tagother.php:33 actions/unsubscribe.php:52
-#: lib/adminpanelaction.php:73 lib/profileformaction.php:64
+#: lib/adminpanelaction.php:71 lib/profileformaction.php:64
 #: lib/settingsaction.php:72
 msgid "Not logged in."
 msgstr "未登录。"
@@ -1052,7 +1060,7 @@ msgstr "无法删除这条消息。"
 msgid ""
 "You are about to permanently delete a notice. Once this is done, it cannot "
 "be undone."
-msgstr "您即将永久删除一条消息。这样做是无法恢复的。"
+msgstr "你即将永久删除一条消息,此操作无法撤销。"
 
 #: actions/deletenotice.php:109 actions/deletenotice.php:141
 msgid "Delete notice"
@@ -1060,7 +1068,7 @@ msgstr "删除消息"
 
 #: actions/deletenotice.php:144
 msgid "Are you sure you want to delete this notice?"
-msgstr "确定要删除这条消息吗?"
+msgstr "确定要删除这条消息吗?"
 
 #. TRANS: Submit button title for 'No' when deleting a notice.
 #: actions/deletenotice.php:151
@@ -1070,15 +1078,15 @@ msgstr "不要删除这个消息"
 #. TRANS: Submit button title for 'Yes' when deleting a notice.
 #: actions/deletenotice.php:158 lib/noticelist.php:657
 msgid "Delete this notice"
-msgstr "删除这个消息"
+msgstr "删除"
 
 #: actions/deleteuser.php:67
 msgid "You cannot delete users."
-msgstr "不能删除用户。"
+msgstr "不能删除用户。"
 
 #: actions/deleteuser.php:74
 msgid "You can only delete local users."
-msgstr "只能删除本地用户。"
+msgstr "只能删除本地用户。"
 
 #: actions/deleteuser.php:110 actions/deleteuser.php:133
 msgid "Delete user"
@@ -1089,7 +1097,7 @@ msgid ""
 "Are you sure you want to delete this user? This will clear all data about "
 "the user from the database, without a backup."
 msgstr ""
-"确定要删除这个用户吗?这将从数据库中清除有关这个用户的所有数据,没有备份。"
+"确定要删除这个用户吗?这将从数据库中清除有关这个用户的所有数据,没有备份。"
 
 #. TRANS: Submit button title for 'Yes' when deleting a user.
 #: actions/deleteuser.php:163 lib/deleteuserform.php:77
@@ -1099,13 +1107,12 @@ msgstr "删除这个用户"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
-msgstr "设计"
+msgstr "外观"
 
 #: actions/designadminpanel.php:74
 msgid "Design settings for this StatusNet site."
-msgstr "这个 StatusNet 网站的设计设置"
+msgstr "这个 StatusNet 网站的外观设置"
 
 #: actions/designadminpanel.php:318
 msgid "Invalid logo URL."
@@ -1142,7 +1149,7 @@ msgstr "自定义主题"
 
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
-msgstr "可以上传一个 .ZIP 压缩文件作为一个自定义的 StatusNet 主题"
+msgstr "可以上传一个 .ZIP 压缩文件作为一个自定义的 StatusNet 主题"
 
 #: actions/designadminpanel.php:486 lib/designsettings.php:101
 msgid "Change background image"
@@ -1158,7 +1165,7 @@ msgstr "背景"
 msgid ""
 "You can upload a background image for the site. The maximum file size is %1"
 "$s."
-msgstr "可以为网站上传一个背景图像。文件大小限制在%1$s以下。"
+msgstr "可以为网站上传一个背景图像。文件大小限制在%1$s以下。"
 
 #. TRANS: Used as radio button label to add a background image.
 #: actions/designadminpanel.php:527 lib/designsettings.php:139
@@ -1192,7 +1199,7 @@ msgstr "边栏"
 
 #: actions/designadminpanel.php:613 lib/designsettings.php:217
 msgid "Text"
-msgstr "æ\88æ\81¯"
+msgstr "æ\96\87å­\97"
 
 #: actions/designadminpanel.php:626 lib/designsettings.php:230
 msgid "Links"
@@ -1212,26 +1219,26 @@ msgstr "使用默认值"
 
 #: actions/designadminpanel.php:677 lib/designsettings.php:248
 msgid "Restore default designs"
-msgstr "恢复默认设计"
+msgstr "恢复默认外观"
 
 #: actions/designadminpanel.php:683 lib/designsettings.php:254
 msgid "Reset back to default"
 msgstr "重置到默认"
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr "保存"
 
 #: actions/designadminpanel.php:686 lib/designsettings.php:257
 msgid "Save design"
-msgstr "保存设计"
+msgstr "保存外观"
 
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
@@ -1252,7 +1259,7 @@ msgstr "编辑应用"
 
 #: actions/editapplication.php:66
 msgid "You must be logged in to edit an application."
-msgstr "必须登录后才能编辑应用。"
+msgstr "必须登录后才能编辑应用。"
 
 #: actions/editapplication.php:81 actions/oauthconnectionssettings.php:166
 #: actions/showapplication.php:87
@@ -1261,7 +1268,7 @@ msgstr "没有这个应用。"
 
 #: actions/editapplication.php:161
 msgid "Use this form to edit your application."
-msgstr "通过此表单来编辑的应用。"
+msgstr "通过此表单来编辑的应用。"
 
 #: actions/editapplication.php:177 actions/newapplication.php:159
 msgid "Name is required."
@@ -1277,7 +1284,7 @@ msgstr "名字已被使用,换一个吧。"
 
 #: actions/editapplication.php:186 actions/newapplication.php:168
 msgid "Description is required."
-msgstr "必须有一个描述。"
+msgstr "必须填写描述。"
 
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
@@ -1318,7 +1325,7 @@ msgstr "编辑 %s 小组"
 
 #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65
 msgid "You must be logged in to create a group."
-msgstr "必须登录才能创建小组。"
+msgstr "必须登录才能创建小组。"
 
 #: actions/editgroup.php:107 actions/editgroup.php:172
 #: actions/groupdesignsettings.php:107 actions/grouplogo.php:109
@@ -1337,11 +1344,11 @@ msgstr "描述过长(不能超过%d个字符)。"
 #: actions/editgroup.php:228 actions/newgroup.php:168
 #, php-format
 msgid "Invalid alias: \"%s\""
-msgstr "无效的昵称:“%s”。"
+msgstr "无效的别名:“%s”。"
 
 #: actions/editgroup.php:258
 msgid "Could not update group."
-msgstr "无法更新组"
+msgstr "无法更新组"
 
 #. TRANS: Server exception thrown when creating group aliases failed.
 #: actions/editgroup.php:264 classes/User_group.php:514
@@ -1362,25 +1369,25 @@ msgstr "Email 设置"
 #: actions/emailsettings.php:76
 #, php-format
 msgid "Manage how you get email from %%site.name%%."
-msgstr "设置 %%site.name%% 发送的邮件。"
+msgstr "设置你如何接受来自 %%site.name%% 的邮件。"
 
 #. TRANS: Form legend for e-mail settings form.
 #. TRANS: Field label for e-mail address input in e-mail settings form.
 #: actions/emailsettings.php:106 actions/emailsettings.php:132
 msgid "Email address"
-msgstr "电子邮件地址"
+msgstr "电地址"
 
 #. TRANS: Form note in e-mail settings form.
 #: actions/emailsettings.php:112
 msgid "Current confirmed email address."
-msgstr "å·²确认的电子邮件。"
+msgstr "å½\93å\89\8d确认的电子邮件。"
 
 #. TRANS: Button label to remove a confirmed e-mail address.
 #. TRANS: Button label for removing a set sender e-mail address to post notices from.
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
@@ -1392,28 +1399,32 @@ msgid ""
 "Awaiting confirmation on this address. Check your inbox (and spam box!) for "
 "a message with further instructions."
 msgstr ""
-"等待确认此地址。请查看您的收件箱(和垃圾箱)是否收到了邮件,其中包含了进一步的"
-"指示。"
+"正等待确认此邮件。请查看你的收件箱(和垃圾箱)是否收到了邮件,里面包含了更多的"
+"说明。"
 
 #. TRANS: Button label to cancel an e-mail address confirmation procedure.
 #. TRANS: Button label to cancel an IM address confirmation procedure.
 #. TRANS: Button label to cancel a SMS address confirmation procedure.
-#. TRANS: Button label
+#. TRANS: Button label in the "Edit application" form.
 #: actions/emailsettings.php:127 actions/imsettings.php:131
-#: actions/smssettings.php:137 lib/applicationeditform.php:357
+#: actions/smssettings.php:137 lib/applicationeditform.php:347
 msgctxt "BUTTON"
 msgid "Cancel"
 msgstr "取消"
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr "电子邮件,类似 \"UserName@example.org\""
 
 #. TRANS: Button label for adding an e-mail address in e-mail settings form.
 #. TRANS: Button label for adding an IM address in IM settings form.
 #. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
+#: actions/emailsettings.php:143 actions/imsettings.php:151
 #: actions/smssettings.php:162
 msgctxt "BUTTON"
 msgid "Add"
@@ -1421,164 +1432,164 @@ msgstr "添加"
 
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr "接收用 email"
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
-msgstr "向这个 email 地址发邮件来发布新的消息。"
+msgstr "通过发送电子邮件到这个地址来发布新的消息。"
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
-msgstr "生成新的电子邮件地址用于发布息;取消旧的。"
+msgstr "生成新的电子邮件地址用于发布息;取消旧的。"
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr "新增"
 
 #. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
+#: actions/emailsettings.php:178
 msgid "Email preferences"
 msgstr "Email 偏好"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr "将新的关注通过电子邮件发送给我。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr "有人收藏我的消息时,发邮件通知我。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr "有人给我发送私信时,发邮件通知我。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr "有人给我发送 @ 消息时,发邮件通知我。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr "允许朋友们呼叫我并给我发送邮件。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr "我希望通过邮件发布信息。"
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:219
+#: actions/emailsettings.php:223
 msgid "Publish a MicroID for my email address."
 msgstr "公开电子邮件的 MicroID。"
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr "Email 偏好已保存。"
 
 #. TRANS: Message given saving e-mail address without having provided one.
-#: actions/emailsettings.php:353
+#: actions/emailsettings.php:357
 msgid "No email address."
 msgstr "没有电子邮件地址。"
 
 #. TRANS: Message given saving e-mail address that cannot be normalised.
-#: actions/emailsettings.php:361
+#: actions/emailsettings.php:365
 msgid "Cannot normalize that email address"
 msgstr "无法识别此电子邮件"
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "不是有效的电子邮件。"
 
 #. TRANS: Message given saving e-mail address that is already set.
-#: actions/emailsettings.php:370
+#: actions/emailsettings.php:374
 msgid "That is already your email address."
-msgstr "已登记此电子邮件。"
+msgstr "已登记此电子邮件。"
 
 #. TRANS: Message given saving e-mail address that is already set for another user.
-#: actions/emailsettings.php:374
+#: actions/emailsettings.php:378
 msgid "That email address already belongs to another user."
 msgstr "此电子邮件属于其他用户。"
 
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
-msgstr "无法插入验证码。"
+msgstr "无法插入确认码。"
 
 #. TRANS: Message given saving valid e-mail address that is to be confirmed.
-#: actions/emailsettings.php:398
+#: actions/emailsettings.php:402
 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 ""
-"验证码已被发送到您新增的电子邮件。请检查收件箱(和垃圾箱),找到验证码并按要求"
-"使用它。"
+"确认码已被发送到你新增的电子邮件地址。请检查收件箱(和垃圾箱),找到确认码和使"
+"用说明。"
 
 #. TRANS: Message given canceling e-mail address confirmation that is not pending.
 #. TRANS: Message given canceling IM address confirmation that is not pending.
 #. TRANS: Message given canceling SMS phone number confirmation that is not pending.
-#: actions/emailsettings.php:419 actions/imsettings.php:383
+#: actions/emailsettings.php:423 actions/imsettings.php:386
 #: actions/smssettings.php:408
 msgid "No pending confirmation to cancel."
 msgstr "没有可以取消的确认。"
 
 #. TRANS: Message given canceling e-mail address confirmation for the wrong e-mail address.
-#: actions/emailsettings.php:424
+#: actions/emailsettings.php:428
 msgid "That is the wrong email address."
 msgstr "这是错误的电子邮件地址。"
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
-msgstr "Email 验证已取消。"
+msgstr "Email 确认已取消。"
 
 #. TRANS: Message given trying to remove an e-mail address that is not
 #. TRANS: registered for the active user.
-#: actions/emailsettings.php:458
+#: actions/emailsettings.php:462
 msgid "That is not your email address."
-msgstr "这是他人的电子邮件。"
+msgstr "这个不是你的电子邮件地址。"
 
 #. TRANS: Message given after successfully removing a registered e-mail address.
-#: actions/emailsettings.php:479
+#: actions/emailsettings.php:483
 msgid "The email address was removed."
-msgstr "email 地址已移除。"
+msgstr "电子邮件地址已被删除。"
 
-#: actions/emailsettings.php:493 actions/smssettings.php:568
+#: actions/emailsettings.php:497 actions/smssettings.php:568
 msgid "No incoming email address."
 msgstr "没有发布用的电子邮件地址。"
 
 #. TRANS: Server error thrown on database error removing incoming e-mail address.
 #. TRANS: Server error thrown on database error adding incoming e-mail address.
-#: actions/emailsettings.php:504 actions/emailsettings.php:528
+#: actions/emailsettings.php:508 actions/emailsettings.php:532
 #: actions/smssettings.php:578 actions/smssettings.php:602
 msgid "Couldn't update user record."
 msgstr "无法更新用户记录。"
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
-msgstr "发布用的电子邮件被除。"
+msgstr "发布用的电子邮件被除。"
 
 #. TRANS: Message given after successfully adding an incoming e-mail address.
-#: actions/emailsettings.php:532 actions/smssettings.php:605
+#: actions/emailsettings.php:536 actions/smssettings.php:605
 msgid "New incoming email address added."
 msgstr "已添加新的发布用的电子邮件地址。"
 
@@ -1673,15 +1684,15 @@ msgstr "要查看的用户不存在。"
 
 #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59
 msgid "You can use the local subscription!"
-msgstr "可以使用本地关注!"
+msgstr "可以使用本地关注!"
 
 #: actions/finishremotesubscribe.php:99
 msgid "That user has blocked you from subscribing."
-msgstr "该用户屏蔽了您对他/她的关注。"
+msgstr "该用户屏蔽了你,无法关注。"
 
 #: actions/finishremotesubscribe.php:110
 msgid "You are not authorized."
-msgstr "没有被授权。"
+msgstr "没有被授权。"
 
 #: actions/finishremotesubscribe.php:113
 msgid "Could not convert request token to access token."
@@ -1689,9 +1700,9 @@ msgstr "无法将 request token 转换为 access token。"
 
 #: actions/finishremotesubscribe.php:118
 msgid "Remote service uses unknown version of OMB protocol."
-msgstr "远程服务使用了位置版本的 OMB 协议。"
+msgstr "远程服务使用了未知版本的 OMB 协议。"
 
-#: actions/finishremotesubscribe.php:138
+#: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306
 msgid "Error updating remote profile."
 msgstr "更新远程的个人信息时出错。"
 
@@ -1709,11 +1720,11 @@ msgstr "无效的权限。"
 
 #: actions/grantrole.php:66 actions/revokerole.php:66
 msgid "This role is reserved and cannot be set."
-msgstr "此角色是保留的且不能被设置。"
+msgstr "此权限是保留的且不能被设置。"
 
 #: actions/grantrole.php:75
 msgid "You cannot grant user roles on this site."
-msgstr "不能在这个网站授予用户权限。"
+msgstr "不能在这个网站授予用户权限。"
 
 #: actions/grantrole.php:82
 msgid "User already has this role."
@@ -1723,13 +1734,13 @@ msgstr "用户已有此权限。"
 #: actions/makeadmin.php:71 actions/subedit.php:46
 #: lib/profileformaction.php:79
 msgid "No profile specified."
-msgstr "没有指定的消息。"
+msgstr "没有指定的用户。"
 
 #: actions/groupblock.php:76 actions/groupunblock.php:76
 #: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
 #: actions/unsubscribe.php:84 lib/profileformaction.php:86
 msgid "No profile with that ID."
-msgstr "没æ\9c\89æ\89¾å\88°æ­¤IDç\9a\84个人信æ\81¯。"
+msgstr "æ­¤ ID æ²¡æ\9c\89ç\94¨æ\88·。"
 
 #: actions/groupblock.php:81 actions/groupunblock.php:81
 #: actions/makeadmin.php:81
@@ -1748,7 +1759,7 @@ msgstr "用户已经被小组屏蔽。"
 msgid "User is not a member of group."
 msgstr "用户不是小组成员。"
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
+#: actions/groupblock.php:134 actions/groupmembers.php:364
 msgid "Block user from group"
 msgstr "从小组中屏蔽用户"
 
@@ -1759,7 +1770,7 @@ msgid ""
 "will be removed from the group, unable to post, and unable to subscribe to "
 "the group in the future."
 msgstr ""
-"确定要在“%2$s”小组中屏蔽用户“%1$s”么?他们将被从小组中删除,并且不能在小组"
+"确定要在“%2$s”小组中屏蔽用户“%1$s”么?他们将被从小组中删除,并且不能在小组"
 "内发布消息或关注该小组。"
 
 #. TRANS: Submit button title for 'No' when blocking a user from a group.
@@ -1782,26 +1793,26 @@ msgstr "没有 ID。"
 
 #: actions/groupdesignsettings.php:68
 msgid "You must be logged in to edit a group."
-msgstr "必须登录才能创建小组。"
+msgstr "必须登录才能创建小组。"
 
 #: actions/groupdesignsettings.php:144
 msgid "Group design"
-msgstr "小组页面设计。"
+msgstr "小组页面外观。"
 
 #: actions/groupdesignsettings.php:155
 msgid ""
 "Customize the way your group looks with a background image and a colour "
 "palette of your choice."
-msgstr "通过背景图片和颜色板来自定义的小组的外观。"
+msgstr "通过背景图片和颜色板来自定义的小组的外观。"
 
 #: actions/groupdesignsettings.php:266 actions/userdesignsettings.php:186
 #: lib/designsettings.php:391 lib/designsettings.php:413
 msgid "Couldn't update your design."
-msgstr "无法更新你的设计。"
+msgstr "无法更新你的外观。"
 
 #: actions/groupdesignsettings.php:311 actions/userdesignsettings.php:231
 msgid "Design preferences saved."
-msgstr "设计偏好已保存。"
+msgstr "外观偏好已保存。"
 
 #: actions/grouplogo.php:142 actions/grouplogo.php:195
 msgid "Group logo"
@@ -1811,7 +1822,7 @@ msgstr "小组logo"
 #, php-format
 msgid ""
 "You can upload a logo image for your group. The maximum file size is %s."
-msgstr "您可以给您的小组上传一个 logo。文件最大限制为%s。"
+msgstr "你可以给你的小组上传一个 logo。文件最大限制为%s。"
 
 #: actions/grouplogo.php:365
 msgid "Pick a square area of the image to be the logo."
@@ -1825,39 +1836,49 @@ msgstr "logo已更新。"
 msgid "Failed updating logo."
 msgstr "更新 logo 失败。"
 
-#: actions/groupmembers.php:100 lib/groupnav.php:92
+#. TRANS: Title of the page showing group members.
+#. TRANS: %s is the name of the group.
+#: actions/groupmembers.php:102
 #, php-format
 msgid "%s group members"
-msgstr "%s 小组成员"
+msgstr "%s 小组成员"
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
-msgstr "%s 小组成员,第%2$d页"
+msgstr "%s 小组成员,第%2$d页"
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
-msgstr "该ç»\84æ\88\90å\91\98å\88\97表ã\80\82"
+msgstr "该å°\8fç»\84ç\9a\84æ\88\90å\91\98å\88\97表ã\80\82"
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr "管理"
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr "屏蔽"
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr "使用户成为小组的管理员"
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr "设置管理员"
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
-msgstr "使这个用户成为管理员"
+msgstr "将这个用户设为管理员"
 
 #. TRANS: Message is used as link title. %s is a user nickname.
 #. TRANS: Title in atom group notice feed. %s is a group name.
@@ -1872,7 +1893,7 @@ msgstr "%s的时间线"
 #: actions/grouprss.php:142
 #, php-format
 msgid "Updates from members of %1$s on %2$s!"
-msgstr "%2$s上%1$s的更新!"
+msgstr "在%2$s上%1$s小组组员的更新!"
 
 #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249
 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
@@ -1882,7 +1903,7 @@ msgstr "小组"
 #: actions/groups.php:64
 #, php-format
 msgid "Groups, page %d"
-msgstr "小组,第 %d 页"
+msgstr "小组,第 %d 页"
 
 #: actions/groups.php:90
 #, php-format
@@ -1893,7 +1914,7 @@ msgid ""
 "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup"
 "%%%%)"
 msgstr ""
-"%%%%site.name%%%%的小组可以让您找到有相同兴趣的朋友一起交流。当您加入到一个小"
+"%%%%site.name%%%%的小组可以让你找到有相同兴趣的朋友一起交流。当你加入到一个小"
 "组后可以可以通过使用“!小组名称”发布消息给所有其他的小组成员。找不到感兴趣的小"
 "组?试一下[搜索小组](%%%%action.groupsearch%%%%)或[建立自己的小组](%%%%"
 "action.newgroup%%%%)!"
@@ -1962,7 +1983,7 @@ msgid ""
 "You can send and receive notices through Jabber/GTalk [instant messages](%%"
 "doc.im%%). Configure your address and settings below."
 msgstr ""
-"可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接收消息。在这里配置它"
+"可以通过Jabber/GTalk [即时通讯工具](%%doc.im%%)发送和接收消息。在这里配置它"
 "们。"
 
 #. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
@@ -1988,109 +2009,112 @@ 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 ""
-"正在等待验证这个地址。请查阅的 Jabber/GTalk 帐户看有没有收到下一步的指示。"
-"(您添加 %s 为您的好友了吗?)"
+"正在等待验证这个地址。请查阅的 Jabber/GTalk 帐户看有没有收到下一步的指示。"
+"(你添加 %s 为到你的好友了吗?)"
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, 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 ""
 "Jabber 或 GTalk 帐号,类似\"UserName@example.org\"。首先,必须在即时聊天工具"
-"或GTalk中将 %s 加为好友。"
+"或 GTalk 中将 %s 加为好友。"
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr "IM 首选项已保存。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
-msgstr "通过Jabber/GTalk发送通告。"
+msgstr "通过 Jabber/GTalk 发送通告。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
-msgstr "当我的Jabber/GTalk状态改变时自动发布消息。"
+msgstr "当我的 Jabber/GTalk 状态改变时自动发布消息。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr "将我没有关注的用户给我的回复通过 Jabber/GTalk 发送给我。"
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:179
+#: actions/imsettings.php:182
 msgid "Publish a MicroID for my Jabber/GTalk address."
-msgstr "公开Jabber/GTalk帐号的 MicroID。"
+msgstr "公开 Jabber/GTalk 帐号的 MicroID。"
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr "首选项已保存。"
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "没有 Jabber ID。"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
-msgstr "无法识别此Jabber ID"
+msgstr "无法识别此 Jabber ID"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "不是有效的 Jabber ID"
 
 #. TRANS: Message given saving IM address that is already set.
-#: actions/imsettings.php:326
+#: actions/imsettings.php:329
 msgid "That is already your Jabber ID."
-msgstr "您已登记此Jabber帐号。"
+msgstr "这个已经是你的 Jabber 帐号了。"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "Jabber ID 属于另一用户。"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
 "s for sending messages to you."
-msgstr "验证码已被发送到您新增的即时通讯帐号。您必须允许 %s 向您发送信息。"
+msgstr "验证码已被发送到你新增的 IM 地址。你必须允许 %s 向你发送信息。"
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
-msgstr "即时通讯帐号错误。"
+msgstr "IM 地址错误。"
 
 #. TRANS: Server error thrown on database error canceling IM address confirmation.
-#: actions/imsettings.php:397
+#: actions/imsettings.php:400
 msgid "Couldn't delete IM confirmation."
 msgstr "无法删除 IM 确认。"
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
-msgstr "IM 验证已取消。"
+msgstr "IM 确认已取消。"
 
 #. TRANS: Message given trying to remove an IM address that is not
 #. TRANS: registered for the active user.
-#: actions/imsettings.php:424
+#: actions/imsettings.php:427
 msgid "That is not your Jabber ID."
-msgstr "这不是您的Jabber帐号。"
+msgstr "这不是你的 Jabber ID。"
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
-msgstr "IM 地址已除。"
+msgstr "IM 地址已除。"
 
 #: actions/inbox.php:59
 #, php-format
@@ -2104,7 +2128,7 @@ msgstr "%s 的收件箱"
 
 #: actions/inbox.php:115
 msgid "This is your inbox, which lists your incoming private messages."
-msgstr "这是您的收件箱,包含发给您的私人消息。"
+msgstr "这是你的收件箱,包含发给你的私信。"
 
 #: actions/invite.php:39
 msgid "Invites have been disabled."
@@ -2113,12 +2137,12 @@ msgstr "邀请已被禁用。"
 #: actions/invite.php:41
 #, php-format
 msgid "You must be logged in to invite other users to use %s."
-msgstr "必须登录才能邀请他人使用%s。"
+msgstr "必须登录才能邀请他人使用%s。"
 
 #: actions/invite.php:72
 #, php-format
 msgid "Invalid email address: %s"
-msgstr "电子邮件地址 %s 不正确"
+msgstr "无效的电子邮件地址:%s"
 
 #: actions/invite.php:110
 msgid "Invitation(s) sent"
@@ -2130,7 +2154,7 @@ msgstr "邀请新用户"
 
 #: actions/invite.php:128
 msgid "You are already subscribed to these users:"
-msgstr "您已关注了这些用户:"
+msgstr "你已经关注了这些用户:"
 
 #. TRANS: Whois output.
 #. TRANS: %1$s nickname of the queried user, %2$s is their profile URL.
@@ -2142,7 +2166,7 @@ msgstr "%1$s (%2$s)"
 #: actions/invite.php:136
 msgid ""
 "These people are already users and you were automatically subscribed to them:"
-msgstr "这些好友已注册,已自动关注了这些用户:"
+msgstr "这些好友已注册,已自动关注了这些用户:"
 
 #: actions/invite.php:144
 msgid "Invitation(s) sent to the following people:"
@@ -2152,7 +2176,7 @@ msgstr "已发送邀请给这些人:"
 msgid ""
 "You will be notified when your invitees accept the invitation and register "
 "on the site. Thanks for growing the community!"
-msgstr "如果其他人接受邀请并注册,您将得到通知。谢谢您推动了社区发展壮大!"
+msgstr "如果其他人接受邀请并注册,你将得到通知。谢谢你推动了社区发展壮大!"
 
 #: actions/invite.php:162
 msgid ""
@@ -2161,7 +2185,7 @@ msgstr "使用这个表单来邀请好友和同事加入。"
 
 #: actions/invite.php:187
 msgid "Email addresses"
-msgstr "电子邮件地址"
+msgstr "电地址"
 
 #: actions/invite.php:189
 msgid "Addresses of friends to invite (one per line)"
@@ -2185,7 +2209,7 @@ msgstr "发布"
 #: actions/invite.php:228
 #, php-format
 msgid "%1$s has invited you to join them on %2$s"
-msgstr "%1$s 邀请加入 %2$s"
+msgstr "%1$s 邀请加入 %2$s"
 
 #. TRANS: Body text for invitation email. Note that 'them' is correct as a gender-neutral singular 3rd-person pronoun in English.
 #: actions/invite.php:231
@@ -2218,32 +2242,32 @@ msgid ""
 "\n"
 "Sincerely, %2$s\n"
 msgstr ""
-"%1$s 邀请加入 %2$s (%3$s)。\n"
+"%1$s 邀请加入 %2$s (%3$s)。\n"
 "\n"
-"%2$s 是一个能让您和您认识的或感兴趣的人保持联系的微博客服务。 \n"
+"%2$s 是一个能让你和你认识的或感兴趣的人保持联系的微博客服务。 \n"
 "\n"
-"您可以和您认识的人分享您的近况、想法或者您的网络生活。您也可以结交有共同兴趣"
+"你可以和你认识的人分享你的近况、想法或者你的网络生活。你也可以结交有共同兴趣"
 "的新朋友。\n"
 "\n"
 "%1$s 说:\n"
 "\n"
 "%4$s\n"
 "\n"
-"您可以在这里查阅%1$s在%2$s的资料页:\n"
+"你可以在这里查看%1$s在%2$s的资料页:\n"
 "\n"
 "%5$s\n"
 "\n"
-"如果想试试这个服务,请点击下面的链接接受邀请。\n"
+"如果想试试这个服务,请点击下面的链接接受邀请。\n"
 "\n"
 "%6$s\n"
 "\n"
-"如果您目前不愿意,请跳过这条信息。感谢您的耐心和时间。\n"
+"如果你目前不愿意,请跳过这条信息。感谢你的耐心和时间。\n"
 "\n"
 "诚挚的感谢, %2$s\n"
 
 #: actions/joingroup.php:60
 msgid "You must be logged in to join a group."
-msgstr "必须登录才能加入小组。"
+msgstr "必须登录才能加入小组。"
 
 #: actions/joingroup.php:88 actions/leavegroup.php:88
 msgid "No nickname or ID."
@@ -2256,12 +2280,12 @@ msgstr "%1$s加入了%2$s小组"
 
 #: actions/leavegroup.php:60
 msgid "You must be logged in to leave a group."
-msgstr "必须登录才能离开小组。"
+msgstr "必须登录才能离开小组。"
 
 #. TRANS: Error text shown when trying to leave an existing group the user is not a member of.
 #: actions/leavegroup.php:100 lib/command.php:389
 msgid "You are not a member of that group."
-msgstr "不是该群小组成员。"
+msgstr "不是该群小组成员。"
 
 #: actions/leavegroup.php:137
 #, php-format
@@ -2278,7 +2302,7 @@ msgstr "用户名或密码不正确。"
 
 #: actions/login.php:154 actions/otp.php:120
 msgid "Error setting user. You are probably not authorized."
-msgstr "设置用户时出错。可能没有被认证。"
+msgstr "设置用户时出错。可能没有被认证。"
 
 #: actions/login.php:210 actions/login.php:263 lib/logingroupnav.php:79
 msgid "Login"
@@ -2308,13 +2332,13 @@ msgstr "由于安全原因,修改设置前需要输入用户名和密码。"
 
 #: actions/login.php:292
 msgid "Login with your username and password."
-msgstr "用用户名和密码登录。"
+msgstr "使用用户名和密码登录。"
 
 #: actions/login.php:295
 #, php-format
 msgid ""
 "Don't have a username yet? [Register](%%action.register%%) a new account."
-msgstr "没有è´¦æ\88·ï¼\9f[注å\86\8c](%%action.register%%) ä¸\80个æ\96°å¸\90å\8f·ã\80\82"
+msgstr "没有å¸\90å\8f·ï¼\9f[注å\86\8c](%%action.register%%) ä¸\80个æ\96°å¸\90å\8f·ã\80\82"
 
 #: actions/makeadmin.php:92
 msgid "Only an admin can make another user an admin."
@@ -2337,7 +2361,7 @@ msgstr "无法让%1$s成为%2$s小组的管理员。"
 
 #: actions/microsummary.php:69
 msgid "No current status."
-msgstr "没有当前状态。"
+msgstr "没有当前消息。"
 
 #: actions/newapplication.php:52
 msgid "New Application"
@@ -2477,7 +2501,7 @@ msgstr "呼叫已发出!"
 
 #: actions/oauthappssettings.php:59
 msgid "You must be logged in to list your applications."
-msgstr "必须登录才能查看您的程序列表。"
+msgstr "必须登录才能查看你的应用列表。"
 
 #: actions/oauthappssettings.php:74
 msgid "OAuth applications"
@@ -2485,12 +2509,12 @@ msgstr "OAuth 应用"
 
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
-msgstr "已经登记的程序。"
+msgstr "已经登记的程序。"
 
 #: actions/oauthappssettings.php:135
 #, php-format
 msgid "You have not registered any applications yet."
-msgstr "还没登记任何程序。"
+msgstr "还没登记任何程序。"
 
 #: actions/oauthconnectionssettings.php:72
 msgid "Connected applications"
@@ -2498,11 +2522,11 @@ msgstr "关联的应用"
 
 #: actions/oauthconnectionssettings.php:83
 msgid "You have allowed the following applications to access you account."
-msgstr "已允许以下程序访问你的账户。"
+msgstr "已允许以下程序访问你的账户。"
 
 #: actions/oauthconnectionssettings.php:175
 msgid "You are not a user of that application."
-msgstr "不是那个应用的用户。"
+msgstr "不是那个应用的用户。"
 
 #: actions/oauthconnectionssettings.php:186
 #, php-format
@@ -2511,7 +2535,7 @@ msgstr "不能取消%s程序的访问。"
 
 #: actions/oauthconnectionssettings.php:198
 msgid "You have not authorized any applications to use your account."
-msgstr "您还没允许任何程序使用您的账户。"
+msgstr "你还没允许任何程序使用你的账户。"
 
 #: actions/oauthconnectionssettings.php:211
 msgid "Developers can edit the registration settings for their applications "
@@ -2524,13 +2548,13 @@ msgstr "消息没有对应用户。"
 #: actions/oembed.php:87 actions/shownotice.php:175
 #, php-format
 msgid "%1$s's status on %2$s"
-msgstr "%1$s 的 %2$s 状态"
+msgstr "%1$s在%2$s时发的消息"
 
 #. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
 #: actions/oembed.php:159
 #, php-format
 msgid "Content type %s not supported."
-msgstr "%s文件类型不被支持。"
+msgstr "%s内容类型不被支持。"
 
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
@@ -2539,8 +2563,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr "请只用HTTP明文的%sURLs的地址。"
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr "不支持的数据格式。"
 
@@ -2570,15 +2594,15 @@ msgstr "缩短 URL 使用"
 
 #: actions/othersettings.php:117
 msgid "Automatic shortening service to use."
-msgstr "è¦\81使ç\94¨ç\9a\84è\87ªå\8a¨ç¼©ç\9f­服务。"
+msgstr "è¦\81使ç\94¨ç\9a\84è\87ªå\8a¨ç\9f­ç½\91å\9d\80服务。"
 
 #: actions/othersettings.php:122
 msgid "View profile designs"
-msgstr "查看个人页面设计"
+msgstr "查看个人页面外观"
 
 #: actions/othersettings.php:123
 msgid "Show or hide profile designs."
-msgstr "显示或隐藏个人页面设计。"
+msgstr "显示或隐藏个人页面外观。"
 
 #: actions/othersettings.php:153
 msgid "URL shortening service is too long (max 50 chars)."
@@ -2586,23 +2610,23 @@ msgstr "短网址服务过长(不能超过50个字符)。"
 
 #: actions/otp.php:69
 msgid "No user ID specified."
-msgstr "æ­¤ID没æ\9c\89ç\9b¸åº\94ç\94¨æ\88·。"
+msgstr "没ç\94¨æ\8c\87å®\9aç\94¨æ\88· ID。"
 
 #: actions/otp.php:83
 msgid "No login token specified."
-msgstr "æ\8c\87å®\9aç\9a\84ç\99»å½\95令ç\89\8cæ\97 æ\95\88。"
+msgstr "没æ\9c\89æ\8c\87å®\9aç\99»å½\95 token。"
 
 #: actions/otp.php:90
 msgid "No login token requested."
-msgstr "没æ\9c\89请æ±\82ç\99»å½\95令ç\89\8c。"
+msgstr "没æ\9c\89请æ±\82ç\9a\84ç\99»å½\95 token。"
 
 #: actions/otp.php:95
 msgid "Invalid login token specified."
-msgstr "指定的登录令牌无效。"
+msgstr "指定的登录 token 无效。"
 
 #: actions/otp.php:104
 msgid "Login token expired."
-msgstr "登录令牌已过期。"
+msgstr "登录 token 已过期。"
 
 #: actions/outbox.php:58
 #, php-format
@@ -2616,7 +2640,7 @@ msgstr "%s 的发件箱"
 
 #: actions/outbox.php:116
 msgid "This is your outbox, which lists private messages you have sent."
-msgstr "这是您的发件箱,包含您发送的私人消息。"
+msgstr "这是你的发件箱,包含你发送的私信。"
 
 #: actions/passwordsettings.php:58
 msgid "Change password"
@@ -2624,7 +2648,7 @@ msgstr "修改密码"
 
 #: actions/passwordsettings.php:69
 msgid "Change your password."
-msgstr "修改的密码"
+msgstr "修改的密码"
 
 #: actions/passwordsettings.php:96 actions/recoverpassword.php:231
 msgid "Password change"
@@ -2649,7 +2673,7 @@ msgstr "密码确认"
 
 #: actions/passwordsettings.php:113 actions/recoverpassword.php:240
 msgid "Same as password above"
-msgstr "相同的密码"
+msgstr "与上面相同的密码"
 
 #: actions/passwordsettings.php:117
 msgid "Change"
@@ -2669,7 +2693,7 @@ msgstr "旧密码不正确"
 
 #: actions/passwordsettings.php:181
 msgid "Error saving user; invalid."
-msgstr "保存用户时出错;不正确。"
+msgstr "保存用户时出错;无效。"
 
 #: actions/passwordsettings.php:186 actions/recoverpassword.php:381
 msgid "Can't save new password."
@@ -2680,7 +2704,7 @@ msgid "Password saved."
 msgstr "密码已保存。"
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr "路径"
 
@@ -2818,7 +2842,7 @@ msgstr "使用 SSL"
 
 #: actions/pathsadminpanel.php:330
 msgid "When to use SSL"
-msgstr "使ç\94¨ SSL ç\9a\84æ\97¶æ\9cº"
+msgstr "ä»\80ä¹\88æ\97¶å\80\99使ç\94¨ SSL"
 
 #: actions/pathsadminpanel.php:335
 msgid "SSL server"
@@ -2871,7 +2895,7 @@ msgstr "个人设置"
 #: actions/profilesettings.php:71
 msgid ""
 "You can update your personal profile info here so people know more about you."
-msgstr "在这里更新个人信息,让大家对了解得更多。"
+msgstr "在这里更新个人信息,让大家对了解得更多。"
 
 #: actions/profilesettings.php:99
 msgid "Profile information"
@@ -2889,22 +2913,22 @@ msgstr "全名"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "主页"
 
 #: actions/profilesettings.php:117 actions/register.php:462
 msgid "URL of your homepage, blog, or profile on another site"
-msgstr "的主页、博客或在其他网站的URL"
+msgstr "的主页、博客或在其他网站的URL"
 
 #: actions/profilesettings.php:122 actions/register.php:468
 #, php-format
 msgid "Describe yourself and your interests in %d chars"
-msgstr "用不超过%d个字符描述您自己和您的爱好"
+msgstr "用不超过%d个字符描述你自己和你的兴趣"
 
 #: actions/profilesettings.php:125 actions/register.php:471
 msgid "Describe yourself and your interests"
-msgstr "描述您自己和您的爱好"
+msgstr "描述你自己和你的兴趣"
 
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
@@ -2919,7 +2943,7 @@ msgstr "位置"
 
 #: actions/profilesettings.php:134 actions/register.php:480
 msgid "Where you are, like \"City, State (or Region), Country\""
-msgstr "的地理位置,格式类似\"城市,省份,国家\""
+msgstr "的地理位置,格式类似\"城市,省份,国家\""
 
 #: actions/profilesettings.php:138
 msgid "Share my current location when posting notices"
@@ -2934,7 +2958,7 @@ msgstr "标签"
 #: actions/profilesettings.php:147
 msgid ""
 "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated"
-msgstr "的标签 (字母、数字、“-”、“. ”和“ _”), 以逗号或空格分隔"
+msgstr "的标签 (字母、数字、“-”、“. ”和“ _”), 以逗号或空格分隔"
 
 #: actions/profilesettings.php:151
 msgid "Language"
@@ -2950,7 +2974,7 @@ msgstr "时区"
 
 #: actions/profilesettings.php:162
 msgid "What timezone are you normally in?"
-msgstr "一般处于哪个时区?"
+msgstr "一般处于哪个时区?"
 
 #: actions/profilesettings.php:167
 msgid ""
@@ -2992,7 +3016,7 @@ msgid "Couldn't save tags."
 msgstr "无法保存标签。"
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr "设置已保存。"
 
@@ -3097,7 +3121,7 @@ msgstr "标签云"
 
 #: actions/recoverpassword.php:36
 msgid "You are already logged in!"
-msgstr "已经登录了!"
+msgstr "已经登录了!"
 
 #: actions/recoverpassword.php:62
 msgid "No such recovery code."
@@ -3127,11 +3151,11 @@ msgstr "无法更新已确认的电子邮件。"
 msgid ""
 "If you have forgotten or lost your password, you can get a new one sent to "
 "the email address you have stored in your account."
-msgstr "如果您忘记或丢失了密码,您可以发送一个新的密码到您之前设置的邮箱中。"
+msgstr "如果你忘记或丢失了密码,你可以发送一个新的密码到你之前设置的邮箱中。"
 
 #: actions/recoverpassword.php:158
 msgid "You have been identified. Enter a new password below. "
-msgstr "的身份已被验证,请在下面输入新的密码。 "
+msgstr "的身份已被验证,请在下面输入新的密码。 "
 
 #: actions/recoverpassword.php:188
 msgid "Password recovery"
@@ -3143,7 +3167,7 @@ msgstr "昵称或电子邮件"
 
 #: actions/recoverpassword.php:193
 msgid "Your nickname on this server, or your registered email address."
-msgstr "您在此服务器的昵称,或注册邮箱。"
+msgstr "你在此服务器的昵称,或登记的邮箱。"
 
 #: actions/recoverpassword.php:199 actions/recoverpassword.php:200
 msgid "Recover"
@@ -3193,7 +3217,7 @@ msgstr "保存地址确认时出错。"
 msgid ""
 "Instructions for recovering your password have been sent to the email "
 "address registered to your account."
-msgstr "恢复密码的说明已被发送到登记的电子邮箱中。"
+msgstr "恢复密码的说明已被发送到登记的电子邮箱中。"
 
 #: actions/recoverpassword.php:357
 msgid "Unexpected password reset."
@@ -3213,7 +3237,7 @@ msgstr "保存用户设置时出错。"
 
 #: actions/recoverpassword.php:395
 msgid "New password successfully saved. You are now logged in."
-msgstr "新密码已保存,现在已登录。"
+msgstr "新密码已保存,现在已登录。"
 
 #: actions/register.php:92 actions/register.php:196 actions/register.php:412
 msgid "Sorry, only invited people can register."
@@ -3237,7 +3261,7 @@ msgstr "不允许注册。"
 
 #: actions/register.php:205
 msgid "You can't register if you don't agree to the license."
-msgstr "必须同意许可协议才能注册。"
+msgstr "必须同意许可协议才能注册。"
 
 #: actions/register.php:219
 msgid "Email address already exists."
@@ -3252,7 +3276,7 @@ msgid ""
 "With this form you can create a new account. You can then post notices and "
 "link up to friends and colleagues. "
 msgstr ""
-"您可以通过此表单建立一个新的账户。然后您就可以发布消息并与朋友和同事们保持联"
+"你可以通过此表单建立一个新的账户。然后你就可以发布消息并与朋友和同事们保持联"
 "系。 "
 
 #: actions/register.php:432
@@ -3330,23 +3354,23 @@ msgid ""
 "\n"
 "Thanks for signing up and we hope you enjoy using this service."
 msgstr ""
-"恭喜,%s!欢迎来到%%%%site.name%%%%。可能想要……\n"
+"恭喜,%s!欢迎来到%%%%site.name%%%%。可能想要……\n"
 "\n"
-"* 查看您的[资料页](%2$s) 并发布您的第一条消息.\n"
+"* 查看你的[资料页](%2$s) 并发布你的第一条消息.\n"
 "* 添加 [Jabber/GTalk 地址](%%%%action.imsettings%%%%) 然后通过 IM 发布信"
 "息。\n"
-"* [搜索](%%%%action.peoplesearch%%%%) 您认识的或和您有共同兴趣的朋友。 \n"
-"* 更新您的 [资料页设置](%%%%action.profilesettings%%%%) 告诉大家更多关于您的"
+"* [搜索](%%%%action.peoplesearch%%%%) 你认识的或和你有共同兴趣的朋友。 \n"
+"* 更新你的 [资料页设置](%%%%action.profilesettings%%%%) 告诉大家更多关于你的"
 "情况。 \n"
-"* 阅读 [在线文档](%%%%doc.help%%%%) 有的功能也许还不熟悉。\n"
+"* 阅读 [在线文档](%%%%doc.help%%%%) 有的功能也许还不熟悉。\n"
 "\n"
-"感谢您的注册,希望您喜欢这个服务。"
+"感谢你的注册,希望你喜欢这个服务。"
 
 #: actions/register.php:607
 msgid ""
 "(You should receive a message by email momentarily, with instructions on how "
 "to confirm your email address.)"
-msgstr "(将收到一封邮件,包含了如何确认邮件地址的说明。)"
+msgstr "(将收到一封邮件,包含了如何确认邮件地址的说明。)"
 
 #: actions/remotesubscribe.php:98
 #, php-format
@@ -3355,9 +3379,9 @@ msgid ""
 "register%%) a new  account. If you already have an account  on a [compatible "
 "microblogging site](%%doc.openmublog%%),  enter your profile URL below."
 msgstr ""
-"要关注用户或小组,需要[登录](%%action.login%%),或[注册](%%action.register%"
-"%) 一个新账户。如果已经在另一个[兼容的微博客](%%doc.openmublog%%)有账户,请"
-"填入的资料页 URL。"
+"要关注用户或小组,需要[登录](%%action.login%%),或[注册](%%action.register%"
+"%) 一个新账户。如果已经在另一个[兼容的微博客](%%doc.openmublog%%)有账户,请"
+"填入的资料页 URL。"
 
 #: actions/remotesubscribe.php:112
 msgid "Remote subscribe"
@@ -3381,7 +3405,7 @@ msgstr "资料页 URL"
 
 #: actions/remotesubscribe.php:134
 msgid "URL of your profile on another compatible microblogging service"
-msgstr "在其他兼容的微博客服务的资料页 URL"
+msgstr "在其他兼容的微博客服务的资料页 URL"
 
 #: actions/remotesubscribe.php:137 lib/subscribeform.php:139
 #: lib/userprofile.php:406
@@ -3398,7 +3422,7 @@ msgstr "不是有效的资料页 URL (没有YADIS 文档或定义了无效的 XR
 
 #: actions/remotesubscribe.php:176
 msgid "That’s a local profile! Login to subscribe."
-msgstr "这是一个本地用户!需要登录才能关注。"
+msgstr "这是一个本地用户!登录才能关注。"
 
 #: actions/remotesubscribe.php:183
 msgid "Couldn’t get a request token."
@@ -3418,7 +3442,7 @@ msgstr "你不能重复自己的消息。"
 
 #: actions/repeat.php:90
 msgid "You already repeated that notice."
-msgstr "已转发过了那个消息。"
+msgstr "已转发过了那个消息。"
 
 #: actions/repeat.php:114 lib/noticelist.php:676
 msgid "Repeated"
@@ -3432,7 +3456,7 @@ msgstr "已转发!"
 #: lib/personalgroupnav.php:105
 #, php-format
 msgid "Replies to %s"
-msgstr "%s 的回复"
+msgstr "对 %s 的回复"
 
 #: actions/replies.php:128
 #, php-format
@@ -3467,7 +3491,7 @@ msgid ""
 "You can engage other users in a conversation, subscribe to more people or "
 "[join groups](%%action.groups%%)."
 msgstr ""
-"可以让其他用户参与对话,关注更多的人或者 [加入小组](%%action.groups%%)。"
+"可以让其他用户参与对话,关注更多的人或者 [加入小组](%%action.groups%%)。"
 
 #: actions/replies.php:206
 #, php-format
@@ -3475,21 +3499,21 @@ msgid ""
 "You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action."
 "newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
-"可以试着 [呼叫%1$s](../%2$s) 或者给他们 [发一些消息](%%%%action.newnotice%%"
+"可以试着 [呼叫%1$s](../%2$s) 或者给他们 [发一些消息](%%%%action.newnotice%%"
 "%%?status_textarea=%3$s)。"
 
 #: actions/repliesrss.php:72
 #, php-format
 msgid "Replies to %1$s on %2$s!"
-msgstr "对%sç\9a\84å\9b\9eå¤\8dï¼\8c第%2$d页"
+msgstr "å\9c¨%2$sä¸\8a对%1$sç\9a\84å\9b\9eå¤\8d!"
 
 #: actions/revokerole.php:75
 msgid "You cannot revoke user roles on this site."
-msgstr "不能在这个网站移除用户角色。"
+msgstr "不能在这个网站移除用户角色。"
 
 #: actions/revokerole.php:82
 msgid "User doesn't have this role."
-msgstr "用户没有角色。"
+msgstr "用户没有此权限。"
 
 #: actions/rsd.php:146 actions/version.php:159
 msgid "StatusNet"
@@ -3497,7 +3521,7 @@ msgstr "StatusNet"
 
 #: actions/sandbox.php:65 actions/unsandbox.php:65
 msgid "You cannot sandbox users on this site."
-msgstr "您不能在这个网站授予用户角色。"
+msgstr "你不能在这个网站授予用户权限。"
 
 #: actions/sandbox.php:72
 msgid "User is already sandboxed."
@@ -3505,13 +3529,13 @@ msgstr "用于已经在沙盒中了。"
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr "Sessions"
 
 #: actions/sessionsadminpanel.php:65
 msgid "Session settings for this StatusNet site."
-msgstr "这个 StatusNet 网站的设计设置"
+msgstr "这个 StatusNet 网站的外观设置"
 
 #: actions/sessionsadminpanel.php:175
 msgid "Handle sessions"
@@ -3536,31 +3560,31 @@ msgstr "保存访问设置"
 
 #: actions/showapplication.php:82
 msgid "You must be logged in to view an application."
-msgstr "必须登录才能创建小组。"
+msgstr "必须登录才能创建小组。"
 
 #: actions/showapplication.php:157
 msgid "Application profile"
 msgstr "未找到应用。"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr "图标"
 
 #. TRANS: Form input field label for application name.
 #: actions/showapplication.php:169 actions/version.php:197
-#: lib/applicationeditform.php:199
+#: lib/applicationeditform.php:190
 msgid "Name"
 msgstr "名称"
 
 #. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
+#: actions/showapplication.php:178 lib/applicationeditform.php:226
 msgid "Organization"
 msgstr "组织名称必填。"
 
 #. TRANS: Form input field label.
 #: actions/showapplication.php:187 actions/version.php:200
-#: lib/applicationeditform.php:216 lib/groupeditform.php:172
+#: lib/applicationeditform.php:207 lib/groupeditform.php:172
 msgid "Description"
 msgstr "描述"
 
@@ -3614,7 +3638,7 @@ msgstr "提示:我们支持HMAC-SHA1签名。我们不支持明文的签名方
 
 #: actions/showapplication.php:309
 msgid "Are you sure you want to reset your consumer key and secret?"
-msgstr "确定要重置你的consumer key和secret吗?"
+msgstr "确定要重置你的consumer key和secret吗?"
 
 #: actions/showfavorites.php:79
 #, php-format
@@ -3645,7 +3669,7 @@ msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
 "notices you like to bookmark them for later or shed a spotlight on them."
 msgstr ""
-"还没收藏任何消息呢。点击消息上的添加收藏按钮就可以添加到收藏夹以后查看或者"
+"还没收藏任何消息呢。点击消息上的添加收藏按钮就可以添加到收藏夹以后查看或者"
 "收藏一堆有趣的消息。"
 
 #: actions/showfavorites.php:208
@@ -3669,7 +3693,7 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr "这是一种分享你喜欢的内容的方式。"
 
-#: actions/showgroup.php:82 lib/groupnav.php:86
+#: actions/showgroup.php:82
 #, php-format
 msgid "%s group"
 msgstr "%s 小组"
@@ -3721,7 +3745,7 @@ msgstr "%s小组的消息聚合 (Atom)"
 msgid "FOAF for %s group"
 msgstr "%s 的发件箱"
 
-#: actions/showgroup.php:393 actions/showgroup.php:445 lib/groupnav.php:91
+#: actions/showgroup.php:393 actions/showgroup.php:445
 msgid "Members"
 msgstr "小组成员"
 
@@ -3837,7 +3861,7 @@ msgstr "这是%1$s的时间线,但是%2$s还没有发布任何内容。"
 msgid ""
 "Seen anything interesting recently? You haven't posted any notices yet, now "
 "would be a good time to start :)"
-msgstr "最近看到了什么有趣的消息了么?还没有发布消息呢,现在开始吧 :)"
+msgstr "最近看到了什么有趣的消息了么?还没有发布消息呢,现在开始吧 :)"
 
 #: actions/showstream.php:207
 #, php-format
@@ -3845,7 +3869,7 @@ msgid ""
 "You can try to nudge %1$s or [post something to them](%%%%action.newnotice%%%"
 "%?status_textarea=%2$s)."
 msgstr ""
-"可以试着呼叫%1$s或给他们 [发一些消息](%%%%action.newnotice%%%%?"
+"可以试着呼叫%1$s或给他们 [发一些消息](%%%%action.newnotice%%%%?"
 "status_textarea=%2$s)。"
 
 #: actions/showstream.php:243
@@ -3879,11 +3903,11 @@ msgstr "%s 的转发"
 
 #: actions/silence.php:65 actions/unsilence.php:65
 msgid "You cannot silence users on this site."
-msgstr "您不能在这个站点移除用户角色。"
+msgstr "你不能在这个站点上将用户禁言。"
 
 #: actions/silence.php:72
 msgid "User is already silenced."
-msgstr "用户已经静默。"
+msgstr "用户已经被禁言。"
 
 #: actions/siteadminpanel.php:69
 msgid "Basic settings for this StatusNet site"
@@ -3895,7 +3919,7 @@ msgstr "网站名称长度必须大于零。"
 
 #: actions/siteadminpanel.php:141
 msgid "You must have a valid contact email address."
-msgstr "必须有一个有效的 email 地址。"
+msgstr "必须有一个有效的 email 地址。"
 
 #: actions/siteadminpanel.php:159
 #, php-format
@@ -3920,7 +3944,7 @@ msgstr "网站名称"
 
 #: actions/siteadminpanel.php:225
 msgid "The name of your site, like \"Yourcompany Microblog\""
-msgstr "您的网站名称,例如\\\"您公司网站的微博\\\""
+msgstr "你的网站名称,例如\\\"你公司网站的微博\\\""
 
 #: actions/siteadminpanel.php:229
 msgid "Brought by"
@@ -3944,7 +3968,7 @@ msgstr "网站的联系我们电子邮件地址"
 
 #: actions/siteadminpanel.php:245
 msgid "Local"
-msgstr "本地"
+msgstr "本地"
 
 #: actions/siteadminpanel.php:256
 msgid "Default timezone"
@@ -4020,7 +4044,7 @@ msgstr "SMS 设置"
 #: actions/smssettings.php:74
 #, php-format
 msgid "You can receive SMS messages through email from %%site.name%%."
-msgstr "可以通过 %%site.name%% 的电子邮件接收SMS短信。"
+msgstr "可以通过 %%site.name%% 的电子邮件接收SMS短信。"
 
 #. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
 #: actions/smssettings.php:97
@@ -4098,7 +4122,7 @@ msgstr "未选择运营商。"
 #. TRANS: Message given saving SMS phone number that is already set.
 #: actions/smssettings.php:352
 msgid "That is already your phone number."
-msgstr "已登记此电话号码。"
+msgstr "已登记此电话号码。"
 
 #. TRANS: Message given saving SMS phone number that is already set for another user.
 #: actions/smssettings.php:356
@@ -4111,7 +4135,7 @@ 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 ""
-"验证码已被发送到您新增的电话号码。请检查您的电话,找到验证码并按要求使用它。"
+"验证码已被发送到你新增的电话号码。请检查你的电话,找到验证码并按要求使用它。"
 
 #. TRANS: Message given canceling SMS phone number confirmation for the wrong phone number.
 #: actions/smssettings.php:413
@@ -4152,7 +4176,7 @@ 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 ""
-"电话的服务商。如果的服务商支持通过电子邮件发送SMS短信,而这里尚未列出,请联"
+"电话的服务商。如果的服务商支持通过电子邮件发送SMS短信,而这里尚未列出,请联"
 "系 %s 以告知。"
 
 #. TRANS: Message given saving SMS phone number confirmation code without having provided one.
@@ -4162,7 +4186,7 @@ msgstr "没有输入验证码"
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr "快照"
 
@@ -4220,7 +4244,7 @@ msgstr "保存访问设置"
 
 #: actions/subedit.php:70
 msgid "You are not subscribed to that profile."
-msgstr "没有关注这个用户"
+msgstr "没有关注这个用户"
 
 #. TRANS: Exception thrown when a subscription could not be stored on the server.
 #: actions/subedit.php:83 classes/Subscription.php:136
@@ -4237,7 +4261,7 @@ msgstr "没有这个文件。"
 
 #: actions/subscribe.php:117
 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
-msgstr "不能用这个操作关注一个 OMB 0.1 远程用户。"
+msgstr "不能用这个操作关注一个 OMB 0.1 远程用户。"
 
 #: actions/subscribe.php:145
 msgid "Subscribed"
@@ -4246,16 +4270,16 @@ msgstr "已关注"
 #: actions/subscribers.php:50
 #, php-format
 msgid "%s subscribers"
-msgstr "%s关注者"
+msgstr "%s关注者"
 
 #: actions/subscribers.php:52
 #, php-format
 msgid "%1$s subscribers, page %2$d"
-msgstr "%1$s关注者,第%2$d页"
+msgstr "%1$s关注者,第%2$d页"
 
 #: actions/subscribers.php:63
 msgid "These are the people who listen to your notices."
-msgstr "这些用户关注了的消息。"
+msgstr "这些用户关注了的消息。"
 
 #: actions/subscribers.php:67
 #, php-format
@@ -4266,7 +4290,7 @@ msgstr "这些用户关注了%s的消息。"
 msgid ""
 "You have no subscribers. Try subscribing to people you know and they might "
 "return the favor"
-msgstr "还没有人关注您,尝试关注一些您认识的用户,他们或许会关注您"
+msgstr "还没有人关注你,尝试关注一些你认识的用户,他们或许会关注你"
 
 #: actions/subscribers.php:110
 #, php-format
@@ -4285,16 +4309,16 @@ msgstr ""
 #: actions/subscriptions.php:52
 #, php-format
 msgid "%s subscriptions"
-msgstr "%s的关注"
+msgstr "%s 关注的用户"
 
 #: actions/subscriptions.php:54
 #, php-format
 msgid "%1$s subscriptions, page %2$d"
-msgstr "%1$s的关注,第%2$d页"
+msgstr "%1$s 关注的用户,第%2$d页"
 
 #: actions/subscriptions.php:65
 msgid "These are the people whose notices you listen to."
-msgstr "这是关注的用户。"
+msgstr "这是关注的用户。"
 
 #: actions/subscriptions.php:69
 #, php-format
@@ -4310,10 +4334,10 @@ msgid ""
 "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can "
 "automatically subscribe to people you already follow there."
 msgstr ""
-"您现在还看不到其他人的消息,试着去关注一些您认识的人。试一下 [用户搜索](%%"
-"action.peoplesearch%%),在我们的 [推荐用户](%%action.featured%%) 中找一些感"
-"兴趣的小组的用户。如果您是  [Twitter用户](%%action.twittersettings%%),您可以"
-"自动关注已经关注的用户。"
+"你现在还看不到其他人的消息,试着去关注一些你认识的人。试一下 [用户搜索](%%"
+"action.peoplesearch%%),在我们的 [推荐用户](%%action.featured%%) 中找一些感"
+"兴趣的小组的用户。如果你是  [Twitter用户](%%action.twittersettings%%),你可以"
+"自动关注已经关注的用户。"
 
 #: actions/subscriptions.php:128 actions/subscriptions.php:132
 #, php-format
@@ -4380,7 +4404,7 @@ msgstr ""
 #: actions/tagother.php:193
 msgid ""
 "You can only tag people you are subscribed to or who are subscribed to you."
-msgstr "您只能给您关注或关注您的人添加标签。"
+msgstr "你只能给你关注或关注你的人添加标签。"
 
 #: actions/tagother.php:200
 msgid "Could not save tags."
@@ -4388,7 +4412,7 @@ msgstr "无法保存标签。"
 
 #: actions/tagother.php:236
 msgid "Use this form to add tags to your subscribers or subscriptions."
-msgstr "使用这个表单给您的关注者或您关注的用户添加标签。"
+msgstr "使用这个表单给你的关注者或你关注的用户添加标签。"
 
 #: actions/tagrss.php:35
 msgid "No such tag."
@@ -4396,15 +4420,15 @@ msgstr "没有此标签。"
 
 #: actions/unblock.php:59
 msgid "You haven't blocked that user."
-msgstr "未屏蔽该用户。"
+msgstr "未屏蔽该用户。"
 
 #: actions/unsandbox.php:72
 msgid "User is not sandboxed."
-msgstr "用户还没在沙盒中。"
+msgstr "用户在沙盒中。"
 
 #: actions/unsilence.php:72
 msgid "User is not silenced."
-msgstr "用户已经静默。"
+msgstr "用户未被禁言。"
 
 #: actions/unsubscribe.php:77
 msgid "No profile ID in request."
@@ -4499,7 +4523,7 @@ msgid ""
 "user’s notices. If you didn’t just ask to subscribe to someone’s notices, "
 "click “Reject”."
 msgstr ""
-"请检查这些详细信息,确认希望关注此用户的消息。如果不想关注,请点击\\\"拒绝"
+"请检查这些详细信息,确认希望关注此用户的消息。如果不想关注,请点击\\\"拒绝"
 "\\\"。"
 
 #: actions/userauthorization.php:196 actions/version.php:167
@@ -4537,7 +4561,7 @@ msgid ""
 "with the site’s instructions for details on how to authorize the "
 "subscription. Your subscription token is:"
 msgstr ""
-"已授权关注,但是没有回传 URL。请到网站查看如何授权关注。的 subscription "
+"已授权关注,但是没有回传 URL。请到网站查看如何授权关注。的 subscription "
 "token 是:"
 
 #: actions/userauthorization.php:266
@@ -4588,23 +4612,23 @@ msgstr "头像 URL ‘%s’ 图像格式错误。"
 
 #: actions/userdesignsettings.php:76 lib/designsettings.php:65
 msgid "Profile design"
-msgstr "查看个人页面设计"
+msgstr "个人页面外观"
 
 #: actions/userdesignsettings.php:87 lib/designsettings.php:76
 msgid ""
 "Customize the way your profile looks with a background image and a colour "
 "palette of your choice."
-msgstr "通过背景图片和调色板自定义的页面外观。"
+msgstr "通过背景图片和调色板自定义的页面外观。"
 
 #: actions/userdesignsettings.php:282
 msgid "Enjoy your hotdog!"
-msgstr "享受的成果吧!"
+msgstr "享受的成果吧!"
 
 #. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
 #: actions/usergroups.php:66
 #, php-format
 msgid "%1$s groups, page %2$d"
-msgstr "%1$s小组,第%2$d页"
+msgstr "%1$s小组,第%2$d页"
 
 #: actions/usergroups.php:132
 msgid "Search for more groups"
@@ -4655,7 +4679,7 @@ msgid ""
 "Software Foundation, either version 3 of the License, or (at your option) "
 "any later version. "
 msgstr ""
-"StatusNet 是一个免费软件,可以在遵守自由软件基金会发布的 GNU Affero GPL 或"
+"StatusNet 是一个免费软件,可以在遵守自由软件基金会发布的 GNU Affero GPL 或"
 "第三版或以后的版本的情况下重新部署或者修改它,"
 
 #: actions/version.php:176
@@ -4673,7 +4697,7 @@ msgstr ""
 msgid ""
 "You should have received a copy of the GNU Affero General Public License "
 "along with this program.  If not, see %s."
-msgstr "应该在本程序中收到了一份 GNU Affero GPL 的副本,如果没有收到请看%s。"
+msgstr "应该在本程序中收到了一份 GNU Affero GPL 的副本,如果没有收到请看%s。"
 
 #: actions/version.php:191
 msgid "Plugins"
@@ -4707,21 +4731,21 @@ msgid ""
 "No file may be larger than %1$d bytes and the file you sent was %2$d bytes. "
 "Try to upload a smaller version."
 msgstr ""
-"不能有文件大于%1$d字节,上传的文件是%2$d字节。换一个小点的版本试一下。"
+"不能有文件大于%1$d字节,上传的文件是%2$d字节。换一个小点的版本试一下。"
 
 #. TRANS: Message given if an upload would exceed user quota.
 #. TRANS: %d (number) is the user quota in bytes.
 #: classes/File.php:202
 #, php-format
 msgid "A file this large would exceed your user quota of %d bytes."
-msgstr "这么大的文件会超过%d字节的用户配额。"
+msgstr "这么大的文件会超过%d字节的用户配额。"
 
 #. TRANS: Message given id an upload would exceed a user's monthly quota.
 #. TRANS: $d (number) is the monthly user quota in bytes.
 #: classes/File.php:211
 #, php-format
 msgid "A file this large would exceed your monthly quota of %d bytes."
-msgstr "这么大的文件会超过%d字节的每月配额。"
+msgstr "这么大的文件会超过%d字节的每月配额。"
 
 #. TRANS: Client exception thrown if a file upload does not have a valid name.
 #: classes/File.php:248 classes/File.php:263
@@ -4763,7 +4787,7 @@ msgstr "没有找到数据库名称或者 DSN。"
 #. TRANS: Client exception thrown when a user tries to send a direct message while being banned from sending them.
 #: classes/Message.php:46
 msgid "You are banned from sending direct messages."
-msgstr "被禁止发送私信。"
+msgstr "被禁止发送私信。"
 
 #. TRANS: Message given when a message could not be stored on the server.
 #: classes/Message.php:63
@@ -4802,19 +4826,19 @@ msgstr "保存消息时出错。未知用户。"
 #: classes/Notice.php:276
 msgid ""
 "Too many notices too fast; take a breather and post again in a few minutes."
-msgstr "在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。"
+msgstr "在短时间里发布了过多的消息,请深呼吸,过几分钟再发消息。"
 
 #. TRANS: Client exception thrown when a user tries to post too many duplicate notices in a given time frame.
 #: classes/Notice.php:283
 msgid ""
 "Too many duplicate messages too quickly; take a breather and post again in a "
 "few minutes."
-msgstr "在短时间里发布了过多的重复消息,请深呼吸,过几分钟再发消息。"
+msgstr "在短时间里发布了过多的重复消息,请深呼吸,过几分钟再发消息。"
 
 #. TRANS: Client exception thrown when a user tries to post while being banned.
 #: classes/Notice.php:291
 msgid "You are banned from posting notices on this site."
-msgstr "在这个网站被禁止发布消息。"
+msgstr "在这个网站被禁止发布消息。"
 
 #. TRANS: Server exception thrown when a notice cannot be saved.
 #. TRANS: Server exception thrown when a notice cannot be updated.
@@ -4823,18 +4847,18 @@ msgid "Problem saving notice."
 msgstr "保存消息时出错。"
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr "对 saveKnownGroups 提供的类型无效"
 
 #. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
+#: classes/Notice.php:998
 msgid "Problem saving group inbox."
 msgstr "保存小组收件箱时出错。"
 
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr "RT @%1$s %2$s"
@@ -4864,9 +4888,9 @@ msgid "Unable to save tag."
 msgstr "无法保存标签。"
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
-msgstr "被禁止添加关注。"
+msgstr "被禁止添加关注。"
 
 #. TRANS: Exception thrown when trying to subscribe while already subscribed.
 #: classes/Subscription.php:80
@@ -4928,7 +4952,7 @@ msgstr "无法保存本地小组信息。"
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:109
 msgid "Change your profile settings"
-msgstr "修改的个人信息"
+msgstr "修改的个人信息"
 
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:116
@@ -4948,7 +4972,7 @@ msgstr "修改电子邮件"
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:137
 msgid "Design your profile"
-msgstr "页面设计"
+msgstr "设计你的个人页面外观"
 
 #. TRANS: Link title attribute in user account settings menu.
 #: lib/accountsettingsaction.php:144
@@ -4992,7 +5016,7 @@ msgstr "个人"
 #: lib/action.php:460
 msgctxt "TOOLTIP"
 msgid "Change your email, avatar, password, profile"
-msgstr "修改的 email 地址、头像、密码、资料"
+msgstr "修改的 email 地址、头像、密码、资料"
 
 #. TRANS: Tooltip for main menu option "Services"
 #: lib/action.php:465
@@ -5012,7 +5036,8 @@ msgid "Change site configuration"
 msgstr "更改网站配置"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr "管理"
@@ -5089,7 +5114,7 @@ msgstr "搜索"
 
 #. TRANS: DT element for site notice. String is hidden in default CSS.
 #. TRANS: Menu item for site administration
-#: lib/action.php:538 lib/adminpanelaction.php:400
+#: lib/action.php:538 lib/adminpanelaction.php:387
 msgid "Site notice"
 msgstr "网站消息"
 
@@ -5153,7 +5178,10 @@ msgid "StatusNet software license"
 msgstr "StatusNet 软件许可证"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: "%%site.broughtby%%" is the value of the variable site.broughtby
+#: lib/action.php:846
 #, php-format
 msgid ""
 "**%%site.name%%** is a microblogging service brought to you by [%%site."
@@ -5163,13 +5191,16 @@ msgstr ""
 "broughtbyurl%%)。"
 
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%** 是一个微博客服务。"
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -5180,49 +5211,50 @@ msgstr ""
 "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)授权。"
 
 #. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
+#: lib/action.php:872
 msgid "Site content license"
 msgstr "网站内容许可协议"
 
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr "%1$s的内容和数据是私人且保密的。"
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr "内容和数据%1$s版权所有并保留所有权利。"
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr "内容和数据贡献者版权所有并保留所有权利。"
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr "所有%1$s的内容和数据在%2$s许可下有效。"
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr "分页"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr "之后"
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
+#: lib/action.php:1264
 msgid "Before"
 msgstr "之前"
 
@@ -5231,205 +5263,240 @@ msgstr "之前"
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr "只期待一个 root feed 元素但收到了整个的 XML 文档。"
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr "还不能处理远程内容。"
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr "还不能处理嵌入式 XML 内容。"
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr "还不能处理嵌入式 Base64 内容。"
 
 #. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
-#: lib/adminpanelaction.php:98
+#: lib/adminpanelaction.php:96
 msgid "You cannot make changes to this site."
-msgstr "您不能在这个站点授予用户角色。"
+msgstr "你不能在这个站点上修改。"
 
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr "不允许对该面板进行修改。"
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr "showForm() 尚未实现。"
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr "saveSettings() 尚未实现。"
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
-msgstr "无法删除设计设置。"
+msgstr "无法删除外观设置。"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "基本网站配置"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:352
+#: lib/adminpanelaction.php:339
 msgctxt "MENU"
 msgid "Site"
 msgstr "网站"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
-msgstr "设计配置"
+msgstr "外观配置"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/adminpanelaction.php:347 lib/groupnav.php:135
 msgctxt "MENU"
 msgid "Design"
-msgstr "设计"
+msgstr "外观"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "用户配置"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr "用户"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "访问配置"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "路径配置"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "会话配置"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:398
+#: lib/adminpanelaction.php:385
 msgid "Edit site notice"
 msgstr "编辑网站消息"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "更改站点配置"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr "API 资源需要读写的访问权限,但是你只有只读的权限。"
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr "没有应用使用这个 consumer key。"
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr "无效的 access token。"
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr "没有用户使用这个 token。"
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr "无法验证你。"
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form legend.
-#: lib/applicationeditform.php:137
+#: lib/applicationeditform.php:129
 msgid "Edit application"
 msgstr "编辑应用"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:187
+#: lib/applicationeditform.php:178
 msgid "Icon for this application"
 msgstr "该应用的图标"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
+#: lib/applicationeditform.php:200
 #, php-format
 msgid "Describe your application in %d characters"
-msgstr "用不超过%d个字符描述的应用"
+msgstr "用不超过%d个字符描述的应用"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:213
+#: lib/applicationeditform.php:204
 msgid "Describe your application"
-msgstr "描述的应用"
+msgstr "描述的应用"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:224
+#: lib/applicationeditform.php:215
 msgid "URL of the homepage of this application"
 msgstr "这个应用的主页 URL"
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr "来源网址"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:233
+#: lib/applicationeditform.php:224
 msgid "Organization responsible for this application"
 msgstr "该应用的负责组织"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr "这个组织的主页 URL"
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr "通过授权后转向的 URL"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr "浏览器"
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr "桌面"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr "应用的类型,浏览器或桌面"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr "只读"
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr "读写"
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr "该应用默认的访问权限:只读或读写"
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "取消"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr "读写"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr "只读"
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr "通过了%1$s - \"%2$s\"的访问权限。"
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr "取消"
@@ -5449,11 +5516,13 @@ msgstr "作者"
 msgid "Provider"
 msgstr "提供者"
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr "出现这个附件的消息"
 
-#: lib/attachmenttagcloudsection.php:48
+#. TRANS: Title.
+#: lib/attachmenttagcloudsection.php:49
 msgid "Tags for this attachment"
 msgstr "此附件的标签"
 
@@ -5465,6 +5534,11 @@ msgstr "不允许更改密码"
 msgid "Password changing is not allowed"
 msgstr "不允许更改密码"
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr "屏蔽"
+
 #: lib/channel.php:157 lib/channel.php:177
 msgid "Command results"
 msgstr "执行结果"
@@ -5585,7 +5659,7 @@ msgstr "关于:%s"
 msgid ""
 "%s is a remote profile; you can only send direct messages to users on the "
 "same server."
-msgstr "%s是一个远程的用户;只能给同一个服务器上的用户发送私信。"
+msgstr "%s是一个远程的用户;只能给同一个服务器上的用户发送私信。"
 
 #. TRANS: Message given if content is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
@@ -5616,7 +5690,7 @@ msgstr "转发消息时出错。"
 #: lib/command.php:592
 #, php-format
 msgid "Notice too long - maximum is %1$d characters, you sent %2$d."
-msgstr "消息过长 - 最长%1$d个字符,发送的是%2$d。"
+msgstr "消息过长 - 最长%1$d个字符,发送的是%2$d。"
 
 #. TRANS: Text shown having sent a reply to a notice successfully.
 #. TRANS: %s is the nickname of the user of the notice the reply was sent to.
@@ -5708,44 +5782,45 @@ msgstr "已取消关注%s。"
 #. TRANS: Text shown after requesting other users a user is subscribed to without having any subscriptions.
 #: lib/command.php:831
 msgid "You are not subscribed to anyone."
-msgstr "没有关注任何人。"
+msgstr "没有关注任何人。"
 
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
 msgid_plural "You are subscribed to these people:"
-msgstr[0] "已关注了这个用户:"
+msgstr[0] "已关注了这个用户:"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user
 #. TRANS: (followers) without having any subscribers.
 #: lib/command.php:858
 msgid "No one is subscribed to you."
-msgstr "没有人关注。"
+msgstr "没有人关注。"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
 msgid_plural "These people are subscribed to you:"
-msgstr[0] "这个用户正在关注:"
+msgstr[0] "这个用户正在关注:"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to without having
 #. TRANS: any group subscriptions.
 #: lib/command.php:885
 msgid "You are not a member of any groups."
-msgstr "æ\82¨ä¸\8dæ\98¯è¯¥å°\8fç»\84æ\88\90å\91\98ã\80\82"
+msgstr "ä½ è¿\98æ\9cªæ\88\90为任ä½\95ä¸\80个å°\8fç»\84ç\9a\84æ\88\90å\91\98ã\80\82"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
-msgstr[0] "是该小组成员:"
+msgstr[0] "是该小组成员:"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -5792,24 +5867,24 @@ msgstr ""
 "off - 关闭提醒\n"
 "help - 显示此帮助\n"
 "follow <昵称> - 关注该用户\n"
-"groups - 列出加入的小组\n"
-"subscriptions - 列出关注的用户\n"
-"subscribers - 列出的关注者\n"
+"groups - 列出加入的小组\n"
+"subscriptions - 列出关注的用户\n"
+"subscribers - 列出的关注者\n"
 "leave <昵称> - 取消关注该用户\n"
 "d <昵称> <文字> - 给该用户发送私信\n"
 "get <昵称> - 获取该用户的最后一条消息\n"
 "whois <昵称> - 获取该用户的个人信息\n"
-"lose <昵称> - 强行取消该用户对的关注\n"
+"lose <昵称> - 强行取消该用户对的关注\n"
 "fav <昵称> - 将该用户最后一条消息加为'收藏'\n"
 "fav #<消息id> - 将该id的消息加为'收藏'\n"
 "repeat #<消息id> - 转发该id的消息\n"
 "repeat <昵称> - 转发该用户的最后一条消息\n"
-"reply #<notice_id> - 对该id消息回复\n"
-"reply <昵称> - 对该用户的最后一条小心回复\n"
+"reply #<消息id> - 对该id消息回复\n"
+"reply <昵称> - 对该用户的最后一条消息回复\n"
 "join <小组> - 加入小组\n"
 "login - 获取网页登录的地址\n"
 "drop <小组> - 离开小组\n"
-"stats - 获取的统计\n"
+"stats - 获取的统计\n"
 "stop - 和'off'相同\n"
 "quit - 和'off'相同\n"
 "sub <昵称> - 和'follow'相同\n"
@@ -5836,7 +5911,7 @@ msgstr "我在以下位置查找了配置文件:"
 
 #: lib/common.php:138
 msgid "You may wish to run the installer to fix this."
-msgstr "或许想运行安装程序来解决这个问题。"
+msgstr "或许想运行安装程序来解决这个问题。"
 
 #: lib/common.php:139
 msgid "Go to the installer."
@@ -5873,11 +5948,11 @@ msgstr "上传文件"
 #: lib/designsettings.php:109
 msgid ""
 "You can upload your personal background image. The maximum file size is 2MB."
-msgstr "您可以上传您的个人页面背景。文件最大 2MB。"
+msgstr "你可以上传你的个人页面背景。文件最大 2MB。"
 
 #: lib/designsettings.php:418
 msgid "Design defaults restored."
-msgstr "默认设计已恢复。"
+msgstr "默认外观已恢复。"
 
 #: lib/disfavorform.php:114 lib/disfavorform.php:140
 msgid "Disfavor this notice"
@@ -5885,7 +5960,7 @@ msgstr "取消收藏这个消息"
 
 #: lib/favorform.php:114 lib/favorform.php:140
 msgid "Favor this notice"
-msgstr "收藏这个消息"
+msgstr "收藏"
 
 #: lib/favorform.php:140
 msgid "Favor"
@@ -5963,37 +6038,77 @@ msgstr "小组的地理位置,例如“国家、省份、城市”"
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr "该小组额外的昵称,用逗号或者空格分隔开,最长%d"
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr "小组"
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr "%s小组"
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr "组员"
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr "%s 小组成员"
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
-msgstr "屏蔽用户"
+msgstr "å±\8fè\94½ç\9a\84ç\94¨æ\88·"
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
-msgstr "%s屏蔽的用户"
+msgstr "%s 屏蔽的用户"
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
-msgstr "编辑 %s群选项"
+msgstr "编辑 %s 小组设置"
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
 msgstr "Logo"
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
-msgstr "添加或编辑 %s 图标"
+msgstr "添加或编辑 %s logo"
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
-msgstr "添加或编辑%s设计"
+msgstr "添加或编辑 %s 外观"
 
 #: lib/groupsbymemberssection.php:71
 msgid "Groups with most members"
@@ -6011,7 +6126,7 @@ msgstr "这个组所发布的消息的标签"
 #. TRANS: Client exception 406
 #: lib/htmloutputter.php:104
 msgid "This page is not available in a media type you accept"
-msgstr "这个页面不提供想要的媒体类型"
+msgstr "这个页面不提供想要的媒体类型"
 
 #: lib/imagefile.php:72
 msgid "Unsupported image file format."
@@ -6026,7 +6141,8 @@ msgstr "文件太大。文件大小限制在%s以下。"
 msgid "Partial upload."
 msgstr "部分上传。"
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr "上传文件时出错。"
 
@@ -6100,22 +6216,22 @@ msgid ""
 msgstr ""
 "嗨, %s。\n"
 "\n"
-"刚刚有人在%s填写了的电子邮件地址。\n"
+"刚刚有人在%s填写了的电子邮件地址。\n"
 "\n"
-"如果是您的操作并且您想完成您的确认,请使用下面的URL:\n"
+"如果是你的操作并且你想完成你的确认,请使用下面的URL:\n"
 "\n"
 "%s\n"
 "\n"
-"如果不知道这封邮件是怎么回事,忽略掉这封邮件就好。\n"
+"如果不知道这封邮件是怎么回事,忽略掉这封邮件就好。\n"
 "\n"
-"谢谢的宝贵时间,\n"
+"谢谢的宝贵时间,\n"
 "%s\n"
 
 #. TRANS: Subject of new-subscriber notification e-mail
 #: lib/mail.php:243
 #, php-format
 msgid "%1$s is now listening to your notices on %2$s."
-msgstr "%1$s 开始关注您的 %2$s 信息。"
+msgstr "%1$s 开始关注你在 %2$s 的消息。"
 
 #: lib/mail.php:248
 #, php-format
@@ -6123,7 +6239,7 @@ msgid ""
 "If you believe this account is being used abusively, you can block them from "
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
-"如果您认为此帐户正被人恶意使用,您可以将其从您的关注者中屏蔽掉并到 %s 报告给"
+"如果你认为此帐户正被人恶意使用,你可以将其从你的关注者中屏蔽掉并到 %s 报告给"
 "网站的管理员为他们在发垃圾信息。"
 
 #. TRANS: Main body of new-subscriber notification e-mail
@@ -6141,7 +6257,7 @@ msgid ""
 "----\n"
 "Change your email address or notification options at %8$s\n"
 msgstr ""
-"%1$s开始关注在%2$s的消息。\n"
+"%1$s开始关注在%2$s的消息。\n"
 "\n"
 "\t%3$s\n"
 "\n"
@@ -6150,7 +6266,7 @@ msgstr ""
 "%7$s.\n"
 "\n"
 "----\n"
-"在%8$s更改的 email 地址或通知选项\n"
+"在%8$s更改的 email 地址或通知选项\n"
 
 #. TRANS: Profile info line in new-subscriber notification e-mail
 #: lib/mail.php:274
@@ -6177,7 +6293,7 @@ msgid ""
 "Faithfully yours,\n"
 "%4$s"
 msgstr ""
-"的 %1$s 发布用地址已更新。\n"
+"的 %1$s 发布用地址已更新。\n"
 "\n"
 "发送邮件到 %2$s 来发布新消息。\n"
 "\n"
@@ -6202,13 +6318,13 @@ msgstr "SMS 验证"
 #: lib/mail.php:463
 #, php-format
 msgid "%s: confirm you own this phone number with this code:"
-msgstr "%s:通过此代码证明这是的手机:"
+msgstr "%s:通过此代码证明这是的手机:"
 
 #. TRANS: Subject for 'nudge' notification email
 #: lib/mail.php:484
 #, php-format
 msgid "You've been nudged by %s"
-msgstr "%s呼叫您"
+msgstr "你被%s呼叫了"
 
 #. TRANS: Body for 'nudge' notification email
 #: lib/mail.php:489
@@ -6226,9 +6342,9 @@ msgid ""
 "With kind regards,\n"
 "%4$s\n"
 msgstr ""
-"%1$s (%2$s) 想知道您这几天在做什么并邀请您来发布一些消息。\n"
+"%1$s (%2$s) 想知道你这几天在做什么并邀请你来发布一些消息。\n"
 "\n"
-"那就让他/她知道的动态吧 :)\n"
+"那就让他/她知道的动态吧 :)\n"
 "\n"
 "%3$s\n"
 "\n"
@@ -6262,13 +6378,13 @@ msgid ""
 "With kind regards,\n"
 "%5$s\n"
 msgstr ""
-"%1$s (%2$s) 给发了一条私信“:\n"
+"%1$s (%2$s) 给发了一条私信“:\n"
 "\n"
 "------------------------------------------------------\n"
 "%3$s\n"
 "------------------------------------------------------\n"
 "\n"
-"可以到这里回复这条私信:\n"
+"可以到这里回复这条私信:\n"
 "\n"
 "%4$s\n"
 "\n"
@@ -6281,7 +6397,7 @@ msgstr ""
 #: lib/mail.php:589
 #, php-format
 msgid "%s (@%s) added your notice as a favorite"
-msgstr "%s (@%s) 收藏了的消息"
+msgstr "%s (@%s) 收藏了的消息"
 
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
@@ -6304,17 +6420,17 @@ msgid ""
 "Faithfully yours,\n"
 "%6$s\n"
 msgstr ""
-"%1$s (@%7$s) 刚刚在 %2$s 收藏了一条的消息。\n"
+"%1$s (@%7$s) 刚刚在 %2$s 收藏了一条的消息。\n"
 "\n"
-"的这条消息的URL:\n"
+"的这条消息的URL:\n"
 "\n"
 "%3$s\n"
 "\n"
-"的这条消息的内容是:\n"
+"的这条消息的内容是:\n"
 "\n"
 "%4$s\n"
 "\n"
-"可以到这里查看所有 %1$s 收藏的消息:\n"
+"可以到这里查看所有 %1$s 收藏的消息:\n"
 "\n"
 "%5$s\n"
 "\n"
@@ -6336,7 +6452,7 @@ msgstr ""
 #: lib/mail.php:657
 #, php-format
 msgid "%s (@%s) sent a notice to your attention"
-msgstr "%s (@%s) 给发送了一条消息"
+msgstr "%s (@%s) 给发送了一条消息"
 
 #. TRANS: Body of @-reply notification e-mail.
 #: lib/mail.php:660
@@ -6365,7 +6481,7 @@ msgid ""
 "\n"
 "P.S. You can turn off these email notifications here: %8$s\n"
 msgstr ""
-"%1$s (@%9$s) 刚刚在%2$s通过(@回复)发送了一条消息给。\n"
+"%1$s (@%9$s) 刚刚在%2$s通过(@回复)发送了一条消息给。\n"
 "\n"
 "消息的地址是:\n"
 "\n"
@@ -6375,18 +6491,18 @@ msgstr ""
 "\n"
 "\t%4$s\n"
 "\n"
-"%5$s可以到这里回复:\n"
+"%5$s可以到这里回复:\n"
 "\n"
 "\t%6$s\n"
 "\n"
-"所有给的 @回复 消息:\n"
+"所有给的 @回复 消息:\n"
 "\n"
 "%7$s\n"
 "\n"
 "真切的问候,\n"
 "%2$s\n"
 "\n"
-"P.S. 可以到这里关掉这些邮件提醒:%8$s\n"
+"P.S. 可以到这里关掉这些邮件提醒:%8$s\n"
 
 #: lib/mailbox.php:89
 msgid "Only the user can read their own mailboxes."
@@ -6397,12 +6513,12 @@ msgid ""
 "You have no private messages. You can send private message to engage other "
 "users in conversation. People can send you messages for your eyes only."
 msgstr ""
-"您没有任何私信。您可以试着发送私信给其他用户鼓励他们用私信和您交流。其他用户"
-"发给你您私信只有您看得到。"
+"你没有任何私信。你可以试着发送私信给其他用户鼓励他们用私信和你交流。其他用户"
+"发给你你私信只有你看得到。"
 
 #: lib/mailbox.php:228 lib/noticelist.php:506
 msgid "from"
-msgstr "来自"
+msgstr "通过"
 
 #: lib/mailhandler.php:37
 msgid "Could not parse message."
@@ -6414,7 +6530,7 @@ msgstr "不是已注册用户。"
 
 #: lib/mailhandler.php:46
 msgid "Sorry, that is not your incoming email address."
-msgstr "抱歉,这个不是的收信电子邮件地址。"
+msgstr "抱歉,这个不是的收信电子邮件地址。"
 
 #: lib/mailhandler.php:50
 msgid "Sorry, no incoming email allowed."
@@ -6425,57 +6541,76 @@ msgstr "抱歉,现在不允许电子邮件发布。"
 msgid "Unsupported message type: %s"
 msgstr "不支持的信息格式:%s"
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
-msgstr "保存的文件时数据库出现了一个错误。请重试。"
+msgstr "保存的文件时数据库出现了一个错误。请重试。"
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr "上传文件大小超过了 php.ini 中 upload_max_filesize 的设置限制。"
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr "上传文件大小超过了 HTML 表单中 MAX_FILE_SIZE 的设置限制。"
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr "上传的文件只有部分被上传。"
 
-#: lib/mediafile.php:159
+#. TRANS: Client exception thrown when a temporary folder is not present to store a file upload.
+#: lib/mediafile.php:165
 msgid "Missing a temporary folder."
 msgstr "缺少一个临时文件夹。"
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr "写入磁盘失败。"
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr "文件上传被扩展停止了。"
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr "文件超过了用户的配额。"
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr "文件不能被移动到目标目录。"
 
-#: lib/mediafile.php:202 lib/mediafile.php:238
+#. TRANS: Client exception thrown when a file upload operation has been stopped because the MIME
+#. TRANS: type of the uploaded file could not be determined.
+#: lib/mediafile.php:216 lib/mediafile.php:257
 msgid "Could not determine file's MIME type."
 msgstr "无法判断文件的 MIME 类型。"
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
-msgstr "试一下其他的%s格式。"
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
+msgstr "此服务器不支持 “%1$s” 的文件格式,试下使用其他的 %2$s 格式。"
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
-msgstr "这个服务器不支持%s的文件格式。"
+msgid "\"%s\" is not a supported file type on this server."
+msgstr "这个服务器不支持 %s 的文件格式。"
 
 #: lib/messageform.php:120
 msgid "Send a direct notice"
@@ -6523,7 +6658,7 @@ msgstr "不要分享我的地理位置。"
 msgid ""
 "Sorry, retrieving your geo location is taking longer than expected, please "
 "try again later"
-msgstr "抱歉,获取的地理位置时间过长,请稍候重试"
+msgstr "抱歉,获取的地理位置时间过长,请稍候重试"
 
 #. TRANS: Used in coordinates as abbreviation of north
 #: lib/noticelist.php:436
@@ -6564,11 +6699,11 @@ msgstr "查看对话"
 
 #: lib/noticelist.php:603
 msgid "Repeated by"
-msgstr "被转å\8f\91"
+msgstr "转å\8f\91æ\9d¥è\87ª"
 
 #: lib/noticelist.php:630
 msgid "Reply to this notice"
-msgstr "回复这个消息"
+msgstr "回复"
 
 #: lib/noticelist.php:631
 msgid "Reply"
@@ -6580,7 +6715,7 @@ msgstr "消息已转发"
 
 #: lib/nudgeform.php:116
 msgid "Nudge this user"
-msgstr "呼叫这个用户"
+msgstr "呼叫用户"
 
 #: lib/nudgeform.php:128
 msgid "Nudge"
@@ -6591,26 +6726,23 @@ msgid "Send a nudge to this user"
 msgstr "呼叫这个用户"
 
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "添加个人信息出错"
+msgid "Error inserting new profile."
+msgstr "添加新个人信息出错。"
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "添加头像出错"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "更新远程的个人信息时出错"
+msgid "Error inserting avatar."
+msgstr "添加头像出错。"
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "添加远程的个人信息出错"
+msgid "Error inserting remote profile."
+msgstr "添加远程个人信息时出错。"
 
-#: lib/oauthstore.php:345
-msgid "Duplicate notice"
-msgstr "转发消息"
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr "复制消息。"
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "无法添加新的关注。"
 
@@ -6632,7 +6764,7 @@ msgstr "收件箱"
 
 #: lib/personalgroupnav.php:126
 msgid "Your incoming messages"
-msgstr "收到的私信"
+msgstr "收到的私信"
 
 #: lib/personalgroupnav.php:130
 msgid "Outbox"
@@ -6640,14 +6772,15 @@ msgstr "发件箱"
 
 #: lib/personalgroupnav.php:131
 msgid "Your sent messages"
-msgstr "发送的私信"
+msgstr "发送的私信"
 
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
 msgstr "%s的消息中的标签"
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr "未知的"
 
@@ -6722,7 +6855,7 @@ msgstr "是"
 
 #: lib/repeatform.php:132
 msgid "Repeat this notice"
-msgstr "转发这个消息"
+msgstr "转发"
 
 #: lib/revokeroleform.php:91
 #, php-format
@@ -6741,19 +6874,24 @@ msgstr "沙盒"
 msgid "Sandbox this user"
 msgstr "将这个用户放入沙盒。"
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr "搜索帮助"
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr "关键词"
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr "搜索"
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr "搜索帮助"
 
@@ -6816,12 +6954,12 @@ msgstr "邀请朋友和同事来%s一起和你交流"
 #: lib/subscriberspeopleselftagcloudsection.php:48
 #: lib/subscriptionspeopleselftagcloudsection.php:48
 msgid "People Tagcloud as self-tagged"
-msgstr "用户自我标签的用户标签云"
+msgstr "自己添加标签的用户标签云"
 
 #: lib/subscriberspeopletagcloudsection.php:48
 #: lib/subscriptionspeopletagcloudsection.php:48
 msgid "People Tagcloud as tagged"
-msgstr "被标签的用户标签云"
+msgstr "被添å\8a æ \87ç­¾ç\9a\84ç\94¨æ\88·æ \87ç­¾äº\91"
 
 #: lib/tagcloudsection.php:56
 msgid "None"
@@ -6863,7 +7001,7 @@ msgstr ""
 
 #: lib/themeuploader.php:224
 msgid "Theme contains unsafe file extension names; may be unsafe."
-msgstr ""
+msgstr "主题包含不安全的文件扩展名,可能有危险。"
 
 #: lib/themeuploader.php:241
 #, php-format
@@ -6949,56 +7087,60 @@ msgid "Moderator"
 msgstr "审核员"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr "几秒前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr "约1分钟前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr "约%d分钟前"
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] "约1分钟前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr "约1小时前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr "约%d小时前"
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] "约一小时前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr "约1天前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr "约%d天前"
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] "约1天前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr "约1个月前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr "约%d个月前"
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] "约1个月前"
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr "约1年前"
 
index be1444e94f9965b1aec56ac1a50cc2e6665c4934..d9fcb3ff4517e76efd8996426cf80d2462713273 100644 (file)
@@ -1,33 +1,31 @@
-# Translation of StatusNet to Traditional Chinese
+# Translation of StatusNet - Core to Traditional Chinese (‪中文(繁體)‬)
+# Expored from translatewiki.net
 #
 # --
 # This file is distributed under the same license as the StatusNet package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: StatusNet\n"
+"Project-Id-Version: StatusNet - Core\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-05 09:45+0000\n"
-"PO-Revision-Date: 2010-09-05 09:47:33+0000\n"
-"Language-Team: Traditional Chinese\n"
+"POT-Creation-Date: 2010-09-18 22:06+0000\n"
+"PO-Revision-Date: 2010-09-18 22:08:32+0000\n"
+"Language-Team: Traditional Chinese <http://translatewiki.net/wiki/Portal:zh-"
+"hant>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: MediaWiki 1.17alpha (r72319); Translate extension (2010-08-20)\n"
+"X-Generator: MediaWiki 1.17alpha (r73298); Translate extension (2010-09-17)\n"
 "X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
 "X-Language-Code: zh-hant\n"
-"X-Message-Group: out-statusnet\n"
+"X-Message-Group: #out-statusnet-core\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
+"X-POT-Import-Date: 1284-74-75 38::+0000\n"
 
 #. TRANS: Page notice
 #: actions/accessadminpanel.php:67
 msgid "Site access settings"
 msgstr "使用者設定發生錯誤"
 
-#. TRANS: Form legend for registration form.
-#: actions/accessadminpanel.php:161
-msgid "Registration"
-msgstr ""
-
 #. TRANS: Checkbox instructions for admin setting "Private"
 #: actions/accessadminpanel.php:165
 msgid "Prohibit anonymous users (not logged in) from viewing site?"
@@ -54,18 +52,13 @@ msgstr ""
 msgid "Disable new registrations."
 msgstr ""
 
-#. TRANS: Checkbox label for disabling new user registrations.
-#: actions/accessadminpanel.php:185
-msgid "Closed"
-msgstr ""
-
 #. TRANS: Button label to save e-mail preferences.
 #. TRANS: Button label to save IM preferences.
 #. TRANS: Button label to save SMS preferences.
-#. TRANS: Button label
-#: actions/accessadminpanel.php:203 actions/emailsettings.php:224
-#: actions/imsettings.php:184 actions/smssettings.php:209
-#: lib/applicationeditform.php:361
+#. TRANS: Button label in the "Edit application" form.
+#: actions/accessadminpanel.php:203 actions/emailsettings.php:228
+#: actions/imsettings.php:187 actions/smssettings.php:209
+#: lib/applicationeditform.php:351
 msgctxt "BUTTON"
 msgid "Save"
 msgstr ""
@@ -78,15 +71,15 @@ msgstr "無此使用者"
 
 #. TRANS: Error text shown when trying to send a direct message to a user that does not exist.
 #: actions/all.php:79 actions/allrss.php:68
-#: actions/apiaccountupdatedeliverydevice.php:114
-#: actions/apiaccountupdateprofile.php:105
-#: actions/apiaccountupdateprofilebackgroundimage.php:116
-#: actions/apiaccountupdateprofileimage.php:105 actions/apiblockcreate.php:97
-#: actions/apiblockdestroy.php:96 actions/apidirectmessage.php:77
-#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:113
-#: actions/apigroupismember.php:91 actions/apigroupjoin.php:100
-#: actions/apigroupleave.php:100 actions/apigrouplist.php:73
-#: actions/apistatusesupdate.php:229 actions/apisubscriptions.php:87
+#: actions/apiaccountupdatedeliverydevice.php:115
+#: actions/apiaccountupdateprofile.php:106
+#: actions/apiaccountupdateprofilebackgroundimage.php:117
+#: actions/apiaccountupdateprofileimage.php:106 actions/apiblockcreate.php:98
+#: actions/apiblockdestroy.php:97 actions/apidirectmessage.php:77
+#: actions/apidirectmessagenew.php:74 actions/apigroupcreate.php:114
+#: actions/apigroupismember.php:91 actions/apigroupjoin.php:101
+#: actions/apigroupleave.php:101 actions/apigrouplist.php:73
+#: actions/apistatusesupdate.php:230 actions/apisubscriptions.php:87
 #: actions/apitimelinefavorites.php:72 actions/apitimelinefriends.php:174
 #: actions/apitimelinehome.php:80 actions/apitimelinementions.php:80
 #: actions/apitimelineuser.php:82 actions/avatarbynickname.php:75
@@ -111,24 +104,6 @@ msgstr "無此使用者"
 msgid "%s and friends"
 msgstr "%s與好友"
 
-#. TRANS: %1$s is user nickname
-#: actions/all.php:107
-#, php-format
-msgid "Feed for friends of %s (RSS 1.0)"
-msgstr ""
-
-#. TRANS: %1$s is user nickname
-#: actions/all.php:116
-#, php-format
-msgid "Feed for friends of %s (RSS 2.0)"
-msgstr ""
-
-#. TRANS: %1$s is user nickname
-#: actions/all.php:125
-#, php-format
-msgid "Feed for friends of %s (Atom)"
-msgstr ""
-
 #. TRANS: %1$s is user nickname
 #: actions/all.php:138
 #, php-format
@@ -166,29 +141,31 @@ msgstr ""
 msgid "Updates from %1$s and friends on %2$s!"
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:86
-#: actions/apiaccountupdateprofile.php:89
-#: actions/apiaccountupdateprofilebackgroundimage.php:86
-#: actions/apiaccountupdateprofilecolors.php:110
-#: actions/apiaccountupdateprofileimage.php:84 actions/apiblockcreate.php:89
-#: actions/apiblockdestroy.php:88 actions/apidirectmessagenew.php:109
-#: actions/apifavoritecreate.php:91 actions/apifavoritedestroy.php:92
-#: actions/apifriendshipscreate.php:91 actions/apifriendshipsdestroy.php:91
-#: actions/apigroupcreate.php:105 actions/apigroupjoin.php:92
-#: actions/apigroupleave.php:92 actions/apimediaupload.php:67
-#: actions/apistatusesretweet.php:65 actions/apistatusesupdate.php:198
+#. TRANS: Client error message. POST is a HTTP command. It should not be translated.
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: actions/apiaccountupdatedeliverydevice.php:87
+#: actions/apiaccountupdateprofile.php:90
+#: actions/apiaccountupdateprofilebackgroundimage.php:87
+#: actions/apiaccountupdateprofilecolors.php:111
+#: actions/apiaccountupdateprofileimage.php:85 actions/apiblockcreate.php:90
+#: actions/apiblockdestroy.php:89 actions/apidirectmessagenew.php:110
+#: actions/apifavoritecreate.php:92 actions/apifavoritedestroy.php:93
+#: actions/apifriendshipscreate.php:92 actions/apifriendshipsdestroy.php:92
+#: actions/apigroupcreate.php:106 actions/apigroupjoin.php:93
+#: actions/apigroupleave.php:93 actions/apimediaupload.php:68
+#: actions/apistatusesretweet.php:66 actions/apistatusesupdate.php:199
 msgid "This method requires a POST."
 msgstr ""
 
-#: actions/apiaccountupdatedeliverydevice.php:106
+#: actions/apiaccountupdatedeliverydevice.php:107
 msgid ""
 "You must specify a parameter named 'device' with a value of one of: sms, im, "
 "none."
 msgstr ""
 
-#: actions/apiaccountupdateprofilebackgroundimage.php:108
-#: actions/apiaccountupdateprofileimage.php:97 actions/apimediaupload.php:80
-#: actions/apistatusesupdate.php:212 actions/avatarsettings.php:257
+#: actions/apiaccountupdateprofilebackgroundimage.php:109
+#: actions/apiaccountupdateprofileimage.php:98 actions/apimediaupload.php:81
+#: actions/apistatusesupdate.php:213 actions/avatarsettings.php:257
 #: actions/designadminpanel.php:123 actions/editapplication.php:118
 #: actions/newapplication.php:101 actions/newnotice.php:94
 #: lib/designsettings.php:283
@@ -198,7 +175,21 @@ msgid ""
 "current configuration."
 msgstr ""
 
-#: actions/apiblockdestroy.php:114
+#: actions/apiaccountupdateprofilebackgroundimage.php:137
+#: actions/apiaccountupdateprofilebackgroundimage.php:147
+#: actions/apiaccountupdateprofilecolors.php:165
+#: actions/apiaccountupdateprofilecolors.php:175
+#: actions/groupdesignsettings.php:290 actions/groupdesignsettings.php:300
+#: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220
+#: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273
+msgid "Unable to save your design settings."
+msgstr ""
+
+#: actions/apiblockcreate.php:127
+msgid "Block user failed."
+msgstr ""
+
+#: actions/apiblockdestroy.php:115
 msgid "Unblock user failed."
 msgstr ""
 
@@ -222,42 +213,46 @@ msgstr ""
 msgid "All the direct messages sent to %s"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:118
+#: actions/apidirectmessagenew.php:119
 msgid "No message text!"
 msgstr ""
 
-#: actions/apidirectmessagenew.php:127 actions/newmessage.php:150
+#: actions/apidirectmessagenew.php:128 actions/newmessage.php:150
 #, php-format
 msgid "That's too long. Max message size is %d chars."
 msgstr ""
 
-#: actions/apidirectmessagenew.php:142
+#: actions/apidirectmessagenew.php:143
 msgid "Can't send direct messages to users who aren't your friend."
 msgstr ""
 
-#: actions/apifavoritecreate.php:109 actions/apifavoritedestroy.php:110
+#: actions/apifavoritecreate.php:110 actions/apifavoritedestroy.php:111
 #: actions/apistatusesdestroy.php:121
 msgid "No status found with that ID."
 msgstr ""
 
-#: actions/apifavoritecreate.php:120
+#: actions/apifavoritecreate.php:121
 msgid "This status is already a favorite."
 msgstr ""
 
 #. TRANS: Error message text shown when a favorite could not be set.
-#: actions/apifavoritecreate.php:131 actions/favor.php:84 lib/command.php:296
+#: actions/apifavoritecreate.php:132 actions/favor.php:84 lib/command.php:296
 msgid "Could not create favorite."
 msgstr "無法更新使用者"
 
-#: actions/apifavoritedestroy.php:135 actions/disfavor.php:87
+#: actions/apifavoritedestroy.php:124
+msgid "That status is not a favorite."
+msgstr ""
+
+#: actions/apifavoritedestroy.php:136 actions/disfavor.php:87
 msgid "Could not delete favorite."
 msgstr "無法新增訂閱"
 
-#: actions/apifriendshipscreate.php:109
+#: actions/apifriendshipscreate.php:110
 msgid "Could not follow user: profile not found."
 msgstr "無法儲存個人資料"
 
-#: actions/apifriendshipsdestroy.php:109
+#: actions/apifriendshipsdestroy.php:110
 msgid "Could not unfollow user: User not found."
 msgstr "無法儲存個人資料"
 
@@ -265,87 +260,80 @@ msgstr "無法儲存個人資料"
 msgid "Two valid IDs or screen_names must be supplied."
 msgstr ""
 
-#: actions/apigroupcreate.php:167 actions/editgroup.php:186
+#: actions/apigroupcreate.php:168 actions/editgroup.php:186
 #: actions/newgroup.php:126 actions/profilesettings.php:215
 #: actions/register.php:212
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr "暱稱請用小寫字母或數字,勿加空格。"
 
-#: actions/apigroupcreate.php:176 actions/editgroup.php:190
+#: actions/apigroupcreate.php:177 actions/editgroup.php:190
 #: actions/newgroup.php:130 actions/profilesettings.php:238
 #: actions/register.php:215
 msgid "Nickname already in use. Try another one."
 msgstr "此暱稱已有人使用。再試試看別的吧。"
 
-#: actions/apigroupcreate.php:199 actions/editapplication.php:215
+#: actions/apigroupcreate.php:200 actions/editapplication.php:215
 #: actions/editgroup.php:199 actions/newapplication.php:203
 #: actions/newgroup.php:139 actions/profilesettings.php:222
 #: actions/register.php:224
 msgid "Homepage is not a valid URL."
 msgstr "個人首頁位址錯誤"
 
-#: actions/apigroupcreate.php:208 actions/editgroup.php:202
+#: actions/apigroupcreate.php:209 actions/editgroup.php:202
 #: actions/newgroup.php:142 actions/profilesettings.php:225
 #: actions/register.php:227
 msgid "Full name is too long (max 255 chars)."
 msgstr "全名過長(最多255字元)"
 
-#: actions/apigroupcreate.php:216 actions/editapplication.php:190
+#: actions/apigroupcreate.php:217 actions/editapplication.php:190
 #: actions/newapplication.php:172
 #, php-format
 msgid "Description is too long (max %d chars)."
 msgstr "地點過長(共%d個字)"
 
-#: actions/apigroupcreate.php:227 actions/editgroup.php:208
+#: actions/apigroupcreate.php:228 actions/editgroup.php:208
 #: actions/newgroup.php:148 actions/profilesettings.php:232
 #: actions/register.php:234
 msgid "Location is too long (max 255 chars)."
 msgstr "地點過長(共255個字)"
 
-#: actions/apigroupcreate.php:246 actions/editgroup.php:219
+#: actions/apigroupcreate.php:247 actions/editgroup.php:219
 #: actions/newgroup.php:159
 #, php-format
 msgid "Too many aliases! Maximum %d."
 msgstr ""
 
-#: actions/apigroupcreate.php:289 actions/editgroup.php:238
+#: actions/apigroupcreate.php:290 actions/editgroup.php:238
 #: actions/newgroup.php:178
 msgid "Alias can't be the same as nickname."
 msgstr ""
 
-#: actions/apigroupismember.php:96 actions/apigroupjoin.php:105
-#: actions/apigroupleave.php:105 actions/apigroupmembership.php:92
+#: actions/apigroupismember.php:96 actions/apigroupjoin.php:106
+#: actions/apigroupleave.php:106 actions/apigroupmembership.php:92
 #: actions/apigroupshow.php:83 actions/apitimelinegroup.php:92
 msgid "Group not found."
 msgstr "確認碼遺失"
 
+#. TRANS: Error text shown when a user tries to join a group they are blocked from joining.
+#: actions/apigroupjoin.php:121 actions/joingroup.php:105 lib/command.php:341
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
 #. TRANS: Message given having failed to add a user to a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupjoin.php:139 actions/joingroup.php:134 lib/command.php:353
+#: actions/apigroupjoin.php:140 actions/joingroup.php:134 lib/command.php:353
 #, php-format
 msgid "Could not join user %1$s to group %2$s."
 msgstr "無法更新使用者"
 
 #. TRANS: Message given having failed to remove a user from a group.
 #. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
-#: actions/apigroupleave.php:125 actions/leavegroup.php:129
+#: actions/apigroupleave.php:126 actions/leavegroup.php:129
 #: lib/command.php:401
 #, php-format
 msgid "Could not remove user %1$s from group %2$s."
 msgstr "無法更新使用者"
 
-#. TRANS: %s is a user name
-#: actions/apigrouplist.php:98
-#, php-format
-msgid "%s's groups"
-msgstr ""
-
-#. TRANS: Meant to convey the user %2$s is a member of each of the groups listed on site %1$s
-#: actions/apigrouplist.php:108
-#, php-format
-msgid "%1$s groups %2$s is a member of."
-msgstr ""
-
 #: actions/apigrouplistall.php:96
 #, php-format
 msgid "groups on %s"
@@ -357,9 +345,9 @@ msgstr ""
 
 #: actions/apioauthauthorize.php:123 actions/avatarsettings.php:268
 #: actions/deletenotice.php:169 actions/disfavor.php:74
-#: actions/emailsettings.php:267 actions/favor.php:75 actions/geocode.php:55
+#: actions/emailsettings.php:271 actions/favor.php:75 actions/geocode.php:55
 #: actions/groupblock.php:66 actions/grouplogo.php:312
-#: actions/groupunblock.php:66 actions/imsettings.php:227
+#: actions/groupunblock.php:66 actions/imsettings.php:230
 #: actions/invite.php:56 actions/login.php:137 actions/makeadmin.php:66
 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80
 #: actions/oauthappssettings.php:159 actions/oauthconnectionssettings.php:135
@@ -398,8 +386,8 @@ msgstr ""
 #. TRANS: Message given submitting a form with an unknown action in SMS settings.
 #: actions/apioauthauthorize.php:232 actions/avatarsettings.php:281
 #: actions/designadminpanel.php:104 actions/editapplication.php:139
-#: actions/emailsettings.php:286 actions/grouplogo.php:322
-#: actions/imsettings.php:242 actions/newapplication.php:121
+#: actions/emailsettings.php:290 actions/grouplogo.php:322
+#: actions/imsettings.php:245 actions/newapplication.php:121
 #: actions/oauthconnectionssettings.php:147 actions/recoverpassword.php:44
 #: actions/smssettings.php:277 lib/designsettings.php:304
 msgid "Unexpected form submission."
@@ -449,33 +437,24 @@ msgstr ""
 msgid "You may not delete another user's status."
 msgstr ""
 
-#: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72
+#: actions/apistatusesretweet.php:76 actions/apistatusesretweets.php:72
 #: actions/deletenotice.php:52 actions/shownotice.php:92
 msgid "No such notice."
 msgstr "無此通知"
 
-#. TRANS: Error text shown when trying to repeat an own notice.
-#: actions/apistatusesretweet.php:83 lib/command.php:538
-msgid "Cannot repeat your own notice."
-msgstr ""
-
-#: actions/apistatusesshow.php:139
-msgid "Status deleted."
-msgstr ""
-
 #: actions/apistatusesshow.php:145
 msgid "No status with that ID found."
 msgstr ""
 
-#: actions/apistatusesupdate.php:221
+#: actions/apistatusesupdate.php:222
 msgid "Client must provide a 'status' parameter with a value."
 msgstr ""
 
-#: actions/apistatusesupdate.php:283 actions/apiusershow.php:96
+#: actions/apistatusesupdate.php:284 actions/apiusershow.php:96
 msgid "Not found."
 msgstr "確認碼遺失"
 
-#: actions/apistatusesupdate.php:306 actions/newnotice.php:181
+#: actions/apistatusesupdate.php:307 actions/newnotice.php:181
 #, php-format
 msgid "Max notice size is %d chars, including attachment URL."
 msgstr ""
@@ -484,11 +463,6 @@ msgstr ""
 msgid "Unsupported format."
 msgstr ""
 
-#: actions/apitimelinefavorites.php:119
-#, php-format
-msgid "%1$s updates favorited by %2$s / %2$s."
-msgstr ""
-
 #: actions/apitimelinementions.php:131
 #, php-format
 msgid "%1$s updates that reply to updates from %2$s / %3$s."
@@ -519,11 +493,6 @@ msgstr ""
 msgid "Notices tagged with %s"
 msgstr ""
 
-#: actions/apitimelinetag.php:107 actions/tagrss.php:65
-#, php-format
-msgid "Updates tagged with %1$s on %2$s!"
-msgstr ""
-
 #: actions/attachment.php:73
 msgid "No such attachment."
 msgstr "無此通知"
@@ -596,6 +565,10 @@ msgstr ""
 msgid "Pick a square area of the image to be your avatar"
 msgstr ""
 
+#: actions/avatarsettings.php:347 actions/grouplogo.php:380
+msgid "Lost our file data."
+msgstr ""
+
 #: actions/avatarsettings.php:370
 msgid "Avatar updated."
 msgstr "更新個人圖像"
@@ -665,20 +638,12 @@ msgstr ""
 msgid "No such group."
 msgstr "無此使用者"
 
-#: actions/blockedfromgroup.php:100
-#, php-format
-msgid "%1$s blocked profiles, page %2$d"
-msgstr ""
-
 #: actions/blockedfromgroup.php:115
 msgid "A list of the users blocked from joining this group."
 msgstr ""
 
-#: actions/blockedfromgroup.php:288
-msgid "Unblock user from group"
-msgstr ""
-
-#: actions/blockedfromgroup.php:320 lib/unblockform.php:69
+#. TRANS: Title for the form to unblock a user.
+#: actions/blockedfromgroup.php:320 lib/unblockform.php:70
 msgid "Unblock"
 msgstr ""
 
@@ -708,9 +673,9 @@ msgstr ""
 #. TRANS: Server error thrown on database error removing a registered IM address.
 #. TRANS: Server error thrown on database error updating SMS preferences.
 #. TRANS: Server error thrown on database error removing a registered SMS phone number.
-#: actions/confirmaddress.php:116 actions/emailsettings.php:327
-#: actions/emailsettings.php:473 actions/imsettings.php:280
-#: actions/imsettings.php:439 actions/othersettings.php:174
+#: actions/confirmaddress.php:116 actions/emailsettings.php:331
+#: actions/emailsettings.php:477 actions/imsettings.php:283
+#: actions/imsettings.php:442 actions/othersettings.php:174
 #: actions/profilesettings.php:283 actions/smssettings.php:308
 #: actions/smssettings.php:464
 msgid "Couldn't update user."
@@ -718,7 +683,7 @@ msgstr "無法更新使用者"
 
 #. TRANS: Server error thrown on database error canceling e-mail address confirmation.
 #. TRANS: Server error thrown on database error canceling SMS phone number confirmation.
-#: actions/confirmaddress.php:128 actions/emailsettings.php:433
+#: actions/confirmaddress.php:128 actions/emailsettings.php:437
 #: actions/smssettings.php:422
 msgid "Couldn't delete email confirmation."
 msgstr "無法取消信箱確認"
@@ -746,9 +711,10 @@ msgstr "無法取消信箱確認"
 msgid "You are not the owner of this application."
 msgstr "無法取消信箱確認"
 
+#. TRANS: Client error text when there is a problem with the session token.
 #: actions/deleteapplication.php:102 actions/editapplication.php:127
 #: actions/newapplication.php:110 actions/showapplication.php:118
-#: lib/action.php:1307
+#: lib/action.php:1315
 msgid "There was a problem with your session token."
 msgstr ""
 
@@ -783,8 +749,13 @@ msgstr ""
 msgid "Are you sure you want to delete this notice?"
 msgstr ""
 
-#: actions/deleteuser.php:74
-msgid "You can only delete local users."
+#. TRANS: Submit button title for 'Yes' when deleting a notice.
+#: actions/deletenotice.php:158 lib/noticelist.php:657
+msgid "Delete this notice"
+msgstr ""
+
+#: actions/deleteuser.php:110 actions/deleteuser.php:133
+msgid "Delete user"
 msgstr ""
 
 #: actions/deleteuser.php:136
@@ -801,7 +772,6 @@ msgstr "註冊確認"
 #. TRANS: Message used as title for design settings for the site.
 #. TRANS: Link description in user account settings menu.
 #: actions/designadminpanel.php:63 lib/accountsettingsaction.php:139
-#: lib/groupnav.php:119
 msgid "Design"
 msgstr ""
 
@@ -809,11 +779,6 @@ msgstr ""
 msgid "Design settings for this StatusNet site."
 msgstr ""
 
-#: actions/designadminpanel.php:322
-#, php-format
-msgid "Theme not available: %s."
-msgstr ""
-
 #: actions/designadminpanel.php:426
 msgid "Change logo"
 msgstr "更改"
@@ -822,18 +787,10 @@ msgstr "更改"
 msgid "Site logo"
 msgstr "更改"
 
-#: actions/designadminpanel.php:460
-msgid "Site theme"
-msgstr ""
-
 #: actions/designadminpanel.php:461
 msgid "Theme for the site."
 msgstr ""
 
-#: actions/designadminpanel.php:467
-msgid "Custom theme"
-msgstr ""
-
 #: actions/designadminpanel.php:471
 msgid "You can upload a custom StatusNet theme as a .ZIP archive."
 msgstr ""
@@ -904,17 +861,21 @@ msgstr ""
 msgid "Reset back to default"
 msgstr ""
 
-#. TRANS: Submit button title
+#. TRANS: Submit button title.
 #: actions/designadminpanel.php:685 actions/othersettings.php:126
 #: actions/pathsadminpanel.php:351 actions/profilesettings.php:174
 #: actions/sessionsadminpanel.php:199 actions/siteadminpanel.php:292
 #: actions/sitenoticeadminpanel.php:195 actions/snapshotadminpanel.php:245
 #: actions/subscriptions.php:226 actions/tagother.php:154
-#: actions/useradminpanel.php:294 lib/applicationeditform.php:363
+#: actions/useradminpanel.php:294 lib/applicationeditform.php:353
 #: lib/designsettings.php:256 lib/groupeditform.php:202
 msgid "Save"
 msgstr ""
 
+#: actions/designadminpanel.php:686 lib/designsettings.php:257
+msgid "Save design"
+msgstr ""
+
 #: actions/disfavor.php:81
 msgid "This notice is not a favorite!"
 msgstr ""
@@ -941,10 +902,6 @@ msgstr ""
 msgid "Name is required."
 msgstr ""
 
-#: actions/editapplication.php:186 actions/newapplication.php:168
-msgid "Description is required."
-msgstr ""
-
 #: actions/editapplication.php:194
 msgid "Source URL is too long."
 msgstr ""
@@ -1019,94 +976,84 @@ msgstr ""
 #. TRANS: Button label to remove a confirmed IM address.
 #. TRANS: Button label to remove a confirmed SMS address.
 #. TRANS: Button label for removing a set sender SMS e-mail address to post notices from.
-#: actions/emailsettings.php:115 actions/emailsettings.php:158
+#: actions/emailsettings.php:115 actions/emailsettings.php:162
 #: actions/imsettings.php:116 actions/smssettings.php:124
 #: actions/smssettings.php:180
 msgctxt "BUTTON"
 msgid "Remove"
 msgstr ""
 
-#. TRANS: Instructions for e-mail address input form.
-#: actions/emailsettings.php:135
+#. TRANS: Instructions for e-mail address input form. Do not translate
+#. TRANS: "example.org". It is one of the domain names reserved for
+#. TRANS: use in examples by http://www.rfc-editor.org/rfc/rfc2606.txt.
+#. TRANS: Any other domain may be owned by a legitimate person or
+#. TRANS: organization.
+#: actions/emailsettings.php:139
 msgid "Email address, like \"UserName@example.org\""
 msgstr ""
 
-#. TRANS: Button label for adding an e-mail address in e-mail settings form.
-#. TRANS: Button label for adding an IM address in IM settings form.
-#. TRANS: Button label for adding a SMS phone number in SMS settings form.
-#: actions/emailsettings.php:139 actions/imsettings.php:148
-#: actions/smssettings.php:162
-msgctxt "BUTTON"
-msgid "Add"
-msgstr ""
-
 #. TRANS: Form legend for incoming e-mail settings form.
 #. TRANS: Form legend for incoming SMS settings form.
-#: actions/emailsettings.php:147 actions/smssettings.php:171
+#: actions/emailsettings.php:151 actions/smssettings.php:171
 msgid "Incoming email"
 msgstr ""
 
 #. TRANS: Form instructions for incoming e-mail form in e-mail settings.
 #. TRANS: Form instructions for incoming SMS e-mail address form in SMS settings.
-#: actions/emailsettings.php:155 actions/smssettings.php:178
+#: actions/emailsettings.php:159 actions/smssettings.php:178
 msgid "Send email to this address to post new notices."
 msgstr ""
 
 #. TRANS: Instructions for incoming e-mail address input form.
 #. TRANS: Instructions for incoming SMS e-mail address input form.
-#: actions/emailsettings.php:164 actions/smssettings.php:186
+#: actions/emailsettings.php:168 actions/smssettings.php:186
 msgid "Make a new email address for posting to; cancels the old one."
 msgstr ""
 
 #. TRANS: Button label for adding an e-mail address to send notices from.
 #. TRANS: Button label for adding an SMS e-mail address to send notices from.
-#: actions/emailsettings.php:168 actions/smssettings.php:189
+#: actions/emailsettings.php:172 actions/smssettings.php:189
 msgctxt "BUTTON"
 msgid "New"
 msgstr ""
 
-#. TRANS: Form legend for e-mail preferences form.
-#: actions/emailsettings.php:174
-msgid "Email preferences"
-msgstr ""
-
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:180
+#: actions/emailsettings.php:184
 msgid "Send me notices of new subscriptions through email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:186
+#: actions/emailsettings.php:190
 msgid "Send me email when someone adds my notice as a favorite."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:193
+#: actions/emailsettings.php:197
 msgid "Send me email when someone sends me a private message."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:199
+#: actions/emailsettings.php:203
 msgid "Send me email when someone sends me an \"@-reply\"."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:205
+#: actions/emailsettings.php:209
 msgid "Allow friends to nudge me and send me an email."
 msgstr ""
 
 #. TRANS: Checkbox label in e-mail preferences form.
-#: actions/emailsettings.php:212
+#: actions/emailsettings.php:216
 msgid "I want to post notices by email."
 msgstr ""
 
 #. TRANS: Confirmation message for successful e-mail preferences save.
-#: actions/emailsettings.php:334
+#: actions/emailsettings.php:338
 msgid "Email preferences saved."
 msgstr ""
 
 #. TRANS: Message given saving e-mail address that not valid.
-#: actions/emailsettings.php:366 actions/register.php:208
+#: actions/emailsettings.php:370 actions/register.php:208
 #: actions/siteadminpanel.php:144
 msgid "Not a valid email address."
 msgstr "此信箱無效"
@@ -1114,18 +1061,18 @@ msgstr "此信箱無效"
 #. TRANS: Server error thrown on database error adding e-mail confirmation code.
 #. TRANS: Server error thrown on database error adding IM confirmation code.
 #. TRANS: Server error thrown on database error adding SMS confirmation code.
-#: actions/emailsettings.php:391 actions/imsettings.php:348
+#: actions/emailsettings.php:395 actions/imsettings.php:351
 #: actions/smssettings.php:373
 msgid "Couldn't insert confirmation code."
 msgstr "無法輸入確認碼"
 
 #. TRANS: Message given after successfully canceling e-mail address confirmation.
-#: actions/emailsettings.php:438
+#: actions/emailsettings.php:442
 msgid "Email confirmation cancelled."
 msgstr "無確認碼"
 
 #. TRANS: Message given after successfully removing an incoming e-mail address.
-#: actions/emailsettings.php:508 actions/smssettings.php:581
+#: actions/emailsettings.php:512 actions/smssettings.php:581
 msgid "Incoming email address removed."
 msgstr ""
 
@@ -1137,11 +1084,6 @@ msgstr ""
 msgid "Disfavor favorite"
 msgstr ""
 
-#: actions/favorited.php:67
-#, php-format
-msgid "Popular notices, page %d"
-msgstr ""
-
 #: actions/favorited.php:79
 msgid "The most popular notices on the site right now."
 msgstr ""
@@ -1169,11 +1111,6 @@ msgstr ""
 msgid "%s's favorite notices"
 msgstr ""
 
-#: actions/favoritesrss.php:115
-#, php-format
-msgid "Updates favored by %1$s on %2$s!"
-msgstr ""
-
 #: actions/featured.php:69 lib/featureduserssection.php:87
 #: lib/publicgroupnav.php:89
 msgid "Featured users"
@@ -1221,10 +1158,6 @@ msgstr ""
 msgid "You are not authorized."
 msgstr ""
 
-#: actions/finishremotesubscribe.php:113
-msgid "Could not convert request token to access token."
-msgstr ""
-
 #: actions/finishremotesubscribe.php:118
 msgid "Remote service uses unknown version of OMB protocol."
 msgstr ""
@@ -1241,18 +1174,25 @@ msgstr ""
 msgid "User already has this role."
 msgstr ""
 
+#: actions/groupblock.php:71 actions/groupunblock.php:71
+#: actions/makeadmin.php:71 actions/subedit.php:46
+#: lib/profileformaction.php:79
+msgid "No profile specified."
+msgstr ""
+
 #: actions/groupblock.php:76 actions/groupunblock.php:76
 #: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46
 #: actions/unsubscribe.php:84 lib/profileformaction.php:86
 msgid "No profile with that ID."
 msgstr ""
 
-#: actions/groupblock.php:91
-msgid "Only an admin can block group members."
+#: actions/groupblock.php:81 actions/groupunblock.php:81
+#: actions/makeadmin.php:81
+msgid "No group specified."
 msgstr ""
 
-#: actions/groupblock.php:134 actions/groupmembers.php:360
-msgid "Block user from group"
+#: actions/groupblock.php:91
+msgid "Only an admin can block group members."
 msgstr ""
 
 #: actions/groupblock.php:160
@@ -1263,11 +1203,6 @@ msgid ""
 "the group in the future."
 msgstr ""
 
-#. TRANS: Submit button title for 'Yes' when blocking a user from a group.
-#: actions/groupblock.php:189
-msgid "Block this user from this group"
-msgstr ""
-
 #: actions/groupblock.php:206
 msgid "Database error blocking user from group."
 msgstr ""
@@ -1276,6 +1211,10 @@ msgstr ""
 msgid "No ID."
 msgstr "無此通知"
 
+#: actions/groupdesignsettings.php:68
+msgid "You must be logged in to edit a group."
+msgstr ""
+
 #: actions/groupdesignsettings.php:144
 msgid "Group design"
 msgstr ""
@@ -1300,32 +1239,40 @@ msgstr ""
 msgid "Pick a square area of the image to be the logo."
 msgstr ""
 
-#: actions/groupmembers.php:103
+#. TRANS: Title of the page showing group members.
+#. TRANS: %1$s is the name of the group, %2$d is the page number of the members list.
+#: actions/groupmembers.php:107
 #, php-format
 msgid "%1$s group members, page %2$d"
 msgstr ""
 
-#: actions/groupmembers.php:118
+#: actions/groupmembers.php:122
 msgid "A list of the users in this group."
 msgstr ""
 
-#: actions/groupmembers.php:182 lib/groupnav.php:107
+#: actions/groupmembers.php:186
 msgid "Admin"
 msgstr ""
 
-#: actions/groupmembers.php:392 lib/blockform.php:69
+#. TRANS: Button text for the form that will block a user from a group.
+#: actions/groupmembers.php:399
+msgctxt "BUTTON"
 msgid "Block"
 msgstr ""
 
-#: actions/groupmembers.php:487
+#: actions/groupmembers.php:498
 msgid "Make user an admin of the group"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Button text for the form that will make a user administrator.
+#: actions/groupmembers.php:533
+msgctxt "BUTTON"
 msgid "Make Admin"
 msgstr ""
 
-#: actions/groupmembers.php:519
+#. TRANS: Submit button title.
+#: actions/groupmembers.php:537
+msgctxt "TOOLTIP"
 msgid "Make this user an admin"
 msgstr ""
 
@@ -1338,12 +1285,6 @@ msgstr ""
 msgid "%s timeline"
 msgstr ""
 
-#. TRANS: Message is used as link description. %1$s is a username, %2$s is a site name.
-#: actions/grouprss.php:142
-#, php-format
-msgid "Updates from members of %1$s on %2$s!"
-msgstr ""
-
 #: actions/groups.php:62 lib/profileaction.php:223 lib/profileaction.php:249
 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98
 msgid "Groups"
@@ -1364,10 +1305,6 @@ msgid ""
 "%%%%)"
 msgstr ""
 
-#: actions/groups.php:107 actions/usergroups.php:126 lib/groupeditform.php:122
-msgid "Create a new group"
-msgstr ""
-
 #: actions/groupsearch.php:52
 #, php-format
 msgid ""
@@ -1416,11 +1353,6 @@ msgid ""
 "doc.im%%). Configure your address and settings below."
 msgstr ""
 
-#. TRANS: Message given in the IM settings if XMPP is not enabled on the site.
-#: actions/imsettings.php:94
-msgid "IM is not available."
-msgstr ""
-
 #. TRANS: Form legend for IM settings form.
 #. TRANS: Field label for IM address input in IM settings form.
 #: actions/imsettings.php:106 actions/imsettings.php:136
@@ -1444,7 +1376,10 @@ msgstr ""
 
 #. TRANS: IM address input field instructions in IM settings form.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:140
+#. TRANS: Do not translate "example.org". It is one of the domain names reserved for use in examples by
+#. TRANS: http://www.rfc-editor.org/rfc/rfc2606.txt. Any other domain may be owned by a legitimate
+#. TRANS: person or organization.
+#: actions/imsettings.php:143
 #, php-format
 msgid ""
 "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to "
@@ -1452,53 +1387,53 @@ msgid ""
 msgstr ""
 
 #. TRANS: Form legend for IM preferences form.
-#: actions/imsettings.php:155
+#: actions/imsettings.php:158
 msgid "IM preferences"
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:160
+#: actions/imsettings.php:163
 msgid "Send me notices through Jabber/GTalk."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:166
+#: actions/imsettings.php:169
 msgid "Post a notice when my Jabber/GTalk status changes."
 msgstr ""
 
 #. TRANS: Checkbox label in IM preferences form.
-#: actions/imsettings.php:172
+#: actions/imsettings.php:175
 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to."
 msgstr ""
 
 #. TRANS: Confirmation message for successful IM preferences save.
-#: actions/imsettings.php:287 actions/othersettings.php:180
+#: actions/imsettings.php:290 actions/othersettings.php:180
 msgid "Preferences saved."
 msgstr ""
 
 #. TRANS: Message given saving IM address without having provided one.
-#: actions/imsettings.php:309
+#: actions/imsettings.php:312
 msgid "No Jabber ID."
 msgstr "查無此Jabber ID"
 
 #. TRANS: Message given saving IM address that cannot be normalised.
-#: actions/imsettings.php:317
+#: actions/imsettings.php:320
 msgid "Cannot normalize that Jabber ID"
 msgstr "此JabberID錯誤"
 
 #. TRANS: Message given saving IM address that not valid.
-#: actions/imsettings.php:322
+#: actions/imsettings.php:325
 msgid "Not a valid Jabber ID"
 msgstr "此JabberID無效"
 
 #. TRANS: Message given saving IM address that is already set for another user.
-#: actions/imsettings.php:330
+#: actions/imsettings.php:333
 msgid "Jabber ID already belongs to another user."
 msgstr "此Jabber ID已有人使用"
 
 #. TRANS: Message given saving valid IM address that is to be confirmed.
 #. TRANS: %s is the IM address set for the site.
-#: actions/imsettings.php:358
+#: actions/imsettings.php:361
 #, php-format
 msgid ""
 "A confirmation code was sent to the IM address you added. You must approve %"
@@ -1506,17 +1441,17 @@ msgid ""
 msgstr "確認信已寄到你的線上即時通信箱。%s送給你得訊息要先經過你的認可。"
 
 #. TRANS: Message given canceling IM address confirmation for the wrong IM address.
-#: actions/imsettings.php:388
+#: actions/imsettings.php:391
 msgid "That is the wrong IM address."
 msgstr ""
 
 #. TRANS: Message given after successfully canceling IM address confirmation.
-#: actions/imsettings.php:402
+#: actions/imsettings.php:405
 msgid "IM confirmation cancelled."
 msgstr "無確認碼"
 
 #. TRANS: Message given after successfully removing a registered IM address.
-#: actions/imsettings.php:447
+#: actions/imsettings.php:450
 msgid "The IM address was removed."
 msgstr ""
 
@@ -1623,11 +1558,19 @@ msgid ""
 "Sincerely, %2$s\n"
 msgstr ""
 
+#: actions/joingroup.php:60
+msgid "You must be logged in to join a group."
+msgstr ""
+
 #: actions/joingroup.php:141
 #, php-format
 msgid "%1$s joined group %2$s"
 msgstr ""
 
+#: actions/leavegroup.php:60
+msgid "You must be logged in to leave a group."
+msgstr ""
+
 #: actions/login.php:102 actions/otp.php:62 actions/register.php:144
 msgid "Already logged in."
 msgstr "已登入"
@@ -1681,15 +1624,6 @@ msgstr ""
 msgid "%1$s is already an admin for group \"%2$s\"."
 msgstr ""
 
-#: actions/makeadmin.php:133
-#, php-format
-msgid "Can't get membership record for %1$s in group %2$s."
-msgstr ""
-
-#: actions/microsummary.php:69
-msgid "No current status."
-msgstr ""
-
 #: actions/newapplication.php:143
 msgid "Use this form to register a new application."
 msgstr ""
@@ -1717,6 +1651,10 @@ msgstr ""
 msgid "No content!"
 msgstr "無內容"
 
+#: actions/newmessage.php:158
+msgid "No recipient specified."
+msgstr ""
+
 #. TRANS: Error text shown when trying to send a direct message to self.
 #: actions/newmessage.php:164 lib/command.php:506
 msgid ""
@@ -1742,6 +1680,10 @@ msgstr ""
 msgid "New notice"
 msgstr "新訊息"
 
+#: actions/newnotice.php:227
+msgid "Notice posted"
+msgstr ""
+
 #: actions/noticesearch.php:68
 #, php-format
 msgid ""
@@ -1753,11 +1695,6 @@ msgstr ""
 msgid "Text search"
 msgstr ""
 
-#: actions/noticesearch.php:91
-#, php-format
-msgid "Search results for \"%1$s\" on %2$s"
-msgstr ""
-
 #: actions/noticesearch.php:121
 #, php-format
 msgid ""
@@ -1772,16 +1709,6 @@ msgid ""
 "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!"
 msgstr ""
 
-#: actions/noticesearchrss.php:96
-#, php-format
-msgid "Updates with \"%s\""
-msgstr ""
-
-#: actions/noticesearchrss.php:98
-#, php-format
-msgid "Updates matching search term \"%1$s\" on %2$s!"
-msgstr ""
-
 #: actions/nudge.php:85
 msgid ""
 "This user doesn't allow nudges or hasn't confirmed or set their email yet."
@@ -1795,6 +1722,14 @@ msgstr ""
 msgid "Nudge sent!"
 msgstr ""
 
+#: actions/oauthappssettings.php:59
+msgid "You must be logged in to list your applications."
+msgstr ""
+
+#: actions/oauthappssettings.php:74
+msgid "OAuth applications"
+msgstr ""
+
 #: actions/oauthappssettings.php:85
 msgid "Applications you have registered"
 msgstr ""
@@ -1829,12 +1764,6 @@ msgstr "新的更人資料輸入錯誤"
 msgid "%1$s's status on %2$s"
 msgstr "%1$s的狀態是%2$s"
 
-#. TRANS: Error message displaying attachments. %s is a raw MIME type (eg 'image/png')
-#: actions/oembed.php:159
-#, php-format
-msgid "Content type %s not supported."
-msgstr ""
-
 #. TRANS: Error message displaying attachments. %s is the site's base URL.
 #: actions/oembed.php:163
 #, php-format
@@ -1842,8 +1771,8 @@ msgid "Only %s URLs over plain HTTP please."
 msgstr ""
 
 #. TRANS: Client error on an API request with an unsupported data format.
-#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1209
-#: lib/apiaction.php:1237 lib/apiaction.php:1360
+#: actions/oembed.php:184 actions/oembed.php:203 lib/apiaction.php:1206
+#: lib/apiaction.php:1233 lib/apiaction.php:1356
 msgid "Not a supported data format."
 msgstr ""
 
@@ -1851,6 +1780,10 @@ msgstr ""
 msgid "People Search"
 msgstr ""
 
+#: actions/opensearch.php:67
+msgid "Notice Search"
+msgstr ""
+
 #: actions/othersettings.php:60
 msgid "Other settings"
 msgstr "使用者設定發生錯誤"
@@ -1943,7 +1876,7 @@ msgid "Password saved."
 msgstr ""
 
 #. TRANS: Menu item for site administration
-#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:384
+#: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:371
 msgid "Paths"
 msgstr ""
 
@@ -1951,23 +1884,16 @@ msgstr ""
 msgid "Path and server settings for this StatusNet site."
 msgstr ""
 
-#: actions/pathsadminpanel.php:157
-#, php-format
-msgid "Theme directory not readable: %s."
-msgstr ""
-
-#: actions/pathsadminpanel.php:169
-#, php-format
-msgid "Background directory not writable: %s."
+#: actions/pathsadminpanel.php:183
+msgid "Invalid SSL server. The maximum length is 255 characters."
 msgstr ""
 
-#: actions/pathsadminpanel.php:177
-#, php-format
-msgid "Locales directory not readable: %s."
+#: actions/pathsadminpanel.php:234 actions/siteadminpanel.php:58
+msgid "Site"
 msgstr ""
 
-#: actions/pathsadminpanel.php:183
-msgid "Invalid SSL server. The maximum length is 255 characters."
+#: actions/pathsadminpanel.php:238
+msgid "Server"
 msgstr ""
 
 #: actions/pathsadminpanel.php:238
@@ -1978,10 +1904,6 @@ msgstr ""
 msgid "Path"
 msgstr ""
 
-#: actions/pathsadminpanel.php:242
-msgid "Site path"
-msgstr ""
-
 #: actions/pathsadminpanel.php:246
 msgid "Path to locales"
 msgstr ""
@@ -2002,10 +1924,18 @@ msgstr ""
 msgid "Theme"
 msgstr ""
 
+#: actions/pathsadminpanel.php:264
+msgid "Theme server"
+msgstr ""
+
 #: actions/pathsadminpanel.php:268
 msgid "Theme path"
 msgstr ""
 
+#: actions/pathsadminpanel.php:272
+msgid "Theme directory"
+msgstr ""
+
 #: actions/pathsadminpanel.php:284
 msgid "Avatar server"
 msgstr "個人圖像"
@@ -2022,6 +1952,10 @@ msgstr ""
 msgid "Background path"
 msgstr ""
 
+#: actions/pathsadminpanel.php:313
+msgid "Background directory"
+msgstr ""
+
 #: actions/pathsadminpanel.php:320
 msgid "SSL"
 msgstr ""
@@ -2030,6 +1964,10 @@ msgstr ""
 msgid "Never"
 msgstr ""
 
+#: actions/pathsadminpanel.php:324
+msgid "Sometimes"
+msgstr ""
+
 #: actions/pathsadminpanel.php:325
 msgid "Always"
 msgstr ""
@@ -2050,10 +1988,6 @@ msgstr "個人圖像"
 msgid "Server to direct SSL requests to"
 msgstr ""
 
-#: actions/pathsadminpanel.php:352
-msgid "Save paths"
-msgstr ""
-
 #: actions/peoplesearch.php:52
 #, php-format
 msgid ""
@@ -2065,11 +1999,6 @@ msgstr ""
 msgid "People search"
 msgstr ""
 
-#: actions/peopletag.php:142
-#, php-format
-msgid "Users self-tagged with %1$s - page %2$d"
-msgstr ""
-
 #: actions/postnotice.php:101
 #, php-format
 msgid "Notice license ‘%1$s’ is not compatible with site license ‘%2$s’."
@@ -2096,7 +2025,7 @@ msgstr "全名"
 
 #. TRANS: Form input field label.
 #: actions/profilesettings.php:115 actions/register.php:460
-#: lib/applicationeditform.php:244 lib/groupeditform.php:161
+#: lib/applicationeditform.php:235 lib/groupeditform.php:161
 msgid "Homepage"
 msgstr "個人首頁"
 
@@ -2104,15 +2033,6 @@ msgstr "個人首頁"
 msgid "URL of your homepage, blog, or profile on another site"
 msgstr ""
 
-#: actions/profilesettings.php:122 actions/register.php:468
-#, php-format
-msgid "Describe yourself and your interests in %d chars"
-msgstr ""
-
-#: actions/profilesettings.php:125 actions/register.php:471
-msgid "Describe yourself and your interests"
-msgstr ""
-
 #: actions/profilesettings.php:127 actions/register.php:473
 msgid "Bio"
 msgstr "自我介紹"
@@ -2183,7 +2103,7 @@ msgid "Couldn't save profile."
 msgstr "無法儲存個人資料"
 
 #. TRANS: Message after successful saving of administrative settings.
-#: actions/profilesettings.php:391 lib/adminpanelaction.php:141
+#: actions/profilesettings.php:391 lib/adminpanelaction.php:138
 msgid "Settings saved."
 msgstr ""
 
@@ -2209,10 +2129,6 @@ msgstr ""
 msgid "Public Stream Feed (RSS 2.0)"
 msgstr ""
 
-#: actions/public.php:168
-msgid "Public Stream Feed (Atom)"
-msgstr ""
-
 #: actions/public.php:188
 #, php-format
 msgid ""
@@ -2272,6 +2188,10 @@ msgid ""
 "one!"
 msgstr ""
 
+#: actions/publictagcloud.php:134
+msgid "Tag cloud"
+msgstr ""
+
 #: actions/recoverpassword.php:62
 msgid "No such recovery code."
 msgstr "無此恢復碼"
@@ -2435,14 +2355,6 @@ msgstr ""
 msgid "All rights reserved."
 msgstr ""
 
-#. TRANS: Copyright checkbox label in registration dialog, for Creative Commons-style licenses.
-#: actions/register.php:540
-#, php-format
-msgid ""
-"My text and files are available under %s except this private data: password, "
-"email address, IM address, and phone number."
-msgstr ""
-
 #: actions/register.php:583
 #, php-format
 msgid ""
@@ -2504,10 +2416,6 @@ msgstr ""
 msgid "That’s a local profile! Login to subscribe."
 msgstr ""
 
-#: actions/remotesubscribe.php:183
-msgid "Couldn’t get a request token."
-msgstr ""
-
 #: actions/repeat.php:57
 msgid "Only logged-in users can repeat notices."
 msgstr ""
@@ -2516,44 +2424,20 @@ msgstr ""
 msgid "No notice specified."
 msgstr "無此通知"
 
+#: actions/repeat.php:76
+msgid "You can't repeat your own notice."
+msgstr ""
+
 #: actions/repeat.php:90
 msgid "You already repeated that notice."
 msgstr "此Jabber ID已有人使用"
 
-#: actions/repeat.php:114 lib/noticelist.php:676
-msgid "Repeated"
-msgstr ""
-
-#: actions/repeat.php:119
-msgid "Repeated!"
-msgstr ""
-
 #: actions/replies.php:126 actions/repliesrss.php:68
 #: lib/personalgroupnav.php:105
 #, php-format
 msgid "Replies to %s"
 msgstr ""
 
-#: actions/replies.php:128
-#, php-format
-msgid "Replies to %1$s, page %2$d"
-msgstr ""
-
-#: actions/replies.php:145
-#, php-format
-msgid "Replies feed for %s (RSS 1.0)"
-msgstr ""
-
-#: actions/replies.php:152
-#, php-format
-msgid "Replies feed for %s (RSS 2.0)"
-msgstr ""
-
-#: actions/replies.php:159
-#, php-format
-msgid "Replies feed for %s (Atom)"
-msgstr ""
-
 #: actions/replies.php:199
 #, php-format
 msgid ""
@@ -2575,30 +2459,17 @@ msgid ""
 "newnotice%%%%?status_textarea=%3$s)."
 msgstr ""
 
-#: actions/repliesrss.php:72
-#, php-format
-msgid "Replies to %1$s on %2$s!"
-msgstr ""
-
-#: actions/revokerole.php:75
-msgid "You cannot revoke user roles on this site."
-msgstr ""
-
 #: actions/revokerole.php:82
 msgid "User doesn't have this role."
 msgstr ""
 
-#: actions/rsd.php:146 actions/version.php:159
-msgid "StatusNet"
-msgstr ""
-
 #: actions/sandbox.php:72
 msgid "User is already sandboxed."
 msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/sessionsadminpanel.php:54 actions/sessionsadminpanel.php:170
-#: lib/adminpanelaction.php:392
+#: lib/adminpanelaction.php:379
 msgid "Sessions"
 msgstr ""
 
@@ -2628,15 +2499,10 @@ msgid "Save site settings"
 msgstr "使用者設定發生錯誤"
 
 #. TRANS: Form input field label for application icon.
-#: actions/showapplication.php:159 lib/applicationeditform.php:182
+#: actions/showapplication.php:159 lib/applicationeditform.php:173
 msgid "Icon"
 msgstr ""
 
-#. TRANS: Form input field label.
-#: actions/showapplication.php:178 lib/applicationeditform.php:235
-msgid "Organization"
-msgstr ""
-
 #: actions/showapplication.php:192 actions/showgroup.php:436
 #: lib/profileaction.php:187
 msgid "Statistics"
@@ -2689,30 +2555,10 @@ msgstr ""
 msgid "Are you sure you want to reset your consumer key and secret?"
 msgstr ""
 
-#: actions/showfavorites.php:79
-#, php-format
-msgid "%1$s's favorite notices, page %2$d"
-msgstr ""
-
 #: actions/showfavorites.php:132
 msgid "Could not retrieve favorite notices."
 msgstr "無法更新使用者"
 
-#: actions/showfavorites.php:171
-#, php-format
-msgid "Feed for favorites of %s (RSS 1.0)"
-msgstr ""
-
-#: actions/showfavorites.php:178
-#, php-format
-msgid "Feed for favorites of %s (RSS 2.0)"
-msgstr ""
-
-#: actions/showfavorites.php:185
-#, php-format
-msgid "Feed for favorites of %s (Atom)"
-msgstr ""
-
 #: actions/showfavorites.php:206
 msgid ""
 "You haven't chosen any favorite notices yet. Click the fave button on "
@@ -2738,16 +2584,16 @@ msgstr ""
 msgid "This is a way to share what you like."
 msgstr ""
 
-#: actions/showgroup.php:84
-#, php-format
-msgid "%1$s group, page %2$d"
-msgstr ""
-
 #: actions/showgroup.php:272 actions/tagother.php:118
 #: actions/userauthorization.php:175 lib/userprofile.php:178
 msgid "URL"
 msgstr ""
 
+#: actions/showgroup.php:283 actions/tagother.php:128
+#: actions/userauthorization.php:187 lib/userprofile.php:195
+msgid "Note"
+msgstr ""
+
 #: actions/showgroup.php:293 lib/groupeditform.php:184
 msgid "Aliases"
 msgstr ""
@@ -2767,11 +2613,6 @@ msgstr ""
 msgid "Notice feed for %s group (Atom)"
 msgstr ""
 
-#: actions/showgroup.php:355
-#, php-format
-msgid "FOAF for %s group"
-msgstr ""
-
 #: actions/showgroup.php:398 lib/profileaction.php:117
 #: lib/profileaction.php:152 lib/profileaction.php:255 lib/section.php:95
 #: lib/subscriptionlist.php:127 lib/tagcloudsection.php:71
@@ -2782,10 +2623,6 @@ msgstr ""
 msgid "All members"
 msgstr ""
 
-#: actions/showgroup.php:439
-msgid "Created"
-msgstr ""
-
 #: actions/showgroup.php:455
 #, php-format
 msgid ""
@@ -2828,16 +2665,6 @@ msgstr ""
 msgid " tagged %s"
 msgstr ""
 
-#: actions/showstream.php:79
-#, php-format
-msgid "%1$s, page %2$d"
-msgstr ""
-
-#: actions/showstream.php:122
-#, php-format
-msgid "Notice feed for %1$s tagged %2$s (RSS 1.0)"
-msgstr ""
-
 #: actions/showstream.php:129
 #, php-format
 msgid "Notice feed for %s (RSS 1.0)"
@@ -2898,6 +2725,10 @@ msgstr ""
 msgid "Repeat of %s"
 msgstr ""
 
+#: actions/silence.php:65 actions/unsilence.php:65
+msgid "You cannot silence users on this site."
+msgstr ""
+
 #: actions/silence.php:72
 msgid "User is already silenced."
 msgstr ""
@@ -2927,10 +2758,6 @@ msgstr ""
 msgid "General"
 msgstr ""
 
-#: actions/siteadminpanel.php:224
-msgid "Site name"
-msgstr ""
-
 #: actions/siteadminpanel.php:225
 msgid "The name of your site, like \"Yourcompany Microblog\""
 msgstr ""
@@ -3011,11 +2838,6 @@ msgstr "使用者設定發生錯誤"
 msgid "You can receive SMS messages through email from %%site.name%%."
 msgstr ""
 
-#. TRANS: Message given in the SMS settings if SMS is not enabled on the site.
-#: actions/smssettings.php:97
-msgid "SMS is not available."
-msgstr ""
-
 #. TRANS: Form legend for SMS settings form.
 #: actions/smssettings.php:111
 msgid "SMS address"
@@ -3058,6 +2880,11 @@ msgstr ""
 msgid "SMS preferences saved."
 msgstr ""
 
+#. TRANS: Message given saving SMS phone number without having selected a carrier.
+#: actions/smssettings.php:344
+msgid "No carrier selected."
+msgstr ""
+
 #. TRANS: Message given saving SMS phone number that is already set.
 #: actions/smssettings.php:352
 msgid "That is already your phone number."
@@ -3100,7 +2927,7 @@ msgstr ""
 
 #. TRANS: Menu item for site administration
 #: actions/snapshotadminpanel.php:54 actions/snapshotadminpanel.php:196
-#: lib/adminpanelaction.php:408
+#: lib/adminpanelaction.php:395
 msgid "Snapshots"
 msgstr ""
 
@@ -3165,11 +2992,6 @@ msgstr ""
 msgid "You cannot subscribe to an OMB 0.1 remote profile with this action."
 msgstr ""
 
-#: actions/subscribers.php:52
-#, php-format
-msgid "%1$s subscribers, page %2$d"
-msgstr ""
-
 #: actions/subscribers.php:67
 #, php-format
 msgid "These are the people who listen to %s's notices."
@@ -3216,21 +3038,11 @@ msgstr ""
 msgid "SMS"
 msgstr ""
 
-#: actions/tag.php:69
-#, php-format
-msgid "Notices tagged with %1$s, page %2$d"
-msgstr ""
-
 #: actions/tag.php:87
 #, php-format
 msgid "Notice feed for tag %s (RSS 1.0)"
 msgstr ""
 
-#: actions/tag.php:93
-#, php-format
-msgid "Notice feed for tag %s (RSS 2.0)"
-msgstr ""
-
 #: actions/tag.php:99
 #, php-format
 msgid "Notice feed for tag %s (Atom)"
@@ -3318,6 +3130,12 @@ msgstr ""
 msgid "Invalid default subscripton: '%1$s' is not user."
 msgstr ""
 
+#. TRANS: Link description in user account settings menu.
+#: actions/useradminpanel.php:218 lib/accountsettingsaction.php:111
+#: lib/personalgroupnav.php:109
+msgid "Profile"
+msgstr ""
+
 #: actions/useradminpanel.php:222
 msgid "Bio Limit"
 msgstr ""
@@ -3342,10 +3160,6 @@ msgstr ""
 msgid "Automatically subscribe new users to this user."
 msgstr ""
 
-#: actions/useradminpanel.php:251
-msgid "Invitations"
-msgstr ""
-
 #: actions/useradminpanel.php:256
 msgid "Invitations enabled"
 msgstr ""
@@ -3432,11 +3246,6 @@ msgstr ""
 msgid "Avatar URL ‘%s’ is not valid."
 msgstr ""
 
-#: actions/userauthorization.php:350
-#, php-format
-msgid "Can’t read avatar URL ‘%s’."
-msgstr ""
-
 #: actions/userauthorization.php:355
 #, php-format
 msgid "Wrong image type for avatar URL ‘%s’."
@@ -3456,12 +3265,6 @@ msgstr ""
 msgid "Enjoy your hotdog!"
 msgstr ""
 
-#. TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number.
-#: actions/usergroups.php:66
-#, php-format
-msgid "%1$s groups, page %2$d"
-msgstr ""
-
 #: actions/usergroups.php:132
 msgid "Search for more groups"
 msgstr ""
@@ -3525,11 +3328,6 @@ msgstr ""
 msgid "Plugins"
 msgstr ""
 
-#. TRANS: Secondary navigation menu option leading to version information on the StatusNet site.
-#: actions/version.php:198 lib/action.php:805
-msgid "Version"
-msgstr ""
-
 #: actions/version.php:199
 msgid "Author(s)"
 msgstr ""
@@ -3637,18 +3435,13 @@ msgid "You are banned from posting notices on this site."
 msgstr ""
 
 #. TRANS: Server exception thrown when no array is provided to the method saveKnownGroups().
-#: classes/Notice.php:897
+#: classes/Notice.php:899
 msgid "Bad type provided to saveKnownGroups"
 msgstr ""
 
-#. TRANS: Server exception thrown when an update for a group inbox fails.
-#: classes/Notice.php:996
-msgid "Problem saving group inbox."
-msgstr ""
-
 #. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
 #. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-#: classes/Notice.php:1757
+#: classes/Notice.php:1759
 #, php-format
 msgid "RT @%1$s %2$s"
 msgstr ""
@@ -3678,7 +3471,7 @@ msgid "Unable to save tag."
 msgstr "無法儲存個人資料"
 
 #. TRANS: Exception thrown when trying to subscribe while being banned from subscribing.
-#: classes/Subscription.php:75 lib/oauthstore.php:465
+#: classes/Subscription.php:75 lib/oauthstore.php:466
 msgid "You have been banned from subscribing."
 msgstr ""
 
@@ -3749,30 +3542,17 @@ msgstr ""
 msgid "Untitled page"
 msgstr ""
 
+#. TRANS: DT element for primary navigation menu. String is hidden in default CSS.
+#: lib/action.php:449
+msgid "Primary site navigation"
+msgstr ""
+
 #. TRANS: Tooltip for main menu option "Personal"
 #: lib/action.php:455
 msgctxt "TOOLTIP"
 msgid "Personal profile and friends timeline"
 msgstr ""
 
-#. TRANS: Main menu option when logged in for access to personal profile and friends timeline
-#: lib/action.php:458
-msgctxt "MENU"
-msgid "Personal"
-msgstr ""
-
-#. TRANS: Tooltip for main menu option "Account"
-#: lib/action.php:460
-msgctxt "TOOLTIP"
-msgid "Change your email, avatar, password, profile"
-msgstr ""
-
-#. TRANS: Tooltip for main menu option "Services"
-#: lib/action.php:465
-msgctxt "TOOLTIP"
-msgid "Connect to services"
-msgstr ""
-
 #. TRANS: Main menu option when logged in and connection are possible for access to options to connect to other services
 #: lib/action.php:468
 msgid "Connect"
@@ -3785,7 +3565,8 @@ msgid "Change site configuration"
 msgstr "無確認碼"
 
 #. TRANS: Main menu option when logged in and site admin for access to site configuration
-#: lib/action.php:474
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/action.php:474 lib/groupnav.php:117
 msgctxt "MENU"
 msgid "Admin"
 msgstr ""
@@ -3797,12 +3578,6 @@ msgctxt "TOOLTIP"
 msgid "Invite friends and colleagues to join you on %s"
 msgstr ""
 
-#. TRANS: Main menu option when logged in and invitations are allowed for inviting new users
-#: lib/action.php:481
-msgctxt "MENU"
-msgid "Invite"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Logout"
 #: lib/action.php:487
 msgctxt "TOOLTIP"
@@ -3815,18 +3590,6 @@ msgctxt "MENU"
 msgid "Logout"
 msgstr "登入"
 
-#. TRANS: Tooltip for main menu option "Register"
-#: lib/action.php:495
-msgctxt "TOOLTIP"
-msgid "Create an account"
-msgstr ""
-
-#. TRANS: Main menu option when not logged in to register a new account
-#: lib/action.php:498
-msgctxt "MENU"
-msgid "Register"
-msgstr ""
-
 #. TRANS: Tooltip for main menu option "Login"
 #: lib/action.php:501
 msgctxt "TOOLTIP"
@@ -3849,6 +3612,11 @@ msgstr ""
 msgid "Local views"
 msgstr ""
 
+#. TRANS: DT element for secondary navigation menu. String is hidden in default CSS.
+#: lib/action.php:778
+msgid "Secondary site navigation"
+msgstr ""
+
 #. TRANS: Secondary navigation menu option leading to help on StatusNet.
 #: lib/action.php:784
 msgid "Help"
@@ -3893,22 +3661,17 @@ msgstr ""
 msgid "StatusNet software license"
 msgstr ""
 
-#. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is set.
-#: lib/action.php:843
-#, php-format
-msgid ""
-"**%%site.name%%** is a microblogging service brought to you by [%%site."
-"broughtby%%](%%site.broughtbyurl%%)."
-msgstr ""
-
 #. TRANS: First sentence of the StatusNet site license. Used if 'broughtby' is not set.
-#: lib/action.php:846
+#: lib/action.php:849
 #, php-format
 msgid "**%%site.name%%** is a microblogging service."
 msgstr "**%%site.name%%**是個微型部落格"
 
 #. TRANS: Second sentence of the StatusNet site license. Mentions the StatusNet source code license.
-#: lib/action.php:850
+#. TRANS: Make sure there is no whitespace between "]" and "(".
+#. TRANS: Text between [] is a link description, text between () is the link itself.
+#. TRANS: %s is the version of StatusNet that is being used.
+#: lib/action.php:856
 #, php-format
 msgid ""
 "It runs the [StatusNet](http://status.net/) microblogging software, version %"
@@ -3916,216 +3679,243 @@ msgid ""
 "org/licensing/licenses/agpl-3.0.html)."
 msgstr ""
 
-#. TRANS: DT element for StatusNet site content license.
-#: lib/action.php:866
-msgid "Site content license"
-msgstr ""
-
 #. TRANS: Content license displayed when license is set to 'private'.
 #. TRANS: %1$s is the site name.
-#: lib/action.php:873
+#: lib/action.php:879
 #, php-format
 msgid "Content and data of %1$s are private and confidential."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved'.
 #. TRANS: %1$s is the copyright owner.
-#: lib/action.php:880
+#: lib/action.php:886
 #, php-format
 msgid "Content and data copyright by %1$s. All rights reserved."
 msgstr ""
 
 #. TRANS: Content license displayed when license is set to 'allrightsreserved' and no owner is set.
-#: lib/action.php:884
+#: lib/action.php:890
 msgid "Content and data copyright by contributors. All rights reserved."
 msgstr ""
 
-#. TRANS: license message in footer. %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
-#: lib/action.php:897
+#. TRANS: license message in footer.
+#. TRANS: %1$s is the site name, %2$s is a link to the license URL, with a licence name set in configuration.
+#: lib/action.php:904
 #, php-format
 msgid "All %1$s content and data are available under the %2$s license."
 msgstr ""
 
 #. TRANS: DT element for pagination (previous/next, etc.).
-#: lib/action.php:1236
+#: lib/action.php:1243
 msgid "Pagination"
 msgstr ""
 
 #. TRANS: Pagination message to go to a page displaying information more in the
 #. TRANS: present than the currently displayed information.
-#: lib/action.php:1247
+#: lib/action.php:1254
 msgid "After"
 msgstr ""
 
-#. TRANS: Pagination message to go to a page displaying information more in the
-#. TRANS: past than the currently displayed information.
-#: lib/action.php:1257
-msgid "Before"
-msgstr ""
-
 #. TRANS: Client exception thrown when a feed instance is a DOMDocument.
 #: lib/activity.php:122
 msgid "Expecting a root feed element but got a whole XML document."
 msgstr ""
 
-#: lib/activityutils.php:208
+#. TRANS: Client exception thrown when there is no source attribute.
+#: lib/activityutils.php:203
 msgid "Can't handle remote content yet."
 msgstr ""
 
-#: lib/activityutils.php:244
+#. TRANS: Client exception thrown when there embedded XML content is found that cannot be processed yet.
+#: lib/activityutils.php:240
 msgid "Can't handle embedded XML content yet."
 msgstr ""
 
-#: lib/activityutils.php:248
+#. TRANS: Client exception thrown when base64 encoded content is found that cannot be processed yet.
+#: lib/activityutils.php:245
 msgid "Can't handle embedded Base64 content yet."
 msgstr ""
 
+#. TRANS: Client error message thrown when a user tries to change admin settings but has no access rights.
+#: lib/adminpanelaction.php:96
+msgid "You cannot make changes to this site."
+msgstr ""
+
 #. TRANS: Client error message throw when a certain panel's settings cannot be changed.
-#: lib/adminpanelaction.php:110
+#: lib/adminpanelaction.php:108
 msgid "Changes to that panel are not allowed."
 msgstr ""
 
 #. TRANS: Client error message.
-#: lib/adminpanelaction.php:229
+#: lib/adminpanelaction.php:222
 msgid "showForm() not implemented."
 msgstr ""
 
 #. TRANS: Client error message
-#: lib/adminpanelaction.php:259
+#: lib/adminpanelaction.php:250
 msgid "saveSettings() not implemented."
 msgstr ""
 
 #. TRANS: Client error message thrown if design settings could not be deleted in
 #. TRANS: the admin panel Design.
-#: lib/adminpanelaction.php:284
+#: lib/adminpanelaction.php:274
 msgid "Unable to delete design setting."
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:350
+#: lib/adminpanelaction.php:337
 msgid "Basic site configuration"
 msgstr "無確認碼"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:358
+#: lib/adminpanelaction.php:345
 msgid "Design configuration"
 msgstr "無確認碼"
 
-#. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:360
-msgctxt "MENU"
-msgid "Design"
-msgstr ""
-
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:366
+#: lib/adminpanelaction.php:353
 msgid "User configuration"
 msgstr "無確認碼"
 
 #. TRANS: Menu item for site administration
-#: lib/adminpanelaction.php:368 lib/personalgroupnav.php:115
+#: lib/adminpanelaction.php:355 lib/personalgroupnav.php:115
 msgid "User"
 msgstr ""
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:374
+#: lib/adminpanelaction.php:361
 msgid "Access configuration"
 msgstr "無確認碼"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:382
+#: lib/adminpanelaction.php:369
 msgid "Paths configuration"
 msgstr "無確認碼"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:390
+#: lib/adminpanelaction.php:377
 msgid "Sessions configuration"
 msgstr "無確認碼"
 
 #. TRANS: Menu item title/tooltip
-#: lib/adminpanelaction.php:406
+#: lib/adminpanelaction.php:393
 msgid "Snapshots configuration"
 msgstr "無確認碼"
 
 #. TRANS: Client error 401.
-#: lib/apiauth.php:113
+#: lib/apiauth.php:111
 msgid "API resource requires read-write access, but you only have read access."
 msgstr ""
 
+#. TRANS: OAuth exception thrown when no application is found for a given consumer key.
+#: lib/apiauth.php:175
+msgid "No application for that consumer key."
+msgstr ""
+
+#. TRANS: OAuth exception given when an incorrect access token was given for a user.
+#: lib/apiauth.php:212
+msgid "Bad access token."
+msgstr ""
+
+#. TRANS: OAuth exception given when no user was found for a given token (no token was found).
+#: lib/apiauth.php:217
+msgid "No user for that token."
+msgstr ""
+
+#. TRANS: Client error thrown when authentication fails becaus a user clicked "Cancel".
+#. TRANS: Client error thrown when authentication fails.
+#: lib/apiauth.php:258 lib/apiauth.php:290
+msgid "Could not authenticate you."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to revoke an unknown token.
+#: lib/apioauthstore.php:178
+msgid "Tried to revoke unknown token."
+msgstr ""
+
+#. TRANS: Exception thrown when an attempt is made to remove a revoked token.
+#: lib/apioauthstore.php:182
+msgid "Failed to delete revoked token."
+msgstr ""
+
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:209
-#, php-format
-msgid "Describe your application in %d characters"
+#: lib/applicationeditform.php:215
+msgid "URL of the homepage of this application"
 msgstr ""
 
 #. TRANS: Form input field label.
-#: lib/applicationeditform.php:226
+#: lib/applicationeditform.php:217
 msgid "Source URL"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:242
+#: lib/applicationeditform.php:224
+msgid "Organization responsible for this application"
+msgstr ""
+
+#. TRANS: Form input field instructions.
+#: lib/applicationeditform.php:233
 msgid "URL for the homepage of the organization"
 msgstr ""
 
 #. TRANS: Form input field instructions.
-#: lib/applicationeditform.php:251
+#: lib/applicationeditform.php:242
 msgid "URL to redirect to after authentication"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:278
+#: lib/applicationeditform.php:269
 msgid "Browser"
 msgstr ""
 
 #. TRANS: Radio button label for application type
-#: lib/applicationeditform.php:295
+#: lib/applicationeditform.php:286
 msgid "Desktop"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:297
+#: lib/applicationeditform.php:288
 msgid "Type of application, browser or desktop"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:320
+#: lib/applicationeditform.php:311
 msgid "Read-only"
 msgstr ""
 
 #. TRANS: Radio button label for access type.
-#: lib/applicationeditform.php:339
+#: lib/applicationeditform.php:330
 msgid "Read-write"
 msgstr ""
 
 #. TRANS: Form guide.
-#: lib/applicationeditform.php:341
+#: lib/applicationeditform.php:332
 msgid "Default access for this application: read-only, or read-write"
 msgstr ""
 
-#. TRANS: Submit button title
-#: lib/applicationeditform.php:359
+#. TRANS: Submit button title.
+#: lib/applicationeditform.php:349
 msgid "Cancel"
 msgstr "取消"
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:136
+#: lib/applicationlist.php:135
 msgid "read-write"
 msgstr ""
 
 #. TRANS: Application access type
-#: lib/applicationlist.php:138
+#: lib/applicationlist.php:137
 msgid "read-only"
 msgstr ""
 
 #. TRANS: Used in application list. %1$s is a modified date, %2$s is access type (read-write or read-only)
-#: lib/applicationlist.php:144
+#: lib/applicationlist.php:143
 #, php-format
 msgid "Approved %1$s - \"%2$s\" access."
 msgstr ""
 
 #. TRANS: Button label
-#: lib/applicationlist.php:159
+#: lib/applicationlist.php:158
 msgctxt "BUTTON"
 msgid "Revoke"
 msgstr ""
@@ -4140,7 +3930,8 @@ msgstr ""
 msgid "Provider"
 msgstr ""
 
-#: lib/attachmentnoticesection.php:67
+#. TRANS: Title.
+#: lib/attachmentnoticesection.php:68
 msgid "Notices where this attachment appears"
 msgstr ""
 
@@ -4152,6 +3943,11 @@ msgstr ""
 msgid "Password changing is not allowed"
 msgstr ""
 
+#. TRANS: Title for the form to block a user.
+#: lib/blockform.php:70
+msgid "Block"
+msgstr ""
+
 #: lib/channel.php:229 lib/mailhandler.php:142
 msgid "Command complete"
 msgstr ""
@@ -4171,6 +3967,13 @@ msgstr ""
 msgid "User has no last notice."
 msgstr ""
 
+#. TRANS: Message given getting a non-existing user.
+#. TRANS: %s is the nickname of the user that could not be found.
+#: lib/command.php:150
+#, php-format
+msgid "Could not find a local user with nickname %s."
+msgstr ""
+
 #. TRANS: Error text shown when an unimplemented command is given.
 #: lib/command.php:185
 msgid "Sorry, this command is not yet implemented."
@@ -4212,6 +4015,13 @@ msgstr ""
 msgid "%1$s joined group %2$s."
 msgstr ""
 
+#. TRANS: Message given having removed a user from a group.
+#. TRANS: %1$s is the nickname of the user, %2$s is the nickname of the group.
+#: lib/command.php:408
+#, php-format
+msgid "%1$s left group %2$s."
+msgstr ""
+
 #. TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server).
 #: lib/command.php:474
 #, php-format
@@ -4227,13 +4037,6 @@ msgstr ""
 msgid "Message too long - maximum is %1$d characters, you sent %2$d."
 msgstr ""
 
-#. TRANS: Message given having repeated a notice from another user.
-#. TRANS: %s is the name of the user for which the notice was repeated.
-#: lib/command.php:554
-#, php-format
-msgid "Notice from %s repeated."
-msgstr ""
-
 #. TRANS: Message given if content of a notice for a reply is too long.
 #. TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters.
 #: lib/command.php:592
@@ -4311,8 +4114,15 @@ msgstr ""
 msgid "This link is useable only once and is valid for only 2 minutes: %s."
 msgstr ""
 
+#. TRANS: Text shown after issuing the lose command successfully (stop another user from following the current user).
+#. TRANS: %s is the name of the user the unsubscription was requested for.
+#: lib/command.php:813
+#, php-format
+msgid "Unsubscribed %s."
+msgstr ""
+
 #. TRANS: Text shown after requesting other users a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed users.
 #: lib/command.php:836
 msgid "You are subscribed to this person:"
@@ -4320,7 +4130,7 @@ msgid_plural "You are subscribed to these people:"
 msgstr[0] "此帳號已註冊"
 
 #. TRANS: Text shown after requesting other users that are subscribed to a user (followers).
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribing users.
 #: lib/command.php:863
 msgid "This person is subscribed to you:"
@@ -4328,13 +4138,14 @@ msgid_plural "These people are subscribed to you:"
 msgstr[0] "無此訂閱"
 
 #. TRANS: Text shown after requesting groups a user is subscribed to.
-#. TRANS: This message support plural forms. This message is followed by a
+#. TRANS: This message supports plural forms. This message is followed by a
 #. TRANS: hard coded space and a comma separated list of subscribed groups.
 #: lib/command.php:890
 msgid "You are a member of this group:"
 msgid_plural "You are a member of these groups:"
 msgstr[0] "無法連結到伺服器:%s"
 
+#. TRANS: Help text for commands. Do not translate the command names themselves; they are fixed strings.
 #: lib/command.php:905
 msgid ""
 "Commands:\n"
@@ -4475,15 +4286,6 @@ msgstr ""
 msgid "URL of the homepage or blog of the group or topic"
 msgstr ""
 
-#: lib/groupeditform.php:168
-msgid "Describe the group or topic"
-msgstr ""
-
-#: lib/groupeditform.php:170
-#, php-format
-msgid "Describe the group or topic in %d characters"
-msgstr ""
-
 #: lib/groupeditform.php:179
 msgid ""
 "Location for the group, if any, like \"City, State (or Region), Country\""
@@ -4494,35 +4296,75 @@ msgstr ""
 msgid "Extra nicknames for the group, comma- or space- separated, max %d"
 msgstr ""
 
-#: lib/groupnav.php:85
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:86
+msgctxt "MENU"
 msgid "Group"
 msgstr ""
 
-#: lib/groupnav.php:101
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:89
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page.
+#: lib/groupnav.php:95
+msgctxt "MENU"
+msgid "Members"
+msgstr ""
+
+#. TRANS: Tooltip for menu item in the group navigation page.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:98
+#, php-format
+msgctxt "TOOLTIP"
+msgid "%s group members"
+msgstr ""
+
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:108
+msgctxt "MENU"
 msgid "Blocked"
 msgstr ""
 
-#: lib/groupnav.php:102
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:111
 #, php-format
+msgctxt "TOOLTIP"
 msgid "%s blocked users"
 msgstr ""
 
-#: lib/groupnav.php:108
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:120
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Edit %s group properties"
 msgstr ""
 
-#: lib/groupnav.php:113
+#. TRANS: Menu item in the group navigation page. Only shown for group administrators.
+#: lib/groupnav.php:126
+msgctxt "MENU"
 msgid "Logo"
-msgstr "登入"
+msgstr ""
 
-#: lib/groupnav.php:114
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:129
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s logo"
 msgstr ""
 
-#: lib/groupnav.php:120
+#. TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators.
+#. TRANS: %s is the nickname of the group.
+#: lib/groupnav.php:138
 #, php-format
+msgctxt "TOOLTIP"
 msgid "Add or edit %s design"
 msgstr ""
 
@@ -4553,7 +4395,8 @@ msgstr ""
 msgid "That file is too big. The maximum file size is %s."
 msgstr ""
 
-#: lib/imagefile.php:101 lib/mediafile.php:170
+#. TRANS: Client exception thrown when a file upload operation has failed with an unknown reason.
+#: lib/imagefile.php:101 lib/mediafile.php:179
 msgid "System error uploading file."
 msgstr ""
 
@@ -4595,10 +4438,6 @@ msgstr ""
 msgid "Login with a username and password"
 msgstr "使用者名稱或密碼錯誤"
 
-#: lib/logingroupnav.php:86
-msgid "Sign up for a new account"
-msgstr ""
-
 #. TRANS: Subject for address confirmation email
 #: lib/mail.php:174
 msgid "Email address confirmation"
@@ -4635,22 +4474,6 @@ msgid ""
 "your subscribers list and report as spam to site administrators at %s"
 msgstr ""
 
-#. TRANS: Main body of new-subscriber notification e-mail
-#: lib/mail.php:254
-#, 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 ""
-
 #. TRANS: Body of notification mail for new posting email address
 #: lib/mail.php:308
 #, php-format
@@ -4720,12 +4543,6 @@ msgid ""
 "%5$s\n"
 msgstr ""
 
-#. TRANS: Subject for favorite notification email
-#: lib/mail.php:589
-#, php-format
-msgid "%s (@%s) added your notice as a favorite"
-msgstr ""
-
 #. TRANS: Body for favorite notification email
 #: lib/mail.php:592
 #, php-format
@@ -4817,48 +4634,64 @@ msgstr ""
 msgid "Unsupported message type: %s"
 msgstr ""
 
-#: lib/mediafile.php:98 lib/mediafile.php:123
+#. TRANS: Client exception thrown when a database error was thrown during a file upload operation.
+#: lib/mediafile.php:99 lib/mediafile.php:125
 msgid "There was a database error while saving your file. Please try again."
 msgstr ""
 
-#: lib/mediafile.php:142
+#. TRANS: Client exception thrown when an uploaded file is larger than set in php.ini.
+#: lib/mediafile.php:145
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
 msgstr ""
 
-#: lib/mediafile.php:147
+#. TRANS: Client exception.
+#: lib/mediafile.php:151
 msgid ""
 "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
 "the HTML form."
 msgstr ""
 
-#: lib/mediafile.php:152
+#. TRANS: Client exception.
+#: lib/mediafile.php:157
 msgid "The uploaded file was only partially uploaded."
 msgstr ""
 
-#: lib/mediafile.php:162
+#. TRANS: Client exception thrown when writing to disk is not possible during a file upload operation.
+#: lib/mediafile.php:169
 msgid "Failed to write file to disk."
 msgstr ""
 
-#: lib/mediafile.php:165
+#. TRANS: Client exception thrown when a file upload operation has been stopped by an extension.
+#: lib/mediafile.php:173
 msgid "File upload stopped by extension."
 msgstr ""
 
-#: lib/mediafile.php:179 lib/mediafile.php:217
+#. TRANS: Client exception thrown when a file upload operation would cause a user to exceed a set quota.
+#: lib/mediafile.php:189 lib/mediafile.php:232
 msgid "File exceeds user's quota."
 msgstr ""
 
-#: lib/mediafile.php:197 lib/mediafile.php:234
+#. TRANS: Client exception thrown when a file upload operation fails because the file could
+#. TRANS: not be moved from the temporary folder to the permanent file location.
+#: lib/mediafile.php:209 lib/mediafile.php:251
 msgid "File could not be moved to destination directory."
 msgstr ""
 
-#: lib/mediafile.php:318
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %1$s is the file type that was denied, %2$s is the application part of
+#. TRANS: the MIME type that was denied.
+#: lib/mediafile.php:340
 #, php-format
-msgid " Try using another %s format."
+msgid ""
+"\"%1$s\" is not a supported file type on this server. Try using another %2$s "
+"format."
 msgstr ""
 
-#: lib/mediafile.php:323
+#. TRANS: Client exception thrown trying to upload a forbidden MIME type.
+#. TRANS: %s is the file type that was denied.
+#: lib/mediafile.php:345
 #, php-format
-msgid "%s is not a supported file type on this server."
+msgid "\"%s\" is not a supported file type on this server."
 msgstr ""
 
 #: lib/messageform.php:120
@@ -4930,10 +4763,6 @@ msgstr ""
 msgid "web"
 msgstr ""
 
-#: lib/noticelist.php:603
-msgid "Repeated by"
-msgstr ""
-
 #: lib/noticelist.php:630
 msgid "Reply to this notice"
 msgstr ""
@@ -4942,27 +4771,36 @@ msgstr ""
 msgid "Reply"
 msgstr ""
 
+#: lib/nudgeform.php:116
+msgid "Nudge this user"
+msgstr ""
+
 #: lib/nudgeform.php:128
 msgid "Nudge"
 msgstr ""
 
+#: lib/nudgeform.php:128
+msgid "Send a nudge to this user"
+msgstr ""
+
 #: lib/oauthstore.php:283
-msgid "Error inserting new profile"
-msgstr "新的更人資料輸入錯誤"
+msgid "Error inserting new profile."
+msgstr ""
 
 #: lib/oauthstore.php:291
-msgid "Error inserting avatar"
-msgstr "個人圖像插入錯誤"
-
-#: lib/oauthstore.php:306
-msgid "Error updating remote profile"
-msgstr "更新遠端個人資料發生錯誤"
+msgid "Error inserting avatar."
+msgstr ""
 
 #: lib/oauthstore.php:311
-msgid "Error inserting remote profile"
-msgstr "新增外部個人資料發生錯誤(Error inserting remote profile)"
+msgid "Error inserting remote profile."
+msgstr ""
+
+#. TRANS: Exception thrown when a notice is denied because it has been sent before.
+#: lib/oauthstore.php:346
+msgid "Duplicate notice."
+msgstr ""
 
-#: lib/oauthstore.php:490
+#: lib/oauthstore.php:491
 msgid "Couldn't insert new subscription."
 msgstr "無法新增訂閱"
 
@@ -4982,16 +4820,25 @@ msgstr ""
 msgid "Inbox"
 msgstr ""
 
+#: lib/personalgroupnav.php:126
+msgid "Your incoming messages"
+msgstr ""
+
 #: lib/personalgroupnav.php:130
 msgid "Outbox"
 msgstr ""
 
+#: lib/personalgroupnav.php:131
+msgid "Your sent messages"
+msgstr ""
+
 #: lib/personaltagcloudsection.php:56
 #, php-format
 msgid "Tags in %s's notices"
 msgstr ""
 
-#: lib/plugin.php:115
+#. TRANS: Displayed as version information for a plugin if no version information was found.
+#: lib/plugin.php:116
 msgid "Unknown"
 msgstr ""
 
@@ -5024,6 +4871,10 @@ msgstr ""
 msgid "Public"
 msgstr ""
 
+#: lib/publicgroupnav.php:82
+msgid "User groups"
+msgstr ""
+
 #: lib/publicgroupnav.php:84 lib/publicgroupnav.php:85
 msgid "Recent tags"
 msgstr ""
@@ -5036,23 +4887,10 @@ msgstr ""
 msgid "Popular"
 msgstr ""
 
-#: lib/repeatform.php:107
-msgid "Repeat this notice?"
-msgstr ""
-
 #: lib/repeatform.php:132
 msgid "Yes"
 msgstr ""
 
-#: lib/repeatform.php:132
-msgid "Repeat this notice"
-msgstr ""
-
-#: lib/revokeroleform.php:91
-#, php-format
-msgid "Revoke the \"%s\" role from this user"
-msgstr ""
-
 #: lib/router.php:709
 msgid "No single user defined for single-user mode."
 msgstr ""
@@ -5061,19 +4899,24 @@ msgstr ""
 msgid "Sandbox"
 msgstr ""
 
-#: lib/searchaction.php:120
+#. TRANS: Fieldset legend for the search form.
+#: lib/searchaction.php:121
 msgid "Search site"
 msgstr ""
 
-#: lib/searchaction.php:126
+#. TRANS: Used as a field label for the field where one or more keywords
+#. TRANS: for searching can be entered.
+#: lib/searchaction.php:129
 msgid "Keyword(s)"
 msgstr ""
 
-#: lib/searchaction.php:127
+#: lib/searchaction.php:130
+msgctxt "BUTTON"
 msgid "Search"
 msgstr ""
 
-#: lib/searchaction.php:162
+#. TRANS: Definition list item with instructions on how to get (better) search results.
+#: lib/searchaction.php:170
 msgid "Search help"
 msgstr ""
 
@@ -5101,10 +4944,6 @@ msgstr ""
 msgid "More..."
 msgstr ""
 
-#: lib/silenceform.php:67
-msgid "Silence"
-msgstr ""
-
 #: lib/subgroupnav.php:99
 #, php-format
 msgid "Groups %s is a member of"
@@ -5216,56 +5055,60 @@ msgid "Moderator"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1102
+#: lib/util.php:1103
 msgid "a few seconds ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1105
+#: lib/util.php:1106
 msgid "about a minute ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1109
+#: lib/util.php:1110
 #, php-format
-msgid "about %d minutes ago"
-msgstr ""
+msgid "about one minute ago"
+msgid_plural "about %d minutes ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1112
+#: lib/util.php:1113
 msgid "about an hour ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1116
+#: lib/util.php:1117
 #, php-format
-msgid "about %d hours ago"
-msgstr ""
+msgid "about one hour ago"
+msgid_plural "about %d hours ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1119
+#: lib/util.php:1120
 msgid "about a day ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1123
+#: lib/util.php:1124
 #, php-format
-msgid "about %d days ago"
-msgstr ""
+msgid "about one day ago"
+msgid_plural "about %d days ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1126
+#: lib/util.php:1127
 msgid "about a month ago"
 msgstr ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1130
+#: lib/util.php:1131
 #, php-format
-msgid "about %d months ago"
-msgstr ""
+msgid "about one month ago"
+msgid_plural "about %d months ago"
+msgstr[0] ""
 
 #. TRANS: Used in notices to indicate when the notice was made compared to now.
-#: lib/util.php:1133
+#: lib/util.php:1134
 msgid "about a year ago"
 msgstr ""
 
diff --git a/plugins/APC/APCPlugin.php b/plugins/APC/APCPlugin.php
new file mode 100644 (file)
index 0000000..0069779
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Plugin to implement cache interface for APC variable cache
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * A plugin to use APC's variable cache for the cache interface
+ *
+ * New plugin interface lets us use alternative cache systems
+ * for caching. This one uses APC's variable cache.
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+class APCPlugin extends Plugin
+{
+    /**
+     * Get a value associated with a key
+     *
+     * The value should have been set previously.
+     *
+     * @param string &$key   in; Lookup key
+     * @param mixed  &$value out; value associated with key
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheGet(&$key, &$value)
+    {
+        $value = apc_fetch($key);
+        Event::handle('EndCacheGet', array($key, &$value));
+        return false;
+    }
+
+    /**
+     * Associate a value with a key
+     *
+     * @param string  &$key     in; Key to use for lookups
+     * @param mixed   &$value   in; Value to associate
+     * @param integer &$flag    in; Flag (passed through to Memcache)
+     * @param integer &$expiry  in; Expiry (passed through to Memcache)
+     * @param boolean &$success out; Whether the set was successful
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        $success = apc_store($key, $value, ((is_null($expiry)) ? 0 : $expiry));
+
+        Event::handle('EndCacheSet', array($key, $value, $flag,
+                                           $expiry));
+        return false;
+    }
+
+    /**
+     * Delete a value associated with a key
+     *
+     * @param string  &$key     in; Key to lookup
+     * @param boolean &$success out; whether it worked
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $success = apc_delete($key);
+        Event::handle('EndCacheDelete', array($key));
+        return false;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'APC',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:APC',
+                            'rawdescription' =>
+                            _m('Use the <a href="http://pecl.php.net/package/apc">APC</a> variable cache to cache query results.'));
+        return true;
+    }
+}
diff --git a/plugins/APC/locale/APC.pot b/plugins/APC/locale/APC.pot
new file mode 100644 (file)
index 0000000..c1e83ee
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: APCPlugin.php:115
+msgid ""
+"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache "
+"to cache query results."
+msgstr ""
diff --git a/plugins/APCPlugin.php b/plugins/APCPlugin.php
deleted file mode 100644 (file)
index 666f64b..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Plugin to implement cache interface for APC variable cache
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * A plugin to use APC's variable cache for the cache interface
- *
- * New plugin interface lets us use alternative cache systems
- * for caching. This one uses APC's variable cache.
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-class APCPlugin extends Plugin
-{
-    /**
-     * Get a value associated with a key
-     *
-     * The value should have been set previously.
-     *
-     * @param string &$key   in; Lookup key
-     * @param mixed  &$value out; value associated with key
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheGet(&$key, &$value)
-    {
-        $value = apc_fetch($key);
-        Event::handle('EndCacheGet', array($key, &$value));
-        return false;
-    }
-
-    /**
-     * Associate a value with a key
-     *
-     * @param string  &$key     in; Key to use for lookups
-     * @param mixed   &$value   in; Value to associate
-     * @param integer &$flag    in; Flag (passed through to Memcache)
-     * @param integer &$expiry  in; Expiry (passed through to Memcache)
-     * @param boolean &$success out; Whether the set was successful
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        $success = apc_store($key, $value, ((is_null($expiry)) ? 0 : $expiry));
-
-        Event::handle('EndCacheSet', array($key, $value, $flag,
-                                           $expiry));
-        return false;
-    }
-
-    /**
-     * Delete a value associated with a key
-     *
-     * @param string  &$key     in; Key to lookup
-     * @param boolean &$success out; whether it worked
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $success = apc_delete($key);
-        Event::handle('EndCacheDelete', array($key));
-        return false;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'APC',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:APC',
-                            'rawdescription' =>
-                            _m('Use the <a href="http://pecl.php.net/package/apc">APC</a> variable cache to cache query results.'));
-        return true;
-    }
-}
-
index cd6fc3503cf355175a7ff28cd6dcf0a3c344bd72..3d733e15099cdd76b4c0d7b09f5cde1c659f3f7f 100644 (file)
@@ -77,7 +77,6 @@ if (!defined('STATUSNET')) {
  *
  * @seeAlso  UAPPlugin
  */
-
 class AdsensePlugin extends UAPPlugin
 {
     public $adScript = 'http://pagead2.googlesyndication.com/pagead/show_ads.js';
@@ -89,7 +88,6 @@ class AdsensePlugin extends UAPPlugin
 
         // A little bit of chicanery so we avoid overwriting values that
         // are passed in with the constructor
-
         foreach (array('mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper', 'adScript', 'client') as $setting) {
             $value = common_config('adsense', strtolower($setting));
             if (!empty($value)) { // not found
@@ -105,7 +103,6 @@ class AdsensePlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showMediumRectangle($action)
     {
         $this->showAdsenseCode($action, 300, 250, $this->mediumRectangle);
@@ -118,7 +115,6 @@ class AdsensePlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showRectangle($action)
     {
         $this->showAdsenseCode($action, 180, 150, $this->rectangle);
@@ -131,7 +127,6 @@ class AdsensePlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showWideSkyscraper($action)
     {
         $this->showAdsenseCode($action, 160, 600, $this->wideSkyscraper);
@@ -144,7 +139,6 @@ class AdsensePlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showLeaderboard($action)
     {
         $this->showAdsenseCode($action, 728, 90, $this->leaderboard);
@@ -160,7 +154,6 @@ class AdsensePlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showAdsenseCode($action, $width, $height, $slot)
     {
         $code  = 'google_ad_client = "'.$this->client.'"; ';
@@ -198,11 +191,22 @@ class AdsensePlugin extends UAPPlugin
     function onEndAdminPanelNav($menu) {
         if (AdminPanelAction::canAdmin('adsense')) {
             // TRANS: Menu item title/tooltip
-            $menu_title = _('Adsense configuration');
+            $menu_title = _m('AdSense configuration');
             // TRANS: Menu item for site administration
-            $menu->out->menuItem(common_local_url('adsenseadminpanel'), _('Adsense'),
+            $menu->out->menuItem(common_local_url('adsenseadminpanel'), _m('AdSense'),
                                  $menu_title, $action_name == 'adsenseadminpanel', 'nav_adsense_admin_panel');
         }
         return true;
     }
-}
\ No newline at end of file
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'BlankAdPlugin',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Adsense',
+                            'rawdescription' =>
+                            _m('Plugin to add Google Adsense to StatusNet sites.'));
+        return true;
+    }
+}
index 7b99cf805142381563e7d3a397baa5323589221f..110cc9e2b7e121b4627a531d69d1863c4d3e2732 100644 (file)
@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class AdsenseadminpanelAction extends AdminPanelAction
 {
     /**
@@ -48,10 +47,9 @@ class AdsenseadminpanelAction extends AdminPanelAction
      *
      * @return string page title
      */
-
     function title()
     {
-        return _('Adsense');
+        return _m('TITLE', 'AdSense');
     }
 
     /**
@@ -59,10 +57,9 @@ class AdsenseadminpanelAction extends AdminPanelAction
      *
      * @return string instructions
      */
-
     function getInstructions()
     {
-        return _('Adsense settings for this StatusNet site');
+        return _m('AdSense settings for this StatusNet site');
     }
 
     /**
@@ -70,7 +67,6 @@ class AdsenseadminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function showForm()
     {
         $form = new AdsenseAdminPanelForm($this);
@@ -83,7 +79,6 @@ class AdsenseadminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function saveSettings()
     {
         static $settings = array('adsense' => array('adScript', 'client', 'mediumRectangle', 'rectangle', 'leaderboard', 'wideSkyscraper'));
@@ -97,11 +92,9 @@ class AdsenseadminpanelAction extends AdminPanelAction
         }
 
         // This throws an exception on validation errors
-
         $this->validate($values);
 
         // assert(all values are valid);
-
         $config = new Config();
 
         $config->query('BEGIN');
@@ -125,7 +118,6 @@ class AdsenseadminpanelAction extends AdminPanelAction
 /**
  * Form for the adsense admin panel
  */
-
 class AdsenseAdminPanelForm extends AdminForm
 {
     /**
@@ -133,7 +125,6 @@ class AdsenseAdminPanelForm extends AdminForm
      *
      * @return int ID of the form
      */
-
     function id()
     {
         return 'form_adsense_admin_panel';
@@ -144,7 +135,6 @@ class AdsenseAdminPanelForm extends AdminForm
      *
      * @return string class of the form
      */
-
     function formClass()
     {
         return 'form_adsense';
@@ -155,7 +145,6 @@ class AdsenseAdminPanelForm extends AdminForm
      *
      * @return string URL of the action
      */
-
     function action()
     {
         return common_local_url('adsenseadminpanel');
@@ -166,45 +155,44 @@ class AdsenseAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart('fieldset', array('id' => 'adsense_admin'));
         $this->out->elementStart('ul', 'form_data');
         $this->li();
         $this->input('client',
-                     _('Client ID'),
-                     _('Google client ID'),
+                     _m('Client ID'),
+                     _m('Google client ID'),
                      'adsense');
         $this->unli();
         $this->li();
         $this->input('adScript',
-                     _('Ad Script URL'),
-                     _('Script URL (advanced)'),
+                     _m('Ad script URL'),
+                     _m('Script URL (advanced)'),
                      'adsense');
         $this->unli();
         $this->li();
         $this->input('mediumRectangle',
-                     _('Medium rectangle'),
-                     _('Medium rectangle slot code'),
+                     _m('Medium rectangle'),
+                     _m('Medium rectangle slot code'),
                      'adsense');
         $this->unli();
         $this->li();
         $this->input('rectangle',
-                     _('Rectangle'),
-                     _('Rectangle slot code'),
+                     _m('Rectangle'),
+                     _m('Rectangle slot code'),
                      'adsense');
         $this->unli();
         $this->li();
         $this->input('leaderboard',
-                     _('Leaderboard'),
-                     _('Leaderboard slot code'),
+                     _m('Leaderboard'),
+                     _m('Leaderboard slot code'),
                      'adsense');
         $this->unli();
         $this->li();
         $this->input('wideSkyscraper',
-                     _('Skyscraper'),
-                     _('Wide skyscraper slot code'),
+                     _m('Skyscraper'),
+                     _m('Wide skyscraper slot code'),
                      'adsense');
         $this->unli();
         $this->out->elementEnd('ul');
@@ -215,9 +203,8 @@ class AdsenseAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formActions()
     {
-        $this->out->submit('submit', _('Save'), 'submit', null, _('Save AdSense settings'));
+        $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save AdSense settings'));
     }
 }
diff --git a/plugins/Adsense/locale/Adsense.pot b/plugins/Adsense/locale/Adsense.pot
new file mode 100644 (file)
index 0000000..6871677
--- /dev/null
@@ -0,0 +1,96 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANS: Menu item title/tooltip
+#: AdsensePlugin.php:194
+msgid "AdSense configuration"
+msgstr ""
+
+#. TRANS: Menu item for site administration
+#: AdsensePlugin.php:196
+msgid "AdSense"
+msgstr ""
+
+#: AdsensePlugin.php:209
+msgid "Plugin to add Google Adsense to StatusNet sites."
+msgstr ""
+
+#: adsenseadminpanel.php:52
+msgctxt "TITLE"
+msgid "AdSense"
+msgstr ""
+
+#: adsenseadminpanel.php:62
+msgid "AdSense settings for this StatusNet site"
+msgstr ""
+
+#: adsenseadminpanel.php:164
+msgid "Client ID"
+msgstr ""
+
+#: adsenseadminpanel.php:165
+msgid "Google client ID"
+msgstr ""
+
+#: adsenseadminpanel.php:170
+msgid "Ad script URL"
+msgstr ""
+
+#: adsenseadminpanel.php:171
+msgid "Script URL (advanced)"
+msgstr ""
+
+#: adsenseadminpanel.php:176
+msgid "Medium rectangle"
+msgstr ""
+
+#: adsenseadminpanel.php:177
+msgid "Medium rectangle slot code"
+msgstr ""
+
+#: adsenseadminpanel.php:182
+msgid "Rectangle"
+msgstr ""
+
+#: adsenseadminpanel.php:183
+msgid "Rectangle slot code"
+msgstr ""
+
+#: adsenseadminpanel.php:188
+msgid "Leaderboard"
+msgstr ""
+
+#: adsenseadminpanel.php:189
+msgid "Leaderboard slot code"
+msgstr ""
+
+#: adsenseadminpanel.php:194
+msgid "Skyscraper"
+msgstr ""
+
+#: adsenseadminpanel.php:195
+msgid "Wide skyscraper slot code"
+msgstr ""
+
+#: adsenseadminpanel.php:208
+msgid "Save"
+msgstr ""
+
+#: adsenseadminpanel.php:208
+msgid "Save AdSense settings"
+msgstr ""
index ffd8bf455e29c0e51d179d816d5ee4c8d598ace1..16683e1402589421d9cea0ff73c92f48c3c46b18 100644 (file)
@@ -41,7 +41,7 @@ class AutoSandboxPlugin extends Plugin
     var $contact;
     var $debug;
 
-    function onInitializePlugin() 
+    function onInitializePlugin()
     {
         if(!isset($this->debug))
         {
@@ -53,7 +53,7 @@ class AutoSandboxPlugin extends Plugin
            if (!empty($default)) {
                $this->contact = $default;
            }
-        } 
+        }
     }
 
     function onPluginVersion(&$versions)
@@ -69,16 +69,17 @@ class AutoSandboxPlugin extends Plugin
 
     function onStartRegistrationFormData($action)
     {
-
-         $instr = 'Note you will initially be "sandboxed" so your posts will not appear in the public timeline.';
+         $instr = _m('Note you will initially be "sandboxed" so your posts will not appear in the public timeline.');
 
          if (isset($this->contact)) {
              $contactuser = User::staticGet('nickname', $this->contact);
              if (!empty($contactuser)) {
                  $contactlink = "@<a href=\"$contactuser->uri\">$contactuser->nickname</a>";
-                 $instr = $instr . " Send a message to $contactlink to speed up the unsandboxing process.";
+                 // TRANS: $contactlink is a clickable e-mailaddress.
+                 $instr = _m("Note you will initially be \"sandboxed\" so your posts will not appear in the public timeline. ".
+                   'Send a message to $contactlink to speed up the unsandboxing process.');
              }
-         } 
+         }
 
          $output = common_markup_to_html($instr);
          $action->elementStart('div', 'instructions');
index b01f9dc893c5b7dffeaa2bcaf86f5f9d81bbeb78..8b89da361146e781d946e955b32b18d4955d5ec0 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,3 +19,17 @@ msgstr ""
 #: AutoSandboxPlugin.php:66
 msgid "Automatically sandboxes newly registered members."
 msgstr ""
+
+#: AutoSandboxPlugin.php:72
+msgid ""
+"Note you will initially be \"sandboxed\" so your posts will not appear in "
+"the public timeline."
+msgstr ""
+
+#. TRANS: $contactlink is a clickable e-mailaddress.
+#: AutoSandboxPlugin.php:79
+msgid ""
+"Note you will initially be \"sandboxed\" so your posts will not appear in "
+"the public timeline. Send a message to $contactlink to speed up the "
+"unsandboxing process."
+msgstr ""
index b2be365dd64547d69a58da0ca25214362f574b2f..620b5e7b06a0e5aeb5ff408ba657f905bf06ddfc 100644 (file)
@@ -80,6 +80,4 @@ class AutocompletePlugin extends Plugin
                             _m('The autocomplete plugin allows users to autocomplete screen names in @ replies. When an "@" is typed into the notice text area, an autocomplete box is displayed populated with the user\'s friend\' screen names.'));
         return true;
     }
-
 }
-?>
index 9a30ba01d9c1c0f43d0a3b70a355711beee3f2fd..a4e2d9baa4a3c16bfb03034e80e8891a07bcc576 100644 (file)
@@ -43,7 +43,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class AutocompleteAction extends Action
 {
     private $result;
@@ -80,6 +79,7 @@ class AutocompleteAction extends Action
     function etag()
     {
         return '"' . implode(':', array($this->arg('action'),
+            common_user_cache_hash(),
             crc32($this->arg('q')), //the actual string can have funny characters in we don't want showing up in the etag
             $this->arg('limit'),
             $this->lastModified())) . '"';
index c0274af85a708bed173f03046ff86e24b1c5fd70..5149425c7a7ef172160efc9788c4569d09683df7 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: AutocompletePlugin.php:79
+#: AutocompletePlugin.php:80
 msgid ""
 "The autocomplete plugin allows users to autocomplete screen names in @ "
 "replies. When an \"@\" is typed into the notice text area, an autocomplete "
index 11e3c0b84ba612a0f6615288f26a2cfc590d3447..10d99b35886788f5ea4386b800f673d6f0761152 100644 (file)
@@ -40,7 +40,7 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
     function onInitializePlugin(){
         parent::onInitializePlugin();
         if(!isset($this->serviceUrl)){
-            throw new Exception("must specify a serviceUrl");
+            throw new Exception(_m("You must specify a serviceUrl."));
         }
     }
 
@@ -63,4 +63,3 @@ class BitlyUrlPlugin extends UrlShortenerPlugin
         return true;
     }
 }
-
index 28023759aa02712da354b0e3d329465ac1f906c0..00c5405d947738715101916bf08d51e827c6b589 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,10 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: BitlyUrlPlugin.php:43
+msgid "You must specify a serviceUrl."
+msgstr ""
+
 #: BitlyUrlPlugin.php:60
 #, php-format
 msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service."
index 63bffe2c6fb8babb1f62531f33b58519d7672a4a..10f89ef72392b20bc602de9f5d0abc0ad4498a33 100644 (file)
@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class BlacklistPlugin extends Plugin
 {
     const VERSION = STATUSNET_VERSION;
@@ -76,13 +75,11 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onCheckSchema()
     {
         $schema = Schema::get();
 
         // For storing blacklist patterns for nicknames
-
         $schema->ensureTable('nickname_blacklist',
                              array(new ColumnDef('pattern',
                                                  'varchar',
@@ -118,7 +115,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return array configuration values
      */
-
     function _configArray($section, $setting)
     {
         $config = common_config($section, $setting);
@@ -143,14 +139,13 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onStartRegistrationTry($action)
     {
         $homepage = strtolower($action->trimmed('homepage'));
 
         if (!empty($homepage)) {
             if (!$this->_checkUrl($homepage)) {
-                $msg = sprintf(_m("You may not register with homepage '%s'"),
+                $msg = sprintf(_m("You may not register with homepage '%s'."),
                                $homepage);
                 throw new ClientException($msg);
             }
@@ -160,7 +155,7 @@ class BlacklistPlugin extends Plugin
 
         if (!empty($nickname)) {
             if (!$this->_checkNickname($nickname)) {
-                $msg = sprintf(_m("You may not register with nickname '%s'"),
+                $msg = sprintf(_m("You may not register with nickname '%s'."),
                                $nickname);
                 throw new ClientException($msg);
             }
@@ -178,14 +173,13 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onStartProfileSaveForm($action)
     {
         $homepage = strtolower($action->trimmed('homepage'));
 
         if (!empty($homepage)) {
             if (!$this->_checkUrl($homepage)) {
-                $msg = sprintf(_m("You may not use homepage '%s'"),
+                $msg = sprintf(_m("You may not use homepage '%s'."),
                                $homepage);
                 throw new ClientException($msg);
             }
@@ -195,7 +189,7 @@ class BlacklistPlugin extends Plugin
 
         if (!empty($nickname)) {
             if (!$this->_checkNickname($nickname)) {
-                $msg = sprintf(_m("You may not use nickname '%s'"),
+                $msg = sprintf(_m("You may not use nickname '%s'."),
                                $nickname);
                 throw new ClientException($msg);
             }
@@ -213,7 +207,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onStartNoticeSave(&$notice)
     {
         common_replace_urls_callback($notice->content,
@@ -230,7 +223,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function checkNoticeUrl($url)
     {
         // It comes in special'd, so we unspecial it
@@ -239,7 +231,7 @@ class BlacklistPlugin extends Plugin
         $url = htmlspecialchars_decode($url);
 
         if (!$this->_checkUrl($url)) {
-            $msg = sprintf(_m("You may not use url '%s' in notices"),
+            $msg = sprintf(_m("You may not use URL \"%s\" in notices."),
                            $url);
             throw new ClientException($msg);
         }
@@ -256,7 +248,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean true means it's OK, false means it's bad
      */
-
     private function _checkUrl($url)
     {
         $patterns = $this->_getUrlPatterns();
@@ -279,7 +270,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean true means it's OK, false means it's bad
      */
-
     private function _checkNickname($nickname)
     {
         $patterns = $this->_getNicknamePatterns();
@@ -300,7 +290,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onRouterInitialized($m)
     {
         $m->connect('admin/blacklist', array('action' => 'blacklistadminpanel'));
@@ -314,7 +303,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onAutoload($cls)
     {
         switch (strtolower($cls))
@@ -339,7 +327,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onPluginVersion(&$versions)
     {
         $versions[] = array('name' => 'Blacklist',
@@ -348,7 +335,7 @@ class BlacklistPlugin extends Plugin
                             'homepage' =>
                             'http://status.net/wiki/Plugin:Blacklist',
                             'description' =>
-                            _m('Keep a blacklist of forbidden nickname '.
+                            _m('Keeps a blacklist of forbidden nickname '.
                                'and URL patterns.'));
         return true;
     }
@@ -361,7 +348,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onAdminPanelCheck($name, &$isOK)
     {
         if ($name == 'blacklist') {
@@ -379,7 +365,6 @@ class BlacklistPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onEndAdminPanelNav($nav)
     {
         if (AdminPanelAction::canAdmin('blacklist')) {
@@ -387,8 +372,8 @@ class BlacklistPlugin extends Plugin
             $action_name = $nav->action->trimmed('action');
 
             $nav->out->menuItem(common_local_url('blacklistadminpanel'),
-                                _('Blacklist'),
-                                _('Blacklist configuration'),
+                                _m('Blacklist'),
+                                _m('Blacklist configuration'),
                                 $action_name == 'blacklistadminpanel',
                                 'nav_blacklist_admin_panel');
         }
@@ -414,7 +399,7 @@ class BlacklistPlugin extends Plugin
         $action->elementStart('li');
         $this->checkboxAndText($action,
                                'blacklistnickname',
-                               _('Add this nickname pattern to blacklist'),
+                               _m('Add this nickname pattern to blacklist'),
                                'blacklistnicknamepattern',
                                $this->patternizeNickname($user->nickname));
         $action->elementEnd('li');
@@ -423,7 +408,7 @@ class BlacklistPlugin extends Plugin
             $action->elementStart('li');
             $this->checkboxAndText($action,
                                    'blacklisthomepage',
-                                   _('Add this homepage pattern to blacklist'),
+                                   _m('Add this homepage pattern to blacklist'),
                                    'blacklisthomepagepattern',
                                    $this->patternizeHomepage($profile->homepage));
             $action->elementEnd('li');
index ec89ee4bd884b87afa79f80eb635c87e34636d3b..2820294fa26f108a4d3610896fa0db78fdab4d24 100644 (file)
@@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
  *
  * @see      DB_DataObject
  */
-
 class Homepage_blacklist extends Memcached_DataObject
 {
     public $__table = 'homepage_blacklist'; // table name
@@ -62,7 +61,6 @@ class Homepage_blacklist extends Memcached_DataObject
      * @return Homepage_blacklist object found, or null for no hits
      *
      */
-
     function staticGet($k, $v=null)
     {
         return Memcached_DataObject::staticGet('Homepage_blacklist', $k, $v);
@@ -76,7 +74,6 @@ class Homepage_blacklist extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
@@ -91,7 +88,6 @@ class Homepage_blacklist extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -105,7 +101,6 @@ class Homepage_blacklist extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('pattern' => 'K');
@@ -116,7 +111,6 @@ class Homepage_blacklist extends Memcached_DataObject
      *
      * @return array string patterns to check
      */
-
     static function getPatterns()
     {
         $patterns = self::cacheGet('homepage_blacklist:patterns');
@@ -144,17 +138,14 @@ class Homepage_blacklist extends Memcached_DataObject
      *
      * @return array of patterns to check
      */
-
     static function saveNew($newPatterns)
     {
         $oldPatterns = self::getPatterns();
 
         // Delete stuff that's old that not in new
-
         $toDelete = array_diff($oldPatterns, $newPatterns);
 
         // Insert stuff that's in new and not in old
-
         $toInsert = array_diff($newPatterns, $oldPatterns);
 
         foreach ($toDelete as $pattern) {
index e8545292d18ce18ebb3d47aee6147d74f2346eec..d5d46a9490e9f58d1b62d1f4a189eea039c589d3 100644 (file)
@@ -44,7 +44,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
  *
  * @see      DB_DataObject
  */
-
 class Nickname_blacklist extends Memcached_DataObject
 {
     public $__table = 'nickname_blacklist'; // table name
@@ -62,7 +61,6 @@ class Nickname_blacklist extends Memcached_DataObject
      * @return Nickname_blacklist object found, or null for no hits
      *
      */
-
     function staticGet($k, $v=null)
     {
         return Memcached_DataObject::staticGet('Nickname_blacklist', $k, $v);
@@ -73,7 +71,6 @@ class Nickname_blacklist extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('pattern' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
@@ -85,7 +82,6 @@ class Nickname_blacklist extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -96,7 +92,6 @@ class Nickname_blacklist extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('pattern' => 'K');
@@ -107,7 +102,6 @@ class Nickname_blacklist extends Memcached_DataObject
      *
      * @return array string patterns to check
      */
-
     static function getPatterns()
     {
         $patterns = self::cacheGet('nickname_blacklist:patterns');
@@ -135,17 +129,14 @@ class Nickname_blacklist extends Memcached_DataObject
      *
      * @return array of patterns to check
      */
-
     static function saveNew($newPatterns)
     {
         $oldPatterns = self::getPatterns();
 
         // Delete stuff that's old that not in new
-
         $toDelete = array_diff($oldPatterns, $newPatterns);
 
         // Insert stuff that's in new and not in old
-
         $toInsert = array_diff($newPatterns, $oldPatterns);
 
         foreach ($toDelete as $pattern) {
index 4289dec1ba4326a79558a0950fe495ff0978be0f..9019bb9ad27a05f809e9f1c86b055cfadf116c38 100644 (file)
@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link     http://status.net/
  */
-
 class BlacklistadminpanelAction extends AdminPanelAction
 {
     /**
@@ -48,10 +47,9 @@ class BlacklistadminpanelAction extends AdminPanelAction
      *
      * @return string title
      */
-
     function title()
     {
-        return _('Blacklist');
+        return _m('Blacklist');
     }
 
     /**
@@ -59,10 +57,9 @@ class BlacklistadminpanelAction extends AdminPanelAction
      *
      * @return string instructions
      */
-
     function getInstructions()
     {
-        return _('Blacklisted URLs and nicknames');
+        return _m('Blacklisted URLs and nicknames');
     }
 
     /**
@@ -72,7 +69,6 @@ class BlacklistadminpanelAction extends AdminPanelAction
      *
      * @see BlacklistAdminPanelForm
      */
-
     function showForm()
     {
         $form = new BlacklistAdminPanelForm($this);
@@ -85,7 +81,6 @@ class BlacklistadminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function saveSettings()
     {
         $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames'));
@@ -116,7 +111,6 @@ class BlacklistadminpanelAction extends AdminPanelAction
      *
      * @return boolean success flag
      */
-
     function validate(&$values)
     {
         return true;
@@ -132,7 +126,6 @@ class BlacklistadminpanelAction extends AdminPanelAction
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link     http://status.net/
  */
-
 class BlacklistAdminPanelForm extends Form
 {
     /**
@@ -140,7 +133,6 @@ class BlacklistAdminPanelForm extends Form
      *
      * @return string ID
      */
-
     function id()
     {
         return 'blacklistadminpanel';
@@ -151,7 +143,6 @@ class BlacklistAdminPanelForm extends Form
      *
      * @return string class
      */
-
     function formClass()
     {
         return 'form_settings';
@@ -162,7 +153,6 @@ class BlacklistAdminPanelForm extends Form
      *
      * @return string action URL
      */
-
     function action()
     {
         return common_local_url('blacklistadminpanel');
@@ -173,7 +163,6 @@ class BlacklistAdminPanelForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart('ul', 'form_data');
@@ -184,7 +173,7 @@ class BlacklistAdminPanelForm extends Form
 
         $this->out->textarea('blacklist-nicknames', _m('Nicknames'),
                              implode("\r\n", $nickPatterns),
-                             _('Patterns of nicknames to block, one per line'));
+                             _m('Patterns of nicknames to block, one per line'));
         $this->out->elementEnd('li');
 
         $urlPatterns = Homepage_blacklist::getPatterns();
@@ -192,7 +181,7 @@ class BlacklistAdminPanelForm extends Form
         $this->out->elementStart('li');
         $this->out->textarea('blacklist-urls', _m('URLs'),
                              implode("\r\n", $urlPatterns),
-                             _('Patterns of URLs to block, one per line'));
+                             _m('Patterns of URLs to block, one per line'));
         $this->out->elementEnd('li');
 
         $this->out->elementEnd('ul');
@@ -203,13 +192,12 @@ class BlacklistAdminPanelForm extends Form
      *
      * @return void
      */
-
     function formActions()
     {
         $this->out->submit('submit',
-                           _('Save'),
+                           _m('Save'),
                            'submit',
                            null,
-                           _('Save site settings'));
+                           _m('Save site settings'));
     }
 }
index 90eda0941d9d7b8fd6c5aacfc2648b60a825e96c..23ad4d902c484513319cec07be98eb7b92a8df3d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,39 +16,75 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: BlacklistPlugin.php:153
+#: BlacklistPlugin.php:148
 #, php-format
-msgid "You may not register with homepage '%s'"
+msgid "You may not register with homepage '%s'."
 msgstr ""
 
-#: BlacklistPlugin.php:163
+#: BlacklistPlugin.php:158
 #, php-format
-msgid "You may not register with nickname '%s'"
+msgid "You may not register with nickname '%s'."
 msgstr ""
 
-#: BlacklistPlugin.php:188
+#: BlacklistPlugin.php:182
 #, php-format
-msgid "You may not use homepage '%s'"
+msgid "You may not use homepage '%s'."
 msgstr ""
 
-#: BlacklistPlugin.php:198
+#: BlacklistPlugin.php:192
 #, php-format
-msgid "You may not use nickname '%s'"
+msgid "You may not use nickname '%s'."
 msgstr ""
 
-#: BlacklistPlugin.php:242
+#: BlacklistPlugin.php:234
 #, php-format
-msgid "You may not use url '%s' in notices"
+msgid "You may not use URL \"%s\" in notices."
 msgstr ""
 
-#: BlacklistPlugin.php:351
-msgid "Keep a blacklist of forbidden nickname and URL patterns."
+#: BlacklistPlugin.php:338
+msgid "Keeps a blacklist of forbidden nickname and URL patterns."
 msgstr ""
 
-#: blacklistadminpanel.php:185
+#: BlacklistPlugin.php:375 blacklistadminpanel.php:52
+msgid "Blacklist"
+msgstr ""
+
+#: BlacklistPlugin.php:376
+msgid "Blacklist configuration"
+msgstr ""
+
+#: BlacklistPlugin.php:402
+msgid "Add this nickname pattern to blacklist"
+msgstr ""
+
+#: BlacklistPlugin.php:411
+msgid "Add this homepage pattern to blacklist"
+msgstr ""
+
+#: blacklistadminpanel.php:62
+msgid "Blacklisted URLs and nicknames"
+msgstr ""
+
+#: blacklistadminpanel.php:174
 msgid "Nicknames"
 msgstr ""
 
-#: blacklistadminpanel.php:193
+#: blacklistadminpanel.php:176
+msgid "Patterns of nicknames to block, one per line"
+msgstr ""
+
+#: blacklistadminpanel.php:182
 msgid "URLs"
 msgstr ""
+
+#: blacklistadminpanel.php:184
+msgid "Patterns of URLs to block, one per line"
+msgstr ""
+
+#: blacklistadminpanel.php:198
+msgid "Save"
+msgstr ""
+
+#: blacklistadminpanel.php:201
+msgid "Save site settings"
+msgstr ""
index 0e2719aed032e5e271357dad838b0198d64eda51..49243aeea9dc9ff66e07e0c3340ed3b8f1671b6f 100644 (file)
@@ -51,7 +51,6 @@ if (!defined('STATUSNET')) {
  *
  * @seeAlso  Location
  */
-
 class BlankAdPlugin extends UAPPlugin
 {
     /**
@@ -61,7 +60,6 @@ class BlankAdPlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showMediumRectangle($action)
     {
         $action->element('img',
@@ -78,7 +76,6 @@ class BlankAdPlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showRectangle($action)
     {
         $action->element('img',
@@ -95,7 +92,6 @@ class BlankAdPlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showWideSkyscraper($action)
     {
         $action->element('img',
@@ -112,7 +108,6 @@ class BlankAdPlugin extends UAPPlugin
      *
      * @return void
      */
-
     protected function showLeaderboard($action)
     {
         $action->element('img',
@@ -121,4 +116,15 @@ class BlankAdPlugin extends UAPPlugin
                                'src' => common_path('plugins/BlankAd/redpixel.png')),
                          '');
     }
-}
\ No newline at end of file
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'BlankAd',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:BlankAdPlugin',
+                            'rawdescription' =>
+                            _m('Plugin for testing ad layout.'));
+        return true;
+    }
+}
diff --git a/plugins/BlogspamNet/BlogspamNetPlugin.php b/plugins/BlogspamNet/BlogspamNetPlugin.php
new file mode 100644 (file)
index 0000000..51a86b4
--- /dev/null
@@ -0,0 +1,155 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to check submitted notices with blogspam.net
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Brion Vibber <brion@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+define('BLOGSPAMNETPLUGIN_VERSION', '0.1');
+
+/**
+ * Plugin to check submitted notices with blogspam.net
+ *
+ * When new notices are saved, we check their text with blogspam.net (or
+ * a compatible service).
+ *
+ * Blogspam.net is supposed to catch blog comment spam, and I found that
+ * some of its tests (min/max size, bayesian match) gave a lot of false positives.
+ * So, I've turned those tests off by default. This may not get as many
+ * hits, but it's better than nothing.
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+class BlogspamNetPlugin extends Plugin
+{
+    var $baseUrl = 'http://test.blogspam.net:8888/';
+
+    function __construct($url=null)
+    {
+        parent::__construct();
+        if ($url) {
+            $this->baseUrl = $url;
+        }
+    }
+
+    function onStartNoticeSave($notice)
+    {
+        $args = $this->testArgs($notice);
+        common_debug("Blogspamnet args = " . print_r($args, TRUE));
+        $requestBody = xmlrpc_encode_request('testComment', array($args));
+
+        $request = new HTTPClient($this->baseUrl, HTTPClient::METHOD_POST);
+        $request->setHeader('Content-Type', 'text/xml');
+        $request->setBody($requestBody);
+        $httpResponse = $request->send();
+
+        $response = xmlrpc_decode($httpResponse->getBody());
+        if (xmlrpc_is_fault($response)) {
+            throw new ServerException("$response[faultString] ($response[faultCode])", 500);
+        } else {
+            common_debug("Blogspamnet results = " . $response);
+            if (preg_match('/^ERROR(:(.*))?$/', $response, $match)) {
+                throw new ServerException(sprintf(_("Error from %s: %s"), $this->baseUrl, $match[2]), 500);
+            } else if (preg_match('/^SPAM(:(.*))?$/', $response, $match)) {
+                throw new ClientException(sprintf(_("Spam checker results: %s"), $match[2]), 400);
+            } else if (preg_match('/^OK$/', $response)) {
+                // don't do anything
+            } else {
+                throw new ServerException(sprintf(_("Unexpected response from %s: %s"), $this->baseUrl, $response), 500);
+            }
+        }
+        return true;
+    }
+
+    function testArgs($notice)
+    {
+        $args = array();
+        $args['comment'] = $notice->content;
+        $args['ip'] = $this->getClientIP();
+
+        if (isset($_SERVER) && array_key_exists('HTTP_USER_AGENT', $_SERVER)) {
+            $args['agent'] = $_SERVER['HTTP_USER_AGENT'];
+        }
+
+        $profile = $notice->getProfile();
+
+        if ($profile && $profile->homepage) {
+            $args['link'] = $profile->homepage;
+        }
+
+        if ($profile && $profile->fullname) {
+            $args['name'] = $profile->fullname;
+        } else {
+            $args['name'] = $profile->nickname;
+        }
+
+        $args['site'] = common_root_url();
+        $args['version'] = $this->userAgent();
+
+        $args['options'] = "max-size=" . common_config('site','textlimit') . ",min-size=0,min-words=0,exclude=bayasian";
+
+        return $args;
+    }
+
+    function getClientIP()
+    {
+        if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
+            // Note: order matters here; use proxy-forwarded stuff first
+            foreach (array('HTTP_X_FORWARDED_FOR', 'CLIENT-IP', 'REMOTE_ADDR') as $k) {
+                if (isset($_SERVER[$k])) {
+                    return $_SERVER[$k];
+                }
+            }
+        }
+        return '127.0.0.1';
+    }
+
+    function userAgent()
+    {
+        return 'BlogspamNetPlugin/'.BLOGSPAMNETPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'BlogspamNet',
+                            'version' => BLOGSPAMNETPLUGIN_VERSION,
+                            'author' => 'Evan Prodromou, Brion Vibber',
+                            'homepage' => 'http://status.net/wiki/Plugin:BlogspamNet',
+                            'rawdescription' =>
+                            _m('Plugin to check submitted notices with blogspam.net.'));
+        return true;
+    }
+}
diff --git a/plugins/BlogspamNetPlugin.php b/plugins/BlogspamNetPlugin.php
deleted file mode 100644 (file)
index d52e600..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to check submitted notices with blogspam.net
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @author    Brion Vibber <brion@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-define('BLOGSPAMNETPLUGIN_VERSION', '0.1');
-
-/**
- * Plugin to check submitted notices with blogspam.net
- *
- * When new notices are saved, we check their text with blogspam.net (or
- * a compatible service).
- *
- * Blogspam.net is supposed to catch blog comment spam, and I found that
- * some of its tests (min/max size, bayesian match) gave a lot of false positives.
- * So, I've turned those tests off by default. This may not get as many
- * hits, but it's better than nothing.
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class BlogspamNetPlugin extends Plugin
-{
-    var $baseUrl = 'http://test.blogspam.net:8888/';
-
-    function __construct($url=null)
-    {
-        parent::__construct();
-        if ($url) {
-            $this->baseUrl = $url;
-        }
-    }
-
-    function onStartNoticeSave($notice)
-    {
-        $args = $this->testArgs($notice);
-        common_debug("Blogspamnet args = " . print_r($args, TRUE));
-        $requestBody = xmlrpc_encode_request('testComment', array($args));
-
-        $request = new HTTPClient($this->baseUrl, HTTPClient::METHOD_POST);
-        $request->setHeader('Content-Type', 'text/xml');
-        $request->setBody($requestBody);
-        $httpResponse = $request->send();
-
-        $response = xmlrpc_decode($httpResponse->getBody());
-        if (xmlrpc_is_fault($response)) {
-            throw new ServerException("$response[faultString] ($response[faultCode])", 500);
-        } else {
-            common_debug("Blogspamnet results = " . $response);
-            if (preg_match('/^ERROR(:(.*))?$/', $response, $match)) {
-                throw new ServerException(sprintf(_("Error from %s: %s"), $this->baseUrl, $match[2]), 500);
-            } else if (preg_match('/^SPAM(:(.*))?$/', $response, $match)) {
-                throw new ClientException(sprintf(_("Spam checker results: %s"), $match[2]), 400);
-            } else if (preg_match('/^OK$/', $response)) {
-                // don't do anything
-            } else {
-                throw new ServerException(sprintf(_("Unexpected response from %s: %s"), $this->baseUrl, $response), 500);
-            }
-        }
-        return true;
-    }
-
-    function testArgs($notice)
-    {
-        $args = array();
-        $args['comment'] = $notice->content;
-        $args['ip'] = $this->getClientIP();
-
-        if (isset($_SERVER) && array_key_exists('HTTP_USER_AGENT', $_SERVER)) {
-            $args['agent'] = $_SERVER['HTTP_USER_AGENT'];
-        }
-
-        $profile = $notice->getProfile();
-
-        if ($profile && $profile->homepage) {
-            $args['link'] = $profile->homepage;
-        }
-
-        if ($profile && $profile->fullname) {
-            $args['name'] = $profile->fullname;
-        } else {
-            $args['name'] = $profile->nickname;
-        }
-
-        $args['site'] = common_root_url();
-        $args['version'] = $this->userAgent();
-
-        $args['options'] = "max-size=" . common_config('site','textlimit') . ",min-size=0,min-words=0,exclude=bayasian";
-
-        return $args;
-    }
-
-    function getClientIP()
-    {
-        if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
-            // Note: order matters here; use proxy-forwarded stuff first
-            foreach (array('HTTP_X_FORWARDED_FOR', 'CLIENT-IP', 'REMOTE_ADDR') as $k) {
-                if (isset($_SERVER[$k])) {
-                    return $_SERVER[$k];
-                }
-            }
-        }
-        return '127.0.0.1';
-    }
-
-    function userAgent()
-    {
-        return 'BlogspamNetPlugin/'.BLOGSPAMNETPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION;
-    }
-}
diff --git a/plugins/CacheLog/CacheLogPlugin.php b/plugins/CacheLog/CacheLogPlugin.php
new file mode 100644 (file)
index 0000000..5b0b439
--- /dev/null
@@ -0,0 +1,119 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Logs cache access
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * Log cache access
+ *
+ * Note that since most caching plugins return false for StartCache*
+ * methods, you should add this plugin before them, i.e.
+ *
+ *     addPlugin('CacheLog');
+ *     addPlugin('XCache');
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+class CacheLogPlugin extends Plugin
+{
+    function onStartCacheGet(&$key, &$value)
+    {
+        $this->log(LOG_INFO, "Fetching key '$key'");
+        return true;
+    }
+
+    function onEndCacheGet($key, &$value)
+    {
+        if ($value === false) {
+            $this->log(LOG_INFO, "Cache MISS for key '$key'");
+        } else {
+            $this->log(LOG_INFO, "Cache HIT for key '$key'");
+        }
+        return true;
+    }
+
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        if (empty($value)) {
+            if (is_array($value)) {
+                $this->log(LOG_INFO, "Setting empty array for key '$key'");
+            } else if (is_null($value)) {
+                $this->log(LOG_INFO, "Setting null value for key '$key'");
+            } else if (is_string($value)) {
+                $this->log(LOG_INFO, "Setting empty string for key '$key'");
+            } else if (is_integer($value)) {
+                $this->log(LOG_INFO, "Setting integer 0 for key '$key'");
+            } else {
+                $this->log(LOG_INFO, "Setting empty value '$value' for key '$key'");
+            }
+        } else {
+            $this->log(LOG_INFO, "Setting non-empty value for key '$key'");
+        }
+        return true;
+    }
+
+    function onEndCacheSet($key, $value, $flag, $expiry)
+    {
+        $this->log(LOG_INFO, "Done setting cache value for key '$key'");
+        return true;
+    }
+
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $this->log(LOG_INFO, "Deleting cache value for key '$key'");
+        return true;
+    }
+
+    function onEndCacheDelete($key)
+    {
+        $this->log(LOG_INFO, "Done deleting cache value for key '$key'");
+        return true;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'CacheLog',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:CacheLog',
+                            'description' =>
+                            _m('Log reads and writes to the cache.'));
+        return true;
+    }
+}
diff --git a/plugins/CacheLog/locale/CacheLog.pot b/plugins/CacheLog/locale/CacheLog.pot
new file mode 100644 (file)
index 0000000..34c4238
--- /dev/null
@@ -0,0 +1,21 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: CacheLogPlugin.php:116
+msgid "Log reads and writes to the cache."
+msgstr ""
diff --git a/plugins/CacheLogPlugin.php b/plugins/CacheLogPlugin.php
deleted file mode 100644 (file)
index 4c47de8..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Logs cache access
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * Log cache access
- *
- * Note that since most caching plugins return false for StartCache*
- * methods, you should add this plugin before them, i.e.
- *
- *     addPlugin('CacheLog');
- *     addPlugin('XCache');
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-class CacheLogPlugin extends Plugin
-{
-    function onStartCacheGet(&$key, &$value)
-    {
-        $this->log(LOG_INFO, "Fetching key '$key'");
-        return true;
-    }
-
-    function onEndCacheGet($key, &$value)
-    {
-        if ($value === false) {
-            $this->log(LOG_INFO, "Cache MISS for key '$key'");
-        } else {
-            $this->log(LOG_INFO, "Cache HIT for key '$key'");
-        }
-        return true;
-    }
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        if (empty($value)) {
-            if (is_array($value)) {
-                $this->log(LOG_INFO, "Setting empty array for key '$key'");
-            } else if (is_null($value)) {
-                $this->log(LOG_INFO, "Setting null value for key '$key'");
-            } else if (is_string($value)) {
-                $this->log(LOG_INFO, "Setting empty string for key '$key'");
-            } else if (is_integer($value)) {
-                $this->log(LOG_INFO, "Setting integer 0 for key '$key'");
-            } else {
-                $this->log(LOG_INFO, "Setting empty value '$value' for key '$key'");
-            }
-        } else {
-            $this->log(LOG_INFO, "Setting non-empty value for key '$key'");
-        }
-        return true;
-    }
-
-    function onEndCacheSet($key, $value, $flag, $expiry)
-    {
-        $this->log(LOG_INFO, "Done setting cache value for key '$key'");
-        return true;
-    }
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $this->log(LOG_INFO, "Deleting cache value for key '$key'");
-        return true;
-    }
-
-    function onEndCacheDelete($key)
-    {
-        $this->log(LOG_INFO, "Done deleting cache value for key '$key'");
-        return true;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'CacheLog',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:CacheLog',
-                            'description' =>
-                            _m('Log reads and writes to the cache'));
-        return true;
-    }
-}
-
index 1662db3ebafab9fc03c31b0a8e9ea65bbb7de12b..6b751a0aa4fa9e02b39d688e590e411e7851e682 100644 (file)
@@ -79,8 +79,10 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
         $action_name = $action->trimmed('action');
 
         $action->menuItem(common_local_url('caslogin'),
+                          // TRANS: Menu item. CAS is Central Authentication Service.
                           _m('CAS'),
-                          _m('Login or register with CAS'),
+                          // TRANS: Tooltip for menu item. CAS is Central Authentication Service.
+                          _m('Login or register with CAS.'),
                           $action_name === 'caslogin');
 
         return true;
@@ -93,9 +95,11 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
         switch ($name)
         {
          case 'login':
-            $instr = '(Have an account with CAS? ' .
-              'Try our [CAS login]'.
-              '(%%action.caslogin%%)!)';
+            // TRANS: Invitation to users with a CAS account to log in using the service.
+            // TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
+            // TRANS: These two elements may not be separated.
+            $instr = _m('(Have an account with CAS? ' .
+              'Try our [CAS login](%%action.caslogin%%)!)');
             break;
          default:
             return true;
@@ -121,13 +125,13 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
     function onInitializePlugin(){
         parent::onInitializePlugin();
         if(!isset($this->server)){
-            throw new Exception("must specify a server");
+            throw new Exception(_m("Specifying a server is required.");
         }
         if(!isset($this->port)){
-            throw new Exception("must specify a port");
+            throw new Exception(_m("Specifying a port is required.");
         }
         if(!isset($this->path)){
-            throw new Exception("must specify a path");
+            throw new Exception(_m("Specifying a path is required.");
         }
         //These values need to be accessible to a action object
         //I can't think of any other way than global variables
@@ -146,8 +150,8 @@ class CasAuthenticationPlugin extends AuthenticationPlugin
                             'version' => STATUSNET_VERSION,
                             'author' => 'Craig Andrews',
                             'homepage' => 'http://status.net/wiki/Plugin:CasAuthentication',
-                            'rawdescription' =>
-                            _m('The CAS Authentication plugin allows for StatusNet to handle authentication through CAS (Central Authentication Service).'));
+                            // TRANS: Plugin description. CAS is Central Authentication Service.
+                            'rawdescription' => _m('The CAS Authentication plugin allows for StatusNet to handle authentication through CAS (Central Authentication Service).'));
         return true;
     }
 }
index a66774dc17e911caf71d08069d648c0485020817..846774e7c671a88cd3c4fae15d88bdff1cc97c42 100644 (file)
@@ -36,13 +36,13 @@ class CasloginAction extends Action
             $casTempPassword = common_good_rand(16);
             $user = common_check_user(phpCAS::getUser(), $casTempPassword);
             if (!$user) {
-                $this->serverError(_('Incorrect username or password.'));
+                $this->serverError(_m('Incorrect username or password.'));
                 return;
             }
 
             // success!
             if (!common_set_user($user)) {
-                $this->serverError(_('Error setting user. You are probably not authorized.'));
+                $this->serverError(_m('Error setting user. You are probably not authorized.'));
                 return;
             }
 
@@ -69,7 +69,6 @@ class CasloginAction extends Action
             }
 
             common_redirect($url, 303);
-
         }
     }
 }
index 20a2bf23300361f7145d211cd5a0b9ab394d085f..13ea401073140eef28d0e4b2fe6be5a20e7a4fca 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,15 +16,38 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: CasAuthenticationPlugin.php:82
+#. TRANS: Menu item. CAS is Central Authentication Service.
+#: CasAuthenticationPlugin.php:83
 msgid "CAS"
 msgstr ""
 
-#: CasAuthenticationPlugin.php:83
-msgid "Login or register with CAS"
+#. TRANS: Tooltip for menu item. CAS is Central Authentication Service.
+#: CasAuthenticationPlugin.php:85
+msgid "Login or register with CAS."
+msgstr ""
+
+#. TRANS: Invitation to users with a CAS account to log in using the service.
+#. TRANS: "[CAS login]" is a link description. (%%action.caslogin%%) is the URL.
+#. TRANS: These two elements may not be separated.
+#: CasAuthenticationPlugin.php:101
+#, php-format
+msgid "(Have an account with CAS? Try our [CAS login](%%action.caslogin%%)!)"
+msgstr ""
+
+#: CasAuthenticationPlugin.php:128
+msgid "Specifying a server is required."
+msgstr ""
+
+#: CasAuthenticationPlugin.php:131
+msgid "Specifying a port is required."
+msgstr ""
+
+#: CasAuthenticationPlugin.php:134
+msgid "Specifying a path is required."
 msgstr ""
 
-#: CasAuthenticationPlugin.php:150
+#. TRANS: Plugin description. CAS is Central Authentication Service.
+#: CasAuthenticationPlugin.php:154
 msgid ""
 "The CAS Authentication plugin allows for StatusNet to handle authentication "
 "through CAS (Central Authentication Service)."
@@ -33,3 +56,11 @@ msgstr ""
 #: caslogin.php:28
 msgid "Already logged in."
 msgstr ""
+
+#: caslogin.php:39
+msgid "Incorrect username or password."
+msgstr ""
+
+#: caslogin.php:45
+msgid "Error setting user. You are probably not authorized."
+msgstr ""
index 57f5ad89e0f0a5392d145788baa3514ca9f9ef12..27a3a56f72d2e3cd62db96aaf3d366a03acef5b2 100644 (file)
@@ -71,9 +71,7 @@ class ClientSideShortenPlugin extends Plugin
                             'author' => 'Craig Andrews',
                             'homepage' => 'http://status.net/wiki/Plugin:ClientSideShorten',
                             'rawdescription' =>
-                            _m('ClientSideShorten causes the web interface\'s notice form to automatically shorten urls as they entered, and before the notice is submitted.'));
+                            _m('ClientSideShorten causes the web interface\'s notice form to automatically shorten URLs as they entered, and before the notice is submitted.'));
         return true;
     }
-
 }
-
index 83caff3221e674183d85ad6242a5e74f39acbaba..509f1931b1e1276b7adf8102f581c21fa6862036 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,7 +19,7 @@ msgstr ""
 #: ClientSideShortenPlugin.php:74
 msgid ""
 "ClientSideShorten causes the web interface's notice form to automatically "
-"shorten urls as they entered, and before the notice is submitted."
+"shorten URLs as they entered, and before the notice is submitted."
 msgstr ""
 
 #: shorten.php:55
index f67cbf3b28a3489be488936f366e8468ef991482..53c2cf5d1a89e0dc4fef6d56b38fdef0e947e111 100644 (file)
@@ -41,7 +41,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ShortenAction extends Action
 {
     private $text;
@@ -66,4 +65,3 @@ class ShortenAction extends Action
         print $shortened_text;
     }
 }
-
index 29cb3004bf95df1ecb8543002b273aaca258e4b7..70b324b5c20d225683d0d6cc98079941e6b7c1c7 100644 (file)
@@ -42,7 +42,6 @@ require_once INSTALLDIR.'/plugins/Realtime/RealtimePlugin.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class CometPlugin extends RealtimePlugin
 {
     public $server   = null;
@@ -104,4 +103,15 @@ class CometPlugin extends RealtimePlugin
         }
         return '/' . implode('/', $path);
     }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Comet',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Comet',
+                            'rawdescription' =>
+                            _m('Plugin to do "real time" updates using Comet/Bayeux.'));
+        return true;
+    }
 }
index 4abd40af7ae18bbb3e350559ac7d2ab1fd888e46..f6e840b6afde2777188b3d70eec6b73ef5a89d06 100644 (file)
@@ -6,7 +6,10 @@ NOTE: this is an insecure version; don't roll it out on a production
 server.
 
 It requires a cometd server. I've only had the cometd-java server work
-correctly; something's wiggy with the Twisted-based server.
+correctly; something's wiggy with the Twisted-based server. See here
+for help setting up a comet server:
+
+    http://cometd.org/
 
 After you have a cometd server installed, just add this code to your
 config.php:
index b1362b166fea669f1b6996eb969b87656ecb9cb5..ac6b43c1f312f9def96388abae7ff3c0c882b4bd 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * DirectionDetector plugin, detects notices with RTL content & sets RTL
  * style for them.
  *
  * @category     Plugin
  * @package      StatusNet
- * @author       Behrooz shabani (everplays) - <behrooz@rock.com>
+ * @author              Behrooz shabani (everplays) - <behrooz@rock.com>
  * @copyright    2009-2010 Behrooz shabani
  * @license      http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
  *
  */
 
 if (!defined('STATUSNET')) {
-               exit(1);
+    exit(1);
 }
 
-define('DIRECTIONDETECTORPLUGIN_VERSION', '0.1.2');
+define('DIRECTIONDETECTORPLUGIN_VERSION', '0.2.0');
 
 class DirectionDetectorPlugin extends Plugin {
-       /**
-        * SN plugin API, here we will make changes on rendered column
-        *
-        * @param object $notice notice is going to be saved
-        */
-       public function onStartNoticeSave(&$notice){
-               if(!preg_match('/<span class="rtl">/', $notice->rendered) && self::isRTL($notice->content))
-                       $notice->rendered = '<span class="rtl">'.$notice->rendered.'</span>';
-               return true;
-       }
+    /**
+     * SN plugin API, here we will make changes on rendered column
+     *
+     * @param object $notice notice is going to be saved
+     */
+    public function onStartNoticeSave($notice){
+        if(!preg_match('/<span class="rtl">/', $notice->rendered) && self::isRTL($notice->content))
+            $notice->rendered = '<span class="rtl">'.$notice->rendered.'</span>';
+        return true;
+    }
+
+    /**
+     * SN plugin API, here we will add css needed for modifiyed rendered
+     *
+     * @param Action $xml
+     */
+    public function onEndShowStatusNetStyles($xml){
+        $xml->element('style', array('type' => 'text/css'), 'span.rtl {display:block;direction:rtl;text-align:right;float:right;} .notice .author {float:left}');
+    }
+
+    /**
+     * is passed string a rtl content or not
+     *
+     * @param string $content
+     * @return boolean
+     */
+    public static function isRTL($content){
+        $content = self::getClearText($content);
+        $words = explode(' ', $content);
+        $rtl = 0;
+        foreach($words as $str)
+            if(self::startsWithRTLCharacter($str))
+                $rtl++;
+            else
+                $rtl--;
+        if($rtl>0)// if number of rtl words is more than ltr words so it's a rtl content
+            return true;
+        elseif($rtl==0)
+            // check first word again
+            return self::startsWithRTLCharacter($words[0]);
+        return false;
+    }
+
+    /**
+     * checks that passed string starts with a RTL language or not
+     *
+     * @param string $str
+     * @return boolean
+     */
+    public static function startsWithRTLCharacter($str){
+        if( is_array($cc = self::utf8ToUnicode(mb_substr($str, 0, 1, 'utf-8'))) )
+            $cc = $cc[0];
+        else
+            return false;
+        if($cc>=1536 && $cc<=1791) // arabic, persian, urdu, kurdish, ...
+            return true;
+        if($cc>=65136 && $cc<=65279) // arabic peresent 2
+            return true;
+        if($cc>=64336 && $cc<=65023) // arabic peresent 1
+            return true;
+        if($cc>=1424 && $cc<=1535) // hebrew
+            return true;
+        if($cc>=64256 && $cc<=64335) // hebrew peresent
+            return true;
+        if($cc>=1792 && $cc<=1871) // Syriac
+            return true;
+        if($cc>=1920 && $cc<=1983) // Thaana
+            return true;
+        if($cc>=1984 && $cc<=2047) // NKo
+            return true;
+        if($cc>=11568 && $cc<=11647) // Tifinagh
+            return true;
+        return false;
+    }
 
-       /**
-        * SN plugin API, here we will add css needed for modifiyed rendered
-        *
-        * @param
-        */
-       public function onEndShowStatusNetStyles($xml){
-               $xml->element('style', array('type' => 'text/css'), 'span.rtl {display:block;direction:rtl;text-align:right;float:right;width:490px;} .notice .author {float:left}');
-       }
-       /**
-        * checks that passed string is a RTL language or not
-        *
-        * @param string $str String to be checked
-        */
-       public static function isRTL($str){
-               self::getClearText($str);
-               if( is_array($cc = self::utf8ToUnicode(mb_substr($str, 0, 1, 'utf-8'))) )
-                       $cc = $cc[0];
-               else
-                       return false;
-               if($cc>=1536 && $cc<=1791) // Arabic, Persian, Urdu, Kurdish, ...
-                       return true;
-               if($cc>=65136 && $cc<=65279) // Arabic peresent 2
-                       return true;
-               if($cc>=64336 && $cc<=65023) // Arabic peresent 1
-                       return true;
-               if($cc>=1424 && $cc<=1535) // Hebrew
-                       return true;
-               if($cc>=64256 && $cc<=64335) // Hebrew peresent
-                       return true;
-               if($cc>=1792 && $cc<=1871) // Syriac
-                       return true;
-               if($cc>=1920 && $cc<=1983) // Thaana
-                       return true;
-               if($cc>=1984 && $cc<=2047) // NKo
-                       return true;
-               if($cc>=11568 && $cc<=11647) // Tifinagh
-                       return true;
-               return false;
-       }
+    /**
+     * clears text from replys, tags, groups, reteets & whitespaces
+     *
+     * @param string $str
+     * @return string
+     */
+    private static function getClearText($str){
+        $str = preg_replace('/@[^ ]+|![^ ]+|#[^ ]+/u', '', $str); // reply, tag, group
+        $str = preg_replace('/^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]/u', '', $str); // redent, retweet
+        $str = preg_replace("/[ \r\t\n]+/", ' ', trim($str)); // remove spaces
+        return $str;
+    }
 
-       /**
-        * clears text from replies, tags, groups, repeats & whitespaces
-        *
-        * @param string &$str string to be cleared
-        */
-       private static function getClearText(&$str){
-               $str = preg_replace('/@[^ ]+|![^ ]+|#[^ ]+/u', '', $str); // reply, tag, group
-               $str = preg_replace('/^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]/u', '', $str); // redent, retweet
-               $str = preg_replace("/[ \r\t\n]+/", ' ', trim($str)); // remove spaces
-       }
+    /**
+     * adds javascript to do same thing on input textarea
+     *
+     * @param Action $action
+     */
+    function onEndShowScripts($action){
+        if (common_logged_in()) {
+            $action->script('plugins/DirectionDetector/jquery.DirectionDetector.js');
+        }
+    }
 
-       /**
-        * Takes a UTF-8 string and returns an array of ints representing the
-        * Unicode characters. Astral planes are supported i.e. the ints in the
-        * output can be > 0xFFFF. Occurrances of the BOM are ignored. Surrogates
-        * are not allowed. ### modified ### returns first character code
-        *
-        * Returns false if the input string isn't a valid UTF-8 octet sequence.
-        */
-       private static function utf8ToUnicode($str){
-               $mState = 0;       // cached expected number of octets after the current octet
-                                  // until the beginning of the next UTF8 character sequence
-               $mUcs4  = 0;     // cached Unicode character
-               $mBytes = 1;       // cached expected number of octets in the current sequence
-               $out = array();
-               $len = strlen($str);
+    /**
+     * Takes an UTF-8 string and returns an array of ints representing the
+     * Unicode characters. Astral planes are supported ie. the ints in the
+     * output can be > 0xFFFF. O$ccurrances of the BOM are ignored. Surrogates
+     * are not allowed.
+     *
+     * @param string $str
+     * @return mixed array of ints, or false on invalid input
+     */
+    private static function utf8ToUnicode($str){
+        $mState = 0;      // cached expected number of octets after the current octet
+                   // until the beginning of the next UTF8 character sequence
+        $mUcs4 = 0;     // cached Unicode character
+        $mBytes = 1;      // cached expected number of octets in the current sequence
+        $out = array();
+        $len = strlen($str);
 
-               for($i = 0; $i < $len; $i++) {
-                       $in = ord($str{$i});
-                       if (0 == $mState) {
-                               // When mState is zero we expect either a US-ASCII character or a
-                               // multi-octet sequence.
-                               if (0 == (0x80 & ($in))) {
-                                       // US-ASCII, pass straight through.
-                                       $out[] = $in;
-                                       $mBytes = 1;
-                               } elseif (0xC0 == (0xE0 & ($in))) {
-                                       // First octet of 2 octet sequence
-                                       $mUcs4 = ($in);
-                                       $mUcs4 = ($mUcs4 & 0x1F) << 6;
-                                       $mState = 1;
-                                       $mBytes = 2;
-                               } elseif (0xE0 == (0xF0 & ($in))) {
-                                       // First octet of 3 octet sequence
-                                       $mUcs4 = ($in);
-                                       $mUcs4 = ($mUcs4 & 0x0F) << 12;
-                                       $mState = 2;
-                                       $mBytes = 3;
-                               } elseif (0xF0 == (0xF8 & ($in))) {
-                                       // First octet of 4 octet sequence
-                                       $mUcs4 = ($in);
-                                       $mUcs4 = ($mUcs4 & 0x07) << 18;
-                                       $mState = 3;
-                                       $mBytes = 4;
-                               } elseif (0xF8 == (0xFC & ($in))) {
-                                       /* First octet of 5 octet sequence.
-                                        *
-                                        * This is illegal because the encoded codepoint must be either
-                                        * (a) not the shortest form or
-                                        * (b) outside the Unicode range of 0-0x10FFFF.
-                                        * Rather than trying to resynchronize, we will carry on until the end
-                                        * of the sequence and let the later error handling code catch it.
-                                        */
-                                       $mUcs4 = ($in);
-                                       $mUcs4 = ($mUcs4 & 0x03) << 24;
-                                       $mState = 4;
-                                       $mBytes = 5;
-                               } elseif (0xFC == (0xFE & ($in))) {
-                                       // First octet of 6 octet sequence, see comments for 5 octet sequence.
-                                       $mUcs4 = ($in);
-                                       $mUcs4 = ($mUcs4 & 1) << 30;
-                                       $mState = 5;
-                                       $mBytes = 6;
-                               } else {
-                                       /* Current octet is neither in the US-ASCII range nor a legal first
-                                        * octet of a multi-octet sequence.
-                                        */
-                                       return false;
-                               }
-                       } else {
-                               // When mState is non-zero, we expect a continuation of the multi-octet
-                               // sequence
-                               if (0x80 == (0xC0 & ($in))) {
-                                       // Legal continuation.
-                                       $shift = ($mState - 1) * 6;
-                                       $tmp = $in;
-                                       $tmp = ($tmp & 0x0000003F) << $shift;
-                                       $mUcs4 |= $tmp;
-                                       if (0 == --$mState) {
-                                               /* End of the multi-octet sequence. mUcs4 now contains the final
-                                                * Unicode codepoint to be output
-                                                *
-                                                * Check for illegal sequences and codepoints.
-                                                */
-                                               // From Unicode 3.1, non-shortest form is illegal
-                                               if      (
-                                                               ((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
-                                                               ((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
-                                                               ((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
-                                                               (4 < $mBytes) ||
-                                                               // From Unicode 3.2, surrogate characters are illegal
-                                                               (($mUcs4 & 0xFFFFF800) == 0xD800) ||
-                                                               // Codepoints outside the Unicode range are illegal
-                                                               ($mUcs4 > 0x10FFFF)
-                                                       ){
-                                                       return false;
-                                               }
-                                               if (0xFEFF != $mUcs4) {
-                                                       $out[] = $mUcs4;
-                                               }
-                                               //initialize UTF8 cache
-                                               $mState = 0;
-                                               $mUcs4  = 0;
-                                               $mBytes = 1;
-                                       }
-                               } else {
-                                       /* ((0xC0 & (*in) != 0x80) && (mState != 0))
-                                        *
-                                        * Incomplete multi-octet sequence.
-                                        */
-                                       return false;
-                               }
-                       }
-               }
-               return $out;
-       }
+        for($i = 0; $i < $len; $i++) {
+            $in = ord($str{$i});
+            if (0 == $mState) {
+                // When mState is zero we expect either a US-ASCII character or a
+                // multi-octet sequence.
+                if (0 == (0x80 & ($in))) {
+                    // US-ASCII, pass straight through.
+                    $out[] = $in;
+                    $mBytes = 1;
+                } elseif (0xC0 == (0xE0 & ($in))) {
+                    // First octet of 2 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x1F) << 6;
+                    $mState = 1;
+                    $mBytes = 2;
+                } elseif (0xE0 == (0xF0 & ($in))) {
+                    // First octet of 3 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x0F) << 12;
+                    $mState = 2;
+                    $mBytes = 3;
+                } elseif (0xF0 == (0xF8 & ($in))) {
+                    // First octet of 4 octet sequence
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x07) << 18;
+                    $mState = 3;
+                    $mBytes = 4;
+                } elseif (0xF8 == (0xFC & ($in))) {
+                    /* First octet of 5 octet sequence.
+                     *
+                     * This is illegal because the encoded codepoint must be either
+                     * (a) not the shortest form or
+                     * (b) outside the Unicode range of 0-0x10FFFF.
+                     * Rather than trying to resynchronize, we will carry on until the end
+                     * of the sequence and let the later error handling code catch it.
+                     */
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 0x03) << 24;
+                    $mState = 4;
+                    $mBytes = 5;
+                } elseif (0xFC == (0xFE & ($in))) {
+                    // First octet of 6 octet sequence, see comments for 5 octet sequence.
+                    $mUcs4 = ($in);
+                    $mUcs4 = ($mUcs4 & 1) << 30;
+                    $mState = 5;
+                    $mBytes = 6;
+                } else {
+                    /* Current octet is neither in the US-ASCII range nor a legal first
+                     * octet of a multi-octet sequence.
+                     */
+                    return false;
+                }
+            } else {
+                // When mState is non-zero, we expect a continuation of the multi-octet
+                // sequence
+                if (0x80 == (0xC0 & ($in))) {
+                    // Legal continuation.
+                    $shift = ($mState - 1) * 6;
+                    $tmp = $in;
+                    $tmp = ($tmp & 0x0000003F) << $shift;
+                    $mUcs4 |= $tmp;
+                    if (0 == --$mState) {
+                        /* End of the multi-octet sequence. mUcs4 now contains the final
+                         * Unicode codepoint to be output
+                         *
+                         * Check for illegal sequences and codepoints.
+                         */
+                        // From Unicode 3.1, non-shortest form is illegal
+                        if     (
+                                ((2 == $mBytes) && ($mUcs4 < 0x0080)) ||
+                                ((3 == $mBytes) && ($mUcs4 < 0x0800)) ||
+                                ((4 == $mBytes) && ($mUcs4 < 0x10000)) ||
+                                (4 < $mBytes) ||
+                                // From Unicode 3.2, surrogate characters are illegal
+                                (($mUcs4 & 0xFFFFF800) == 0xD800) ||
+                                // Codepoints outside the Unicode range are illegal
+                                ($mUcs4 > 0x10FFFF)
+                            ){
+                            return false;
+                        }
+                        if (0xFEFF != $mUcs4) {
+                            $out[] = $mUcs4;
+                        }
+                        //initialize UTF8 cache
+                        $mState = 0;
+                        $mUcs4  = 0;
+                        $mBytes = 1;
+                    }
+                } else {
+                    /* ((0xC0 & (*in) != 0x80) && (mState != 0))
+                     *
+                     * Incomplete multi-octet sequence.
+                     */
+                    return false;
+                }
+            }
+        }
+        return $out;
+    }
 
-       /**
-        * plugin details
-        */
-       function onPluginVersion(&$versions){
-               $versions[] = array(
-                       'name' => 'Direction detector',
-                       'version' => DIRECTIONDETECTORPLUGIN_VERSION,
-                       'author' => 'Behrooz Shabani',
-                        // TRANS: Direction detector plugin description.
-                       'rawdescription' => _m('Shows notices with right-to-left content in correct direction.')
-               );
-               return true;
-       }
+    /**
+     * plugin details
+     */
+    function onPluginVersion(&$versions){
+        $versions[] = array(
+            'name' => 'Direction detector',
+            'version' => DIRECTIONDETECTORPLUGIN_VERSION,
+            'author' => 'Behrooz Shabani',
+            'rawdescription' => _m('Shows notices with right-to-left content in correct direction.')
+        );
+        return true;
+    }
 }
 
 /*
diff --git a/plugins/DirectionDetector/jquery.DirectionDetector.js b/plugins/DirectionDetector/jquery.DirectionDetector.js
new file mode 100644 (file)
index 0000000..6808bca
--- /dev/null
@@ -0,0 +1,61 @@
+
+/**
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.    If not, see <http://www.gnu.org/licenses/>.
+ *
+ * @category     Plugin
+ * @package      StatusNet
+ * @author              Behrooz shabani (everplays) - <behrooz@rock.com>
+ * @copyright    2009-2010 Behrooz shabani
+ * @license      http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ *
+ */
+
+(function($){
+       $.fn.isRTL = function(str){
+               if(typeof str != typeof "" || str.length<1)
+                       return false;
+               var cc = str.charCodeAt(0);
+               if(cc>=1536 && cc<=1791) // arabic, persian, ...
+                       return true;
+               if(cc>=65136 && cc<=65279) // arabic peresent 2
+                       return true;
+               if(cc>=64336 && cc<=65023) // arabic peresent 1
+                       return true;
+               if(cc>=1424 && cc<=1535) // hebrew
+                       return true;
+               if(cc>=64256 && cc<=64335) // hebrew peresent
+                       return true;
+               if(cc>=1792 && cc<=1871) // Syriac
+                       return true;
+               if(cc>=1920 && cc<=1983) // Thaana
+                       return true;
+               if(cc>=1984 && cc<=2047) // NKo
+                       return true;
+               if(cc>=11568 && cc<=11647) // Tifinagh
+                       return true;
+               return false;
+       };
+       $(document).ready(function(){
+               var tArea = $("#notice_data-text");
+               var tCleaner = new RegExp('@[^ ]+|![^ ]+|#[^ ]+|^RT[: ]{1}| RT | RT: |^RD[: ]{1}| RD | RD: |[♺♻:]+', 'g')
+               tArea.keyup(function(){
+                       var cleaned = tArea.val().replace(tCleaner, '').replace(/^[ ]+/, '');
+                       if($().isRTL(cleaned))
+                               tArea.css('direction', 'rtl');
+                       else
+                               tArea.css('direction', 'ltr');
+               });
+       });
+})(jQuery);
index 44bbcca4ddc66fe946e8c76e87c331433af0c676..6b0fa74a75bac6a57feb87448de4e1940d42b5d2 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-08 22:32+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,6 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: DirectionDetectorPlugin.php:222
+#: DirectionDetectorPlugin.php:259
 msgid "Shows notices with right-to-left content in correct direction."
 msgstr ""
diff --git a/plugins/DiskCache/DiskCachePlugin.php b/plugins/DiskCache/DiskCachePlugin.php
new file mode 100644 (file)
index 0000000..47d4b15
--- /dev/null
@@ -0,0 +1,178 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Plugin to implement cache interface with disk files
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * A plugin to cache data on local disk
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+class DiskCachePlugin extends Plugin
+{
+    var $root = '/tmp';
+
+    function keyToFilename($key)
+    {
+        return $this->root . '/' . str_replace(':', '/', $key);
+    }
+
+    /**
+     * Get a value associated with a key
+     *
+     * The value should have been set previously.
+     *
+     * @param string &$key   in; Lookup key
+     * @param mixed  &$value out; value associated with key
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheGet(&$key, &$value)
+    {
+        $filename = $this->keyToFilename($key);
+
+        if (file_exists($filename)) {
+            $data = file_get_contents($filename);
+            if ($data !== false) {
+                $value = unserialize($data);
+            }
+        }
+
+        Event::handle('EndCacheGet', array($key, &$value));
+        return false;
+    }
+
+    /**
+     * Associate a value with a key
+     *
+     * @param string  &$key     in; Key to use for lookups
+     * @param mixed   &$value   in; Value to associate
+     * @param integer &$flag    in; Flag (passed through to Memcache)
+     * @param integer &$expiry  in; Expiry (passed through to Memcache)
+     * @param boolean &$success out; Whether the set was successful
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        $filename = $this->keyToFilename($key);
+        $parent = dirname($filename);
+
+        $sofar = '';
+
+        foreach (explode('/', $parent) as $part) {
+            if (empty($part)) {
+                continue;
+            }
+            $sofar .= '/' . $part;
+            if (!is_dir($sofar)) {
+                $this->debug("Creating new directory '$sofar'");
+                $success = mkdir($sofar, 0750);
+                if (!$success) {
+                    $this->log(LOG_ERR, "Can't create directory '$sofar'");
+                    return false;
+                }
+            }
+        }
+
+        if (is_dir($filename)) {
+            $success = false;
+            return false;
+        }
+
+        // Write to a temp file and move to destination
+
+        $tempname = tempnam(null, 'statusnetdiskcache');
+
+        $result = file_put_contents($tempname, serialize($value));
+
+        if ($result === false) {
+            $this->log(LOG_ERR, "Couldn't write '$key' to temp file '$tempname'");
+            return false;
+        }
+
+        $result = rename($tempname, $filename);
+
+        if (!$result) {
+            $this->log(LOG_ERR, "Couldn't move temp file '$tempname' to path '$filename' for key '$key'");
+            @unlink($tempname);
+            return false;
+        }
+
+        Event::handle('EndCacheSet', array($key, $value, $flag,
+                                           $expiry));
+
+        return false;
+    }
+
+    /**
+     * Delete a value associated with a key
+     *
+     * @param string  &$key     in; Key to lookup
+     * @param boolean &$success out; whether it worked
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $filename = $this->keyToFilename($key);
+
+        if (file_exists($filename) && !is_dir($filename)) {
+            unlink($filename);
+        }
+
+        Event::handle('EndCacheDelete', array($key));
+        return false;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'DiskCache',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:DiskCache',
+                            'rawdescription' =>
+                            _m('Plugin to implement cache interface with disk files.'));
+        return true;
+    }
+}
diff --git a/plugins/DiskCachePlugin.php b/plugins/DiskCachePlugin.php
deleted file mode 100644 (file)
index b709ea3..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Plugin to implement cache interface with disk files
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * A plugin to cache data on local disk
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-class DiskCachePlugin extends Plugin
-{
-    var $root = '/tmp';
-
-    function keyToFilename($key)
-    {
-        return $this->root . '/' . str_replace(':', '/', $key);
-    }
-
-    /**
-     * Get a value associated with a key
-     *
-     * The value should have been set previously.
-     *
-     * @param string &$key   in; Lookup key
-     * @param mixed  &$value out; value associated with key
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheGet(&$key, &$value)
-    {
-        $filename = $this->keyToFilename($key);
-
-        if (file_exists($filename)) {
-            $data = file_get_contents($filename);
-            if ($data !== false) {
-                $value = unserialize($data);
-            }
-        }
-
-        Event::handle('EndCacheGet', array($key, &$value));
-        return false;
-    }
-
-    /**
-     * Associate a value with a key
-     *
-     * @param string  &$key     in; Key to use for lookups
-     * @param mixed   &$value   in; Value to associate
-     * @param integer &$flag    in; Flag (passed through to Memcache)
-     * @param integer &$expiry  in; Expiry (passed through to Memcache)
-     * @param boolean &$success out; Whether the set was successful
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        $filename = $this->keyToFilename($key);
-        $parent = dirname($filename);
-
-        $sofar = '';
-
-        foreach (explode('/', $parent) as $part) {
-            if (empty($part)) {
-                continue;
-            }
-            $sofar .= '/' . $part;
-            if (!is_dir($sofar)) {
-                $this->debug("Creating new directory '$sofar'");
-                $success = mkdir($sofar, 0750);
-                if (!$success) {
-                    $this->log(LOG_ERR, "Can't create directory '$sofar'");
-                    return false;
-                }
-            }
-        }
-
-        if (is_dir($filename)) {
-            $success = false;
-            return false;
-        }
-
-        // Write to a temp file and move to destination
-
-        $tempname = tempnam(null, 'statusnetdiskcache');
-
-        $result = file_put_contents($tempname, serialize($value));
-
-        if ($result === false) {
-            $this->log(LOG_ERR, "Couldn't write '$key' to temp file '$tempname'");
-            return false;
-        }
-
-        $result = rename($tempname, $filename);
-
-        if (!$result) {
-            $this->log(LOG_ERR, "Couldn't move temp file '$tempname' to path '$filename' for key '$key'");
-            @unlink($tempname);
-            return false;
-        }
-
-        Event::handle('EndCacheSet', array($key, $value, $flag,
-                                           $expiry));
-
-        return false;
-    }
-
-    /**
-     * Delete a value associated with a key
-     *
-     * @param string  &$key     in; Key to lookup
-     * @param boolean &$success out; whether it worked
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $filename = $this->keyToFilename($key);
-
-        if (file_exists($filename) && !is_dir($filename)) {
-            unlink($filename);
-        }
-
-        Event::handle('EndCacheDelete', array($key));
-        return false;
-    }
-}
-
diff --git a/plugins/Disqus/DisqusPlugin.php b/plugins/Disqus/DisqusPlugin.php
new file mode 100644 (file)
index 0000000..3901562
--- /dev/null
@@ -0,0 +1,174 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to add Disqus commenting to notice pages
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Zach Copley <zach@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ *
+ * This plugin adds Disqus commenting to your notices. Enabling this
+ * plugin will make each notice page display the Disqus widget, and
+ * notice lists will display the number of commments each notice has.
+ *
+ * To use this plugin, you need to first register your site with Disqus
+ * and get a Discus 'shortname' for it.
+ *
+ *    http://disqus.com
+ *
+ * To enable the plugin, put the following in you config.php:
+ *
+ * addPlugin(
+ *   'Disqus', array(
+ *       'shortname' => 'YOURSHORTNAME',
+ *      'div_style' => 'width:675px; padding-top:10px; position:relative; float:left;'
+ *   )
+ * );
+ *
+ * NOTE: the 'div_style' in an optional parameter that passes in some
+ * inline CSS when creating the Disqus widget. It's a shortcut to make
+ * the widget look OK with the default StatusNet theme. If you leave
+ * it out you'll have to edit your theme CSS files to make the widget
+ * look good.  You can also control the way the widget looks by
+ * adding style rules to your theme.
+ *
+ * See: http://help.disqus.com/entries/100878-css-customization
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Zach Copley <zach@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+class DisqusPlugin extends Plugin
+{
+    public $shortname; // Required 'shortname' for actually triggering Disqus.
+    public $div_style; // Optional CSS chunk for the main <div>
+
+    function onEndShowContentBlock($action)
+    {
+        if (get_class($action) == 'ShownoticeAction') {
+
+            $attrs = array();
+            $attrs['id'] = 'disqus_thread';
+
+            if ($this->div_style) {
+                $attrs['style'] = $this->div_style;
+            }
+
+            $action->element('div', $attrs, null);
+
+            $script = <<<ENDOFSCRIPT
+var disqus_identifier = %d;
+  (function() {
+   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+   dsq.src = 'http://%s.disqus.com/embed.js';
+   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+  })();
+ENDOFSCRIPT;
+
+            $action->inlineScript(sprintf($script, $action->notice->id, $this->shortname));
+
+            $attrs = array();
+
+            $attrs['id'] = 'disqus_thread_footer';
+
+            if ($this->div_style) {
+                $attrs['style'] = $this->div_style;
+            }
+
+            $action->elementStart('div', $attrs);
+            $action->elementStart('noscript');
+
+                       // @todo FIXME: No i18n yet, because of bad implementation. Should be one string.
+            $action->raw('Please enable JavaScript to view the ');
+            $noscriptUrl = 'http://disqus.com/?ref_noscript=' . $this->shortname;
+            $action->element('a', array('href' => $noscriptUrl), 'comments powered by Disqus.');
+            $action->elementEnd('noscript');
+
+            $action->elementStart('a', array('href' => 'http://disqus.com', 'class' => 'dsq-brlink'));
+            $action->raw('blog comments powered by ');
+            $action->element('span', array('class' => 'logo-disqus'), 'Disqus');
+            $action->elementEnd('a');
+            $action->elementEnd('div');
+        }
+    }
+
+    function onEndShowScripts($action)
+    {
+        // fugly
+        $script = <<<ENDOFSCRIPT
+var disqus_shortname = '%s';
+(function () {
+  var s = document.createElement('script'); s.async = true;
+  s.src = 'http://disqus.com/forums/%s/count.js';
+  (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
+}());
+ENDOFSCRIPT;
+        $action->inlineScript(sprintf($script, $this->shortname, $this->shortname));
+
+        return true;
+    }
+
+    function onStartShowNoticeItem($noticeListItem)
+    {
+        if (empty($noticeListItem->notice->is_local)) {
+            return true;
+        }
+
+        $noticeListItem->showNotice();
+        $noticeListItem->showNoticeInfo();
+
+        $noticeUrl = $noticeListItem->notice->bestUrl();
+        $noticeUrl .= '#disqus_thread';
+
+        $noticeListItem->out->element(
+            'a', array('href' => $noticeUrl, 'class' => 'disqus_count'), 'Comments'
+        );
+
+        $noticeListItem->showNoticeOptions();
+        Event::handle('EndShowNoticeItem', array($noticeListItem));
+
+        return false;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Disqus',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Zach Copley',
+                            'homepage' => 'http://status.net/wiki/Plugin:Disqus',
+                            'rawdescription' =>
+                            _m('Use <a href="http://disqus.com/">Disqus</a>'.
+                               ' to add commenting to notice pages.'));
+        return true;
+    }
+}
diff --git a/plugins/Disqus/locale/Disqus.pot b/plugins/Disqus/locale/Disqus.pot
new file mode 100644 (file)
index 0000000..f3c3fa9
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: DisqusPlugin.php:170
+msgid ""
+"Use <a href=\"http://disqus.com/\">Disqus</a> to add commenting to notice "
+"pages."
+msgstr ""
diff --git a/plugins/DisqusPlugin.php b/plugins/DisqusPlugin.php
deleted file mode 100644 (file)
index eef4061..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to add Disqus commenting to notice pages
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Zach Copley <zach@status.net>
- * @copyright 2010 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- *
- * This plugin adds Disqus commenting to your notices. Enabling this
- * plugin will make each notice page display the Disqus widget, and
- * notice lists will display the number of commments each notice has.
- *
- * To use this plugin, you need to first register your site with Disqus
- * and get a Discus 'shortname' for it.
- *
- *    http://disqus.com
- *
- * To enable the plugin, put the following in you config.php:
- *
- * addPlugin(
- *   'Disqus', array(
- *       'shortname' => 'YOURSHORTNAME',
- *      'div_style' => 'width:675px; padding-top:10px; position:relative; float:left;'
- *   )
- * );
- *
- * NOTE: the 'div_style' in an optional parameter that passes in some
- * inline CSS when creating the Disqus widget. It's a shortcut to make
- * the widget look OK with the default StatusNet theme. If you leave
- * it out you'll have to edit your theme CSS files to make the widget
- * look good.  You can also control the way the widget looks by
- * adding style rules to your theme.
- *
- * See: http://help.disqus.com/entries/100878-css-customization
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Zach Copley <zach@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class DisqusPlugin extends Plugin
-{
-    public $shortname; // Required 'shortname' for actually triggering Disqus.
-    public $div_style; // Optional CSS chunk for the main <div>
-
-    function onEndShowContentBlock($action)
-    {
-        if (get_class($action) == 'ShownoticeAction') {
-
-            $attrs = array();
-            $attrs['id'] = 'disqus_thread';
-
-            if ($this->div_style) {
-                $attrs['style'] = $this->div_style;
-            }
-
-            $action->element('div', $attrs, null);
-
-            $script = <<<ENDOFSCRIPT
-var disqus_identifier = %d;
-  (function() {
-   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
-   dsq.src = 'http://%s.disqus.com/embed.js';
-   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
-  })();
-ENDOFSCRIPT;
-
-            $action->inlineScript(sprintf($script, $action->notice->id, $this->shortname));
-
-            $attrs = array();
-
-            $attrs['id'] = 'disqus_thread_footer';
-
-            if ($this->div_style) {
-                $attrs['style'] = $this->div_style;
-            }
-
-            $action->elementStart('div', $attrs);
-            $action->elementStart('noscript');
-
-            $action->raw('Please enable JavaScript to view the ');
-            $noscriptUrl = 'http://disqus.com/?ref_noscript=' . $this->shortname;
-            $action->element('a', array('href' => $noscriptUrl), 'comments powered by Disqus.');
-            $action->elementEnd('noscript');
-
-            $action->elementStart('a', array('href' => 'http://disqus.com', 'class' => 'dsq-brlink'));
-            $action->raw('blog comments powered by ');
-            $action->element('span', array('class' => 'logo-disqus'), 'Disqus');
-            $action->elementEnd('a');
-            $action->elementEnd('div');
-        }
-    }
-
-    function onEndShowScripts($action)
-    {
-        // fugly
-        $script = <<<ENDOFSCRIPT
-var disqus_shortname = '%s';
-(function () {
-  var s = document.createElement('script'); s.async = true;
-  s.src = 'http://disqus.com/forums/%s/count.js';
-  (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
-}());
-ENDOFSCRIPT;
-        $action->inlineScript(sprintf($script, $this->shortname, $this->shortname));
-
-        return true;
-    }
-
-    function onStartShowNoticeItem($noticeListItem)
-    {
-        if (empty($noticeListItem->notice->is_local)) {
-            return true;
-        }
-
-        $noticeListItem->showNotice();
-        $noticeListItem->showNoticeInfo();
-
-        $noticeUrl = $noticeListItem->notice->bestUrl();
-        $noticeUrl .= '#disqus_thread';
-
-        $noticeListItem->out->element(
-            'a', array('href' => $noticeUrl, 'class' => 'disqus_count'), 'Comments'
-        );
-
-        $noticeListItem->showNoticeOptions();
-        Event::handle('EndShowNoticeItem', array($noticeListItem));
-
-        return false;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Disqus',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Zach Copley',
-                            'homepage' => 'http://status.net/wiki/Plugin:Disqus',
-                            'rawdescription' =>
-                            _m('Use <a href="http://disqus.com/">Disqus</a>'.
-                               ' to add commenting to notice pages.'));
-        return true;
-    }
-}
diff --git a/plugins/Echo/EchoPlugin.php b/plugins/Echo/EchoPlugin.php
new file mode 100644 (file)
index 0000000..cd8d8c0
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to add Echo/JS-Kit commenting to notice pages
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Zach Copley <zach@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to use Echo (formerly JS-Kit)
+ *
+ * This plugin adds an Echo commenting widget to each notice page on
+ * your site.  To get it to work, first you'll have to sign up for Echo
+ * (a for-pay service) and register your site's URL.
+ *
+ *     http://aboutecho.com/
+ *
+ * Once you've done that it's pretty straight forward to turn the
+ * plugin on; just add this to your config.php:
+ *
+ *     addPlugin(
+ *        'Echo',
+ *        array('div_style' => 'width:675px; padding-top:10px; position:relative; float:left;')
+ *     );
+ *
+ * NOTE: the 'div_style' in an optional parameter that passes in some
+ * inline CSS when creating the Echo widget. It's a shortcut to make
+ * the widget look OK with the default StatusNet theme. If you leave
+ * it out you'll have to edit your theme CSS files to make the widget
+ * look good. You can also control the way the widget looks by
+ * adding style rules to your theme.
+ *
+ * See: http://wiki.js-kit.com/Skinning-Guide#UsingCSSnbsptocustomizefontsandcolors
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Zach Copley <zach@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+class EchoPlugin extends Plugin
+{
+    // NOTE: The Echo documentation says that this script will change on
+    // a per site basis, but I think that's incorrect. It always seems to
+    // be the same.
+    public $script = 'http://cdn.js-kit.com/scripts/comments.js';
+
+    function onEndShowScripts($action)
+    {
+        if (get_class($action) == 'ShownoticeAction') {
+            $action->script($this->script);
+        }
+
+        return true;
+    }
+
+    function onEndShowContentBlock($action)
+    {
+        if (get_class($action) == 'ShownoticeAction') {
+
+            $attrs = array();
+            $attrs['class'] = 'js-kit-comments';
+            $attrs['permalink'] = $action->notice->uri;
+            $attrs['uniq'] = $action->notice->id;
+
+            // NOTE: there are some other attributes that could be useful
+            // http://wiki.js-kit.com/Echo-Behavior
+
+            if (!empty($this->div_style)) {
+                $attrs['style'] = $this->div_style;
+            }
+
+            $action->element('div', $attrs, null);
+        }
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Echo',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Zach Copley',
+                            'homepage' => 'http://status.net/wiki/Plugin:Echo',
+                            'rawdescription' =>
+                            _m('Use <a href="http://aboutecho.com/">Echo</a>'.
+                               ' to add commenting to notice pages.'));
+        return true;
+    }
+}
diff --git a/plugins/Echo/locale/Echo.pot b/plugins/Echo/locale/Echo.pot
new file mode 100644 (file)
index 0000000..f034cf6
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: EchoPlugin.php:111
+msgid ""
+"Use <a href=\"http://aboutecho.com/\">Echo</a> to add commenting to notice "
+"pages."
+msgstr ""
diff --git a/plugins/EchoPlugin.php b/plugins/EchoPlugin.php
deleted file mode 100644 (file)
index 7b51866..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to add Echo/JS-Kit commenting to notice pages
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Zach Copley <zach@status.net>
- * @copyright 2010 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to use Echo (formerly JS-Kit)
- *
- * This plugin adds an Echo commenting widget to each notice page on
- * your site.  To get it to work, first you'll have to sign up for Echo
- * (a for-pay service) and register your site's URL.
- *
- *     http://aboutecho.com/
- *
- * Once you've done that it's pretty straight forward to turn the
- * plugin on; just add this to your config.php:
- *
- *     addPlugin(
- *        'Echo',
- *        array('div_style' => 'width:675px; padding-top:10px; position:relative; float:left;')
- *     );
- *
- * NOTE: the 'div_style' in an optional parameter that passes in some
- * inline CSS when creating the Echo widget. It's a shortcut to make
- * the widget look OK with the default StatusNet theme. If you leave
- * it out you'll have to edit your theme CSS files to make the widget
- * look good. You can also control the way the widget looks by
- * adding style rules to your theme.
- *
- * See: http://wiki.js-kit.com/Skinning-Guide#UsingCSSnbsptocustomizefontsandcolors
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Zach Copley <zach@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class EchoPlugin extends Plugin
-{
-    // NOTE: The Echo documentation says that this script will change on
-    // a per site basis, but I think that's incorrect. It always seems to
-    // be the same.
-    public $script = 'http://cdn.js-kit.com/scripts/comments.js';
-
-    function onEndShowScripts($action)
-    {
-        if (get_class($action) == 'ShownoticeAction') {
-            $action->script($this->script);
-        }
-
-        return true;
-    }
-
-    function onEndShowContentBlock($action)
-    {
-        if (get_class($action) == 'ShownoticeAction') {
-
-            $attrs = array();
-            $attrs['class'] = 'js-kit-comments';
-            $attrs['permalink'] = $action->notice->uri;
-            $attrs['uniq'] = $action->notice->id;
-
-            // NOTE: there are some other attributes that could be useful
-            // http://wiki.js-kit.com/Echo-Behavior
-
-            if (!empty($this->div_style)) {
-                $attrs['style'] = $this->div_style;
-            }
-
-            $action->element('div', $attrs, null);
-        }
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Echo',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Zach Copley',
-                            'homepage' => 'http://status.net/wiki/Plugin:Echo',
-                            'rawdescription' =>
-                            _m('Use <a href="http://aboutecho.com/">Echo</a>'.
-                               ' to add commenting to notice pages.'));
-        return true;
-    }
-}
index 4c018537b87f2b14f020ad45fd9ca667ad5e9a7e..689d6231d1e2a0ed3763d7bb53607fe179f530d0 100644 (file)
@@ -34,7 +34,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
 class EmailAuthenticationPlugin extends Plugin
 {
     //---interface implementation---//
-
     function onStartCheckPassword($nickname, $password, &$authenticatedUser)
     {
         if(strpos($nickname, '@'))
@@ -62,4 +61,3 @@ class EmailAuthenticationPlugin extends Plugin
         return true;
     }
 }
-
index d945e2537a111308680045a993a8b496f8a5345a..6d22b23668e2a2c2edbb6108d6e24ad0746ce03f 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: EmailAuthenticationPlugin.php:61
+#: EmailAuthenticationPlugin.php:60
 msgid ""
 "The Email Authentication plugin allows users to login using their email "
 "address."
index 14085cc5e39d3a5aecf1ef67c6f490df4353967d..56fc396d1708fd4a72eb5ad8a8c5be5f9efa239e 100644 (file)
@@ -80,5 +80,4 @@ class EnjitQueueHandler extends QueueHandler
 
         return $response->isOk();
     }
-
 }
index 2bc790d5a04999ae3395a76f1e44705ba7f0ebaa..bf4b59bba1f6684ef259d7c9f3892bb5d1dac08e 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+/**
+ * @todo Add header and documentation
+ */
 
 if (!defined('STATUSNET') && !defined('LACONICA')) {
     exit(1);
@@ -13,13 +16,11 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  */
 class FBC_XDReceiverAction extends Action
 {
-
     /**
      * Do we need to write to the database?
      *
      * @return boolean true
      */
-
     function isReadonly()
     {
         return true;
@@ -32,7 +33,6 @@ class FBC_XDReceiverAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         // Parent handling, including cache check
@@ -63,6 +63,4 @@ class FBC_XDReceiverAction extends Action
 
         $this->elementEnd('html');
     }
-
 }
-
index 8eba7fc13569bf9266e5f62dc73942a391479f83..f06dffaaabbd789a71b6f4ee535fc48ffba0cd85 100644 (file)
@@ -60,12 +60,10 @@ class FBConnectauthAction extends Action
         parent::handle($args);
 
         if (common_is_real_login()) {
-
             // User is already logged in.  Does she already have a linked Facebook acct?
             $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_CONNECT_SERVICE);
 
             if (!empty($flink)) {
-
                 // User already has a linked Facebook account and shouldn't be here
                 common_debug('Facebook Connect Plugin - ' .
                              'There is already a local user (' . $flink->user_id .
@@ -74,8 +72,7 @@ class FBConnectauthAction extends Action
                 // We don't want these cookies
                 getFacebook()->clear_cookie_state();
 
-                $this->clientError(_m('There is already a local user linked with this Facebook.'));
-
+                $this->clientError(_m('There is already a local user linked with this Facebook account.'));
             } else {
 
                 // User came from the Facebook connect settings tab, and
@@ -102,7 +99,7 @@ class FBConnectauthAction extends Action
             } else {
                 common_debug('Facebook Connect Plugin - ' .
                              print_r($this->args, true));
-                $this->showForm(_m('Something weird happened.'),
+                $this->showForm(_m('An unknown error has occured.'),
                                 $this->trimmed('newname'));
             }
         } else {
@@ -116,12 +113,14 @@ class FBConnectauthAction extends Action
             $this->element('div', array('class' => 'error'), $this->error);
         } else {
             $this->element('div', 'instructions',
+                           // TRANS: %s is the site name.
                            sprintf(_m('This is the first time you\'ve logged into %s so we must connect your Facebook to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name')));
         }
     }
 
     function title()
     {
+        // TRANS: Page title.
         return _m('Facebook Account Setup');
     }
 
@@ -155,6 +154,7 @@ class FBConnectauthAction extends Action
                                           'class' => 'form_settings',
                                           'action' => common_local_url('FBConnectAuth')));
         $this->elementStart('fieldset', array('id' => 'settings_facebook_connect_options'));
+        // TRANS: Legend.
         $this->element('legend', null, _m('Connection options'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
@@ -164,7 +164,8 @@ class FBConnectauthAction extends Action
                                       'name' => 'license',
                                       'value' => 'true'));
         $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
-        $message = _('My text and files are available under %s ' .
+        // TRANS: %s is the name of the license used by the user for their status updates.
+        $message = _m('My text and files are available under %s ' .
                      'except this private data: password, ' .
                      'email address, IM address, and phone number.');
         $link = '<a href="' .
@@ -180,33 +181,39 @@ class FBConnectauthAction extends Action
         $this->elementStart('fieldset');
         $this->hidden('token', common_session_token());
         $this->element('legend', null,
+                       // TRANS: Legend.
                        _m('Create new account'));
         $this->element('p', null,
                        _m('Create a new user with this nickname.'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
+        // TRANS: Field label.
         $this->input('newname', _m('New nickname'),
                      ($this->username) ? $this->username : '',
                      _m('1-64 lowercase letters or numbers, no punctuation or spaces'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
-        $this->submit('create', _m('Create'));
+        // TRANS: Submit button.
+        $this->submit('create', _m('BUTTON','Create'));
         $this->elementEnd('fieldset');
 
         $this->elementStart('fieldset');
+        // TRANS: Legend.
         $this->element('legend', null,
                        _m('Connect existing account'));
         $this->element('p', null,
                        _m('If you already have an account, login with your username and password to connect it to your Facebook.'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
+        // TRANS: Field label.
         $this->input('nickname', _m('Existing nickname'));
         $this->elementEnd('li');
         $this->elementStart('li');
         $this->password('password', _m('Password'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
-        $this->submit('connect', _m('Connect'));
+        // TRANS: Submit button.
+        $this->submit('connect', _m('BUTTON','Connect'));
         $this->elementEnd('fieldset');
 
         $this->elementEnd('fieldset');
@@ -222,6 +229,7 @@ class FBConnectauthAction extends Action
     function createNewUser()
     {
         if (common_config('site', 'closed')) {
+            // TRANS: Client error trying to register with registrations not allowed.
             $this->clientError(_m('Registration not allowed.'));
             return;
         }
@@ -231,6 +239,7 @@ class FBConnectauthAction extends Action
         if (common_config('site', 'inviteonly')) {
             $code = $_SESSION['invitecode'];
             if (empty($code)) {
+                // TRANS: Client error trying to register with registrations 'invite only'.
                 $this->clientError(_m('Registration not allowed.'));
                 return;
             }
@@ -238,6 +247,7 @@ class FBConnectauthAction extends Action
             $invite = Invitation::staticGet($code);
 
             if (empty($invite)) {
+                // TRANS: Client error trying to register with an invalid invitation code.
                 $this->clientError(_m('Not a valid invitation code.'));
                 return;
             }
@@ -422,8 +432,9 @@ class FBConnectauthAction extends Action
         return null;
     }
 
-     // Given a string, try to make it work as a nickname
-
+     /**
+      * Given a string, try to make it work as a nickname
+      */
      function nicknamize($str)
      {
          $str = preg_replace('/\W/', '', $str);
@@ -467,5 +478,4 @@ class FBConnectauthAction extends Action
             return null;
         }
     }
-
 }
index 20c409f3ea4a28308423fa25557959f344e38490..8345532dbd66e9d898825197e91b313faa6a2629 100644 (file)
@@ -38,6 +38,7 @@ class FBConnectLoginAction extends Action
 
     function getInstructions()
     {
+        // TRANS: Instructions.
         return _m('Login with your Facebook Account');
     }
 
@@ -52,6 +53,7 @@ class FBConnectLoginAction extends Action
 
     function title()
     {
+        // TRANS: Page title.
         return _m('Facebook Login');
     }
 
index 590dffd8a998f9c2534bb40e8c5247ff21bce375..701994d0d066a2f92f4aa398a013f0712edae04f 100644 (file)
@@ -42,7 +42,6 @@ require_once INSTALLDIR.'/lib/connectsettingsaction.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class FBConnectSettingsAction extends ConnectSettingsAction
 {
     /**
@@ -50,9 +49,9 @@ class FBConnectSettingsAction extends ConnectSettingsAction
      *
      * @return string Title of the page
      */
-
     function title()
     {
+        // TRANS: Page title.
         return _m('Facebook Connect Settings');
     }
 
@@ -61,9 +60,9 @@ class FBConnectSettingsAction extends ConnectSettingsAction
      *
      * @return instructions for use
      */
-
     function getInstructions()
     {
+       // TRANS: Instructions.
         return _m('Manage how your account connects to Facebook');
     }
 
@@ -74,7 +73,6 @@ class FBConnectSettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function showContent()
     {
         $user = common_current_user();
@@ -116,17 +114,21 @@ class FBConnectSettingsAction extends ConnectSettingsAction
 
             $this->elementStart('fieldset');
 
+            // TRANS: Legend.
             $this->element('legend', null, _m('Disconnect my account from Facebook'));
 
             if (!$user->password) {
 
                 $this->elementStart('p', array('class' => 'form_guide'));
+                // @todo FIXME: Bad i18n. Patchwork message in three parts.
+                // TRANS: Followed by a link containing text "set a password".
                 $this->text(_m('Disconnecting your Faceboook ' .
                                'would make it impossible to log in! Please '));
                 $this->element('a',
                     array('href' => common_local_url('passwordsettings')),
+                        // TRANS: Preceded by "Please " and followed by " first."
                         _m('set a password'));
-
+                // TRANS: Preceded by "Please set a password".
                 $this->text(_m(' first.'));
                 $this->elementEnd('p');
             } else {
@@ -139,7 +141,8 @@ class FBConnectSettingsAction extends ConnectSettingsAction
                 $this->element('p', 'instructions',
                     sprintf($note, $site, $site));
 
-                $this->submit('disconnect', _m('Disconnect'));
+                // TRANS: Submit button.
+                $this->submit('disconnect', _m('BUTTON','Disconnect'));
             }
 
             $this->elementEnd('fieldset');
@@ -155,7 +158,6 @@ class FBConnectSettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function handlePost()
     {
         // CSRF protection
@@ -197,7 +199,5 @@ class FBConnectSettingsAction extends ConnectSettingsAction
             $this->showForm(_m('Not sure what you\'re trying to do.'));
             return;
         }
-
     }
-
 }
index 19989a952e6e5757b1b1ab94f9d9acbf5457d8c8..798009817c9805e8e7f1ca510d91f3e4eaf5b0ae 100644 (file)
@@ -45,10 +45,8 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class FacebookPlugin extends Plugin
 {
-
     const VERSION = STATUSNET_VERSION;
 
     /**
@@ -59,7 +57,6 @@ class FacebookPlugin extends Plugin
     {
         // Allow the key and secret to be passed in
         // Control panel will override
-
         if (isset($this->apikey)) {
             $key = common_config('facebook', 'apikey');
             if (empty($key)) {
@@ -85,7 +82,6 @@ class FacebookPlugin extends Plugin
      *
      * @return boolean result
      */
-
     static function hasKeys()
     {
         $apiKey    = common_config('facebook', 'apikey');
@@ -107,13 +103,11 @@ class FacebookPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onStartInitializeRouter($m)
     {
         $m->connect('admin/facebook', array('action' => 'facebookadminpanel'));
 
         if (self::hasKeys()) {
-
             // Facebook App stuff
 
             $m->connect('facebook/app', array('action' => 'facebookhome'));
@@ -142,7 +136,6 @@ class FacebookPlugin extends Plugin
      * @return boolean hook return
      *
      */
-
     function onAutoload($cls)
     {
         switch ($cls) {
@@ -183,7 +176,6 @@ class FacebookPlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onEndAdminPanelNav($nav)
     {
         if (AdminPanelAction::canAdmin('facebook')) {
@@ -192,7 +184,9 @@ class FacebookPlugin extends Plugin
 
             $nav->out->menuItem(
                 common_local_url('facebookadminpanel'),
-                _m('Facebook'),
+                // TRANS: Menu item.
+                _m('MENU','Facebook'),
+                // TRANS: Tooltip for menu item "Facebook".
                 _m('Facebook integration configuration'),
                 $action_name == 'facebookadminpanel',
                 'nav_facebook_admin_panel'
@@ -210,12 +204,9 @@ class FacebookPlugin extends Plugin
      *
      * @return void
      */
-
     function onStartShowHTML($action)
     {
-
         if ($this->reqFbScripts($action)) {
-
             // XXX: Horrible hack to make Safari, FF2, and Chrome work with
             // Facebook Connect. These browser cannot use Facebook's
             // DOM parsing routines unless the mime type of the page is
@@ -238,9 +229,7 @@ class FacebookPlugin extends Plugin
                       'lang'     => $language));
 
             return false;
-
         } else {
-
             return true;
         }
     }
@@ -255,7 +244,6 @@ class FacebookPlugin extends Plugin
      * @return void
      *
      */
-
     function onEndShowScripts($action)
     {
         if ($this->reqFbScripts($action)) {
@@ -306,12 +294,10 @@ class FacebookPlugin extends Plugin
             $js = sprintf($js, $apikey, $login_url, $logout_url);
 
             // Compress the bugger down a bit
-
             $js = str_replace('  ', '', $js);
 
             $action->inlineScript($js);
         }
-
     }
 
     /**
@@ -323,7 +309,6 @@ class FacebookPlugin extends Plugin
      * @return void
      *
      */
-
     function onEndShowFooter($action)
     {
         if ($this->reqFbScripts($action)) {
@@ -340,7 +325,6 @@ class FacebookPlugin extends Plugin
      * @return void
      *
      */
-
     function onEndShowStatusNetStyles($action)
     {
         if ($this->reqFbScripts($action)) {
@@ -357,7 +341,6 @@ class FacebookPlugin extends Plugin
      *
      * @return boolean true
      */
-
     function reqFbScripts($action)
     {
         if (!self::hasKeys()) {
@@ -365,7 +348,6 @@ class FacebookPlugin extends Plugin
         }
 
         // If you're logged in w/FB Connect, you always need the FB stuff
-
         $fbuid = $this->loggedIn();
 
         if (!empty($fbuid)) {
@@ -373,7 +355,6 @@ class FacebookPlugin extends Plugin
         }
 
         // List of actions that require FB stuff
-
         $needy = array('FBConnectLoginAction',
                        'FBConnectauthAction',
                        'FBConnectSettingsAction');
@@ -383,7 +364,6 @@ class FacebookPlugin extends Plugin
         }
 
         return false;
-
     }
 
     /**
@@ -391,7 +371,6 @@ class FacebookPlugin extends Plugin
      *
      * @return mixed $fbuid the Facebook ID of the logged in user, or null
      */
-
     function loggedIn()
     {
         $user = common_current_user();
@@ -403,12 +382,9 @@ class FacebookPlugin extends Plugin
             $fbuid = 0;
 
             if (!empty($flink)) {
-
                 try {
-
                     $facebook = getFacebook();
                     $fbuid    = $facebook->get_loggedin_user();
-
                 } catch (Exception $e) {
                     common_log(LOG_WARNING, 'Facebook Connect Plugin - ' .
                         'Problem getting Facebook user: ' .
@@ -432,17 +408,14 @@ class FacebookPlugin extends Plugin
      * @return void
      *
      */
-
     function onStartPrimaryNav($action)
     {
         if (self::hasKeys()) {
             $user = common_current_user();
             if (!empty($user)) {
-
                 $fbuid = $this->loggedIn();
 
                 if (!empty($fbuid)) {
-
                     /* Default FB silhouette pic for FB users who haven't
                        uploaded a profile pic yet. */
 
@@ -455,7 +428,7 @@ class FacebookPlugin extends Plugin
 
                     $action->element('img', array('id' => 'fbc_profile-pic',
                         'src' => (!empty($url)) ? $url : $silhouetteUrl,
-                        'alt' => 'Facebook Connect User',
+                        'alt' => _m('Facebook Connect User'),
                         'width' => '16'), '');
 
                     $iconurl =  common_path('plugins/Facebook/fbfavicon.ico');
@@ -477,18 +450,20 @@ class FacebookPlugin extends Plugin
      *
      * @return void
      */
-
     function onEndLoginGroupNav(&$action)
     {
         if (self::hasKeys()) {
-
             $action_name = $action->trimmed('action');
 
             $action->menuItem(common_local_url('FBConnectLogin'),
-                                               _m('Facebook'),
+                                               // @todo CHECKME: Should be 'Facebook Login'?
+                                               // TRANS: Menu item.
+                                               _m('MENU','Facebook'),
+                                               // TRANS: Tooltip for menu item "Facebook".
                                                _m('Login or register using Facebook'),
                                                'FBConnectLogin' === $action_name);
         }
+
         return true;
     }
 
@@ -499,18 +474,20 @@ class FacebookPlugin extends Plugin
      *
      * @return void
      */
-
     function onEndConnectSettingsNav(&$action)
     {
         if (self::hasKeys()) {
-
             $action_name = $action->trimmed('action');
 
             $action->menuItem(common_local_url('FBConnectSettings'),
-                              _m('Facebook'),
+                              // @todo CHECKME: Should be 'Facebook Connect'? 
+                              // TRANS: Menu item tab.
+                              _m('MENU','Facebook'),
+                              // TRANS: Tooltip for menu item "Facebook".
                               _m('Facebook Connect Settings'),
                               $action_name === 'FBConnectSettings');
         }
+
         return true;
     }
 
@@ -521,7 +498,6 @@ class FacebookPlugin extends Plugin
      *
      * @return void
      */
-
     function onStartLogout($action)
     {
         if (self::hasKeys()) {
@@ -550,14 +526,12 @@ class FacebookPlugin extends Plugin
      *
      * @return string $url the url for the user's Facebook avatar
      */
-
     function getProfilePicURL($fbuid)
     {
         $facebook = getFacebook();
         $url      = null;
 
         try {
-
             $fqry = 'SELECT pic_square FROM user WHERE uid = %s';
 
             $result = $facebook->api_client->fql_query(sprintf($fqry, $fbuid));
@@ -582,7 +556,6 @@ class FacebookPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onStartEnqueueNotice($notice, &$transports)
     {
         if (self::hasKeys() && $notice->isLocal()) {
@@ -613,14 +586,14 @@ class FacebookPlugin extends Plugin
             'version' => self::VERSION,
             'author' => 'Zach Copley',
             'homepage' => 'http://status.net/wiki/Plugin:Facebook',
+            // TRANS: Plugin description.
             'rawdescription' => _m(
-                'The Facebook plugin allows you to integrate ' .
-                'your StatusNet instance with ' .
+                'The Facebook plugin allows integrating ' .
+                'StatusNet instances with ' .
                 '<a href="http://facebook.com/">Facebook</a> ' .
                 'and Facebook Connect.'
             )
         );
         return true;
     }
-
 }
index f65b97c865587d10b675be04b558344b8fa3a936..4c15fc03978ac6ece1ef1d05ad6807df4c4c785e 100644 (file)
@@ -36,7 +36,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebooknoticeform.php';
 
 class FacebookAction extends Action
 {
-
     var $facebook = null;
     var $fbuid    = null;
     var $flink    = null;
@@ -102,7 +101,6 @@ class FacebookAction extends Action
      *
      * @return void
      */
-
     function startHTML($type=null)
     {
         $this->showStylesheets();
@@ -143,7 +141,6 @@ class FacebookAction extends Action
 
     function showHead($error, $success)
     {
-
         if ($error) {
             $this->element("h1", null, $error);
         }
@@ -168,7 +165,10 @@ class FacebookAction extends Action
         $this->elementStart('li', array('class' =>
             ($this->action == 'facebookhome') ? 'current' : 'facebook_home'));
         $this->element('a',
-            array('href' => 'index.php', 'title' => _m('Home')), _m('Home'));
+            // TRANS: Link description for 'Home' link that leads to a start page.
+            array('href' => 'index.php', 'title' => _m('MENU','Home')),
+            // TRANS: Tooltip for 'Home' link that leads to a start page.
+            _m('Home'));
         $this->elementEnd('li');
 
         if (common_config('invite', 'enabled')) {
@@ -176,7 +176,10 @@ class FacebookAction extends Action
                 array('class' =>
                     ($this->action == 'facebookinvite') ? 'current' : 'facebook_invite'));
             $this->element('a',
-                array('href' => 'invite.php', 'title' => _m('Invite')), _m('Invite'));
+                // TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
+                array('href' => 'invite.php', 'title' => _m('MENU','Invite')),
+                // TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
+                _m('Invite'));
             $this->elementEnd('li');
         }
 
@@ -185,7 +188,10 @@ class FacebookAction extends Action
                 ($this->action == 'facebooksettings') ? 'current' : 'facebook_settings'));
         $this->element('a',
             array('href' => 'settings.php',
-                'title' => _m('Settings')), _m('Settings'));
+                // TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
+                'title' => _m('MENU','Settings')),
+                // TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
+                _m('Settings'));
         $this->elementEnd('li');
 
         $this->elementEnd('ul');
@@ -219,22 +225,22 @@ class FacebookAction extends Action
 
     function showInstructions()
     {
-
         $this->elementStart('div', array('class' => 'facebook_guide'));
 
         $this->elementStart('dl', array('class' => 'system_notice'));
         $this->element('dt', null, 'Page Notice');
 
         $loginmsg_part1 = _m('To use the %s Facebook Application you need to login ' .
-            'with your username and password. Don\'t have a username yet? ');
+            'with your username and password. Don\'t have a username yet?');
         $loginmsg_part2 = _m(' a new account.');
 
         $this->elementStart('dd');
         $this->elementStart('p');
         $this->text(sprintf($loginmsg_part1, common_config('site', 'name')));
+        // @todo FIXME: Bad i18n. Patchwork message in two parts.
         $this->element('a',
             array('href' => common_local_url('register')), _m('Register'));
-        $this->text($loginmsg_part2);
+        $this->text( " " . $loginmsg_part2);
         $this->elementEnd('p');
         $this->elementEnd('dd');
 
@@ -272,7 +278,8 @@ class FacebookAction extends Action
         $this->elementEnd('li');
         $this->elementEnd('ul');
 
-        $this->submit('submit', _m('Login'));
+        // TRANS: Login button.
+        $this->submit('submit', _m('BUTTON','Login'));
         $this->elementEnd('fieldset');
         $this->elementEnd('form');
 
@@ -283,7 +290,6 @@ class FacebookAction extends Action
 
         $this->elementEnd('div');
         $this->elementEnd('div');
-
     }
 
     function updateProfileBox($notice)
@@ -356,7 +362,6 @@ class FacebookAction extends Action
 
     function saveNewNotice()
     {
-
         $user = $this->flink->getUser();
 
         $content = $this->trimmed('status_textarea');
@@ -368,6 +373,7 @@ class FacebookAction extends Action
             $content_shortened = common_shorten_links($content);
 
             if (Notice::contentTooLong($content_shortened)) {
+                // @todo FIXME: i18n: Needs plural.
                 $this->showPage(sprintf(_m('That\'s too long. Max notice size is %d chars.'),
                                         Notice::maxContent()));
                 return;
@@ -379,9 +385,7 @@ class FacebookAction extends Action
         $cmd = $inter->handle_command($user, $content_shortened);
 
         if ($cmd) {
-
             // XXX fix this
-
             $cmd->execute(new WebChannel());
             return;
         }
@@ -398,12 +402,10 @@ class FacebookAction extends Action
         }
 
     }
-
 }
 
 class FacebookNoticeList extends NoticeList
 {
-
     /**
      * constructor
      *
@@ -423,7 +425,6 @@ class FacebookNoticeList extends NoticeList
      *
      * @return int count of notices listed.
      */
-
     function show()
     {
         $this->out->elementStart('div', array('id' =>'notices_primary'));
@@ -459,17 +460,14 @@ class FacebookNoticeList extends NoticeList
      * @return FacebookNoticeListItem a list item for displaying the notice
      * formatted for display in the Facebook App.
      */
-
     function newListItem($notice)
     {
         return new FacebookNoticeListItem($notice, $this);
     }
-
 }
 
 class FacebookNoticeListItem extends NoticeListItem
 {
-
     /**
      * constructor
      *
@@ -477,7 +475,6 @@ class FacebookNoticeListItem extends NoticeListItem
      *
      * @param Notice $notice The notice we'll display
      */
-
     function __construct($notice, $out=null)
     {
         parent::__construct($notice, $out);
@@ -491,7 +488,6 @@ class FacebookNoticeListItem extends NoticeListItem
      *
      * @return void
      */
-
     function show()
     {
         $this->showStart();
@@ -502,12 +498,10 @@ class FacebookNoticeListItem extends NoticeListItem
 
         $this->showEnd();
     }
-
 }
 
 class FacebookProfileBoxNotice extends FacebookNoticeListItem
 {
-
     /**
      * constructor
      *
@@ -515,7 +509,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem
      *
      * @param Notice $notice The notice we'll display
      */
-
     function __construct($notice, $out=null)
     {
         parent::__construct($notice, $out);
@@ -527,7 +520,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem
      *
      * @return void
      */
-
     function show()
     {
         $this->showNotice();
@@ -537,7 +529,6 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem
 
     function showAppLink()
     {
-
         $this->facebook = getFacebook();
 
         $app_props = $this->facebook->api_client->Admin_getAppProperties(
@@ -551,5 +542,4 @@ class FacebookProfileBoxNotice extends FacebookNoticeListItem
         $this->out->text($this->app_name);
         $this->out->elementEnd('a');
     }
-
 }
index ae1c7302f970254be27bc4a5064a005c71b04791..ae26c7d3e8fa5ef6e14f460b28f4d3f25b79471f 100644 (file)
@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class FacebookadminpanelAction extends AdminPanelAction
 {
     /**
@@ -48,7 +47,6 @@ class FacebookadminpanelAction extends AdminPanelAction
      *
      * @return string page title
      */
-
     function title()
     {
         return _m('Facebook');
@@ -59,7 +57,6 @@ class FacebookadminpanelAction extends AdminPanelAction
      *
      * @return string instructions
      */
-
     function getInstructions()
     {
         return _m('Facebook integration settings');
@@ -70,7 +67,6 @@ class FacebookadminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function showForm()
     {
         $form = new FacebookAdminPanelForm($this);
@@ -83,7 +79,6 @@ class FacebookadminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function saveSettings()
     {
         static $settings = array(
@@ -100,7 +95,6 @@ class FacebookadminpanelAction extends AdminPanelAction
         }
 
         // This throws an exception on validation errors
-
         $this->validate($values);
 
         // assert(all values are valid);
@@ -145,7 +139,6 @@ class FacebookAdminPanelForm extends AdminForm
      *
      * @return int ID of the form
      */
-
     function id()
     {
         return 'facebookadminpanel';
@@ -156,7 +149,6 @@ class FacebookAdminPanelForm extends AdminForm
      *
      * @return string class of the form
      */
-
     function formClass()
     {
         return 'form_settings';
@@ -167,7 +159,6 @@ class FacebookAdminPanelForm extends AdminForm
      *
      * @return string URL of the action
      */
-
     function action()
     {
         return common_local_url('facebookadminpanel');
@@ -178,7 +169,6 @@ class FacebookAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart(
@@ -215,9 +205,8 @@ class FacebookAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formActions()
     {
-        $this->out->submit('submit', _('Save'), 'submit', null, _('Save Facebook settings'));
+        $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Facebook settings'));
     }
 }
index 60782f63c939c29f43c31ce4fca8cfa3c84f9021..6090f988c536a5181f8c42d679ff8b3fc5b076e9 100644 (file)
@@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
 
 class FacebookhomeAction extends FacebookAction
 {
-
     var $page = null;
 
     function prepare($argarray)
@@ -54,7 +53,6 @@ class FacebookhomeAction extends FacebookAction
         }
 
         if ($this->flink) {
-
             $this->user = $this->flink->getUser();
 
             // If this is the first time the user has started the app
@@ -82,18 +80,14 @@ class FacebookhomeAction extends FacebookAction
             // Facebook status update permission? Then show the main page
             // of the app
             $this->showPage();
-
         } else {
-
             // User hasn't authenticated yet, prompt for creds
             $this->login();
         }
-
     }
 
     function login()
     {
-
         $this->showStylesheets();
 
         $nickname = common_canonical_nickname($this->trimmed('nickname'));
@@ -102,13 +96,11 @@ class FacebookhomeAction extends FacebookAction
         $msg = null;
 
         if ($nickname) {
-
             if (common_check_user($nickname, $password)) {
-
                 $user = User::staticGet('nickname', $nickname);
 
                 if (!$user) {
-                    $this->showLoginForm(_m("Server error - couldn't get user!"));
+                    $this->showLoginForm(_m("Server error: Couldn't get user!"));
                 }
 
                 $flink = DB_DataObject::factory('foreign_link');
@@ -126,7 +118,6 @@ class FacebookhomeAction extends FacebookAction
 
                 $this->getUpdatePermission();
                 return;
-
             } else {
                 $msg = _m('Incorrect username or password.');
             }
@@ -134,7 +125,6 @@ class FacebookhomeAction extends FacebookAction
 
         $this->showLoginForm($msg);
         $this->showFooter();
-
     }
 
     function setDefaults()
@@ -155,8 +145,15 @@ class FacebookhomeAction extends FacebookAction
     function title()
     {
         if ($this->page > 1) {
-            return sprintf(_m("%s and friends, page %d"), $this->user->nickname, $this->page);
+            // @todo FIXME: Core should have methods to get "Full name (nickname)" in a localised form
+            // so that this can be used consistenly throughout StatusNet without having to implement it
+           // over and over..
+            // TRANS: Page title.
+            // TRANS: %1$s is a user nickname, %2$s is a page number.
+            return sprintf(_m("%1$s and friends, page %2$d"), $this->user->nickname, $this->page);
         } else {
+            // TRANS: Page title.
+            // TRANS: %s is a user nickname
             return sprintf(_m("%s and friends"), $this->user->nickname);
         }
     }
@@ -175,17 +172,16 @@ class FacebookhomeAction extends FacebookAction
 
     function showNoticeList($notice)
     {
-
         $nl = new NoticeList($notice, $this);
         return $nl->show();
     }
 
     function getUpdatePermission() {
-
         $this->showStylesheets();
 
         $this->elementStart('div', array('class' => 'facebook_guide'));
 
+        // TRANS: Instructions. %s is the application name.
         $instructions = sprintf(_m('If you would like the %s app to automatically update ' .
             'your Facebook status with your latest notice, you need ' .
             'to give it permission.'), $this->app_name);
@@ -209,6 +205,7 @@ class FacebookhomeAction extends FacebookAction
             '&next_cancel=' . $next . '&submit=skip';
 
         $this->elementStart('span', array('class' => 'facebook-button'));
+        // @todo FIXME: sprintf not needed here?
         $this->element('a', array('href' => $auth_url),
             sprintf(_m('Okay, do it!'), $this->app_name));
         $this->elementEnd('span');
@@ -216,13 +213,13 @@ class FacebookhomeAction extends FacebookAction
         $this->elementEnd('li');
 
         $this->elementStart('li', array('id' => 'fb-permissions-item'));
-        $this->submit('skip', _m('Skip'));
+        // TRANS: Button text. Clicking the button will skip updating Facebook permissions.
+        $this->submit('skip', _m('BUTTON','Skip'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
 
         $this->elementEnd('form');
         $this->elementEnd('div');
-
     }
 
     /**
@@ -238,7 +235,6 @@ class FacebookhomeAction extends FacebookAction
      */
     function pagination($have_before, $have_after, $page, $action, $args=null)
     {
-
         // Does a little before-after block for next/prev page
 
         // XXX: Fix so this uses common_local_url() if possible.
@@ -254,6 +250,7 @@ class FacebookhomeAction extends FacebookAction
             $newargs = $args ? array_merge($args, $pargs) : $pargs;
             $this->elementStart('li', array('class' => 'nav_prev'));
             $this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'prev'),
+                           // TRANS: Pagination link.
                            _m('After'));
             $this->elementEnd('li');
         }
@@ -262,6 +259,7 @@ class FacebookhomeAction extends FacebookAction
             $newargs = $args ? array_merge($args, $pargs) : $pargs;
             $this->elementStart('li', array('class' => 'nav_next'));
             $this->element('a', array('href' => "$action?page=$newargs[page]", 'rel' => 'next'),
+                           // TRANS: Pagination link.
                            _m('Before'));
             $this->elementEnd('li');
         }
@@ -271,5 +269,4 @@ class FacebookhomeAction extends FacebookAction
             $this->elementEnd('dl');
         }
     }
-
 }
index e02c7bf3ed3f4ebedb00f3ab814e1c71a27e412c..a50eace12f7a13796c0289850dc2abe5dc72c5de 100644 (file)
@@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
 
 class FacebookinviteAction extends FacebookAction
 {
-
     function handle($args)
     {
         parent::handle($args);
@@ -41,7 +40,6 @@ class FacebookinviteAction extends FacebookAction
      *
      * @return void
      */
-
     function showForm($error=null)
     {
         $this->error = $error;
@@ -56,7 +54,6 @@ class FacebookinviteAction extends FacebookAction
      *
      * @return void
      */
-
     function showContent()
     {
         if ($this->arg('ids')) {
@@ -68,9 +65,10 @@ class FacebookinviteAction extends FacebookAction
 
     function showSuccessContent()
     {
-
-        $this->element('h2', null, sprintf(_m('Thanks for inviting your friends to use %s'),
+        // TRANS: %s is the name of the site.
+        $this->element('h2', null, sprintf(_m('Thanks for inviting your friends to use %s.'),
             common_config('site', 'name')));
+        // TRANS: Followed by an unordered list with invited friends.
         $this->element('p', null, _m('Invitations have been sent to the following users:'));
 
         $friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to access the list?
@@ -85,8 +83,7 @@ class FacebookinviteAction extends FacebookAction
             $this->elementEnd('li');
         }
 
-        $this->elementEnd("ul");
-
+        $this->elementEnd('ul');
     }
 
     function showFormContent()
@@ -100,6 +97,7 @@ class FacebookinviteAction extends FacebookAction
                                                       'type' => common_config('site', 'name'),
                                                       'content' => $content));
         $this->hidden('invite', 'true');
+        // TRANS: %s is the name of the site.
         $actiontext = sprintf(_m('Invite your friends to use %s'), common_config('site', 'name'));
 
         $multi_params = array('showborder' => 'false');
@@ -122,6 +120,7 @@ class FacebookinviteAction extends FacebookAction
 
         if ($exclude_ids) {
 
+            // TRANS: %s is the name of the site.
             $this->element('h2', null, sprintf(_m('Friends already using %s:'),
                 common_config('site', 'name')));
             $this->elementStart('ul', array('id' => 'facebook-friends'));
@@ -140,7 +139,7 @@ class FacebookinviteAction extends FacebookAction
 
     function title()
     {
+        // TRANS: Page title.
         return sprintf(_m('Send invitations'));
     }
-
 }
index 7a173ddaebf3a2c0f62248298d9dadce4f50baa9..1961be57b6f4152cfd3dfad5b713bb2ae43faa4d 100644 (file)
@@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
 
 class FacebookinviteAction extends FacebookAction
 {
-
     function handle($args)
     {
         parent::handle($args);
@@ -37,6 +36,7 @@ class FacebookinviteAction extends FacebookAction
                 $this->facebook->api_client->data_getUserPreference(
                      FACEBOOK_PROMPTED_UPDATE_PREF) == 'true') {
 
+                // @todo FIXME: Missing i18n?
                 echo '<h1>REDIRECT TO HOME</h1>';
             }
         } else {
@@ -46,7 +46,6 @@ class FacebookinviteAction extends FacebookAction
 
     function showContent()
     {
-
         // If the user has opted not to initially allow the app to have
         // Facebook status update permission, store that preference. Only
         // promt the user the first time she uses the app
@@ -56,7 +55,6 @@ class FacebookinviteAction extends FacebookAction
         }
 
         if ($this->flink) {
-
             $this->user = $this->flink->getUser();
 
             // If this is the first time the user has started the app
@@ -69,7 +67,6 @@ class FacebookinviteAction extends FacebookAction
                      return;
                  }
              }
-
         } else {
             $this->showLoginForm();
         }
@@ -88,6 +85,8 @@ class FacebookinviteAction extends FacebookAction
 
     function title()
     {
+        // @todo FIXME: Give a more precise description? Suggestion: "Login with Facebook Connect"
+        // TRANS: Page title.
         return sprintf(_m('Login'));
     }
 
@@ -95,5 +94,4 @@ class FacebookinviteAction extends FacebookAction
     {
 
     }
-
 }
index 5989147f49d457cd184f442be17f426cb3d121e1..d52222c933bdb7d273428de7fdd9a83675b4e288 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
- * Form for posting a notice from within the Facebook App. 
+ * Form for posting a notice from within the Facebook App.
  *
  * This is a stripped down version of the normal NoticeForm (sans
  * location stuff and media upload stuff). I'm not sure we can share the
@@ -53,31 +53,26 @@ require_once INSTALLDIR . '/lib/form.php';
  *
  * @see      HTMLOutputter
  */
-
 class FacebookNoticeForm extends Form
 {
     /**
      * Current action, used for returning to this page.
      */
-
     var $action = null;
 
     /**
      * Pre-filled content of the form
      */
-
     var $content = null;
 
     /**
      * The current user
      */
-
     var $user = null;
 
     /**
      * The notice being replied to
      */
-
     var $inreplyto = null;
 
     /**
@@ -87,7 +82,6 @@ class FacebookNoticeForm extends Form
      * @param string        $action  action to return to, if any
      * @param string        $content content to pre-fill
      */
-
     function __construct($out=null, $action=null, $content=null, $post_action=null, $user=null, $inreplyto=null)
     {
         parent::__construct($out);
@@ -102,7 +96,7 @@ class FacebookNoticeForm extends Form
         } else {
             $this->user = common_current_user();
         }
-        
+
         // Note: Facebook doesn't allow multipart/form-data posting to
         // canvas pages, so don't try to set it--no file uploads, at
         // least not this way.  It can be done using multiple servers
@@ -114,7 +108,6 @@ class FacebookNoticeForm extends Form
      *
      * @return string ID of the form
      */
-
     function id()
     {
         return 'form_notice';
@@ -125,7 +118,6 @@ class FacebookNoticeForm extends Form
      *
      * @return string class of the form
      */
-
     function formClass()
     {
         return 'form_notice';
@@ -136,7 +128,6 @@ class FacebookNoticeForm extends Form
      *
      * @return string URL of the action
      */
-
     function action()
     {
         return $this->post_action;
@@ -149,7 +140,8 @@ class FacebookNoticeForm extends Form
      */
     function formLegend()
     {
-        $this->out->element('legend', null, _('Send a notice'));
+        // TRANS: Legend.
+        $this->out->element('legend', null, _m('Send a notice'));
     }
 
     /**
@@ -157,12 +149,12 @@ class FacebookNoticeForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
         if (Event::handle('StartShowNoticeFormData', array($this))) {
             $this->out->element('label', array('for' => 'notice_data-text'),
-                                sprintf(_('What\'s up, %s?'), $this->user->nickname));
+                                // TRANS: Field label.
+                                sprintf(_m('What\'s up, %s?'), $this->user->nickname));
             // XXX: vary by defined max size
             $this->out->element('textarea', array('id' => 'notice_data-text',
                                                   'cols' => 35,
@@ -174,7 +166,7 @@ class FacebookNoticeForm extends Form
 
             if ($contentLimit > 0) {
                 $this->out->elementStart('dl', 'form_note');
-                $this->out->element('dt', null, _('Available characters'));
+                $this->out->element('dt', null, _m('Available characters'));
                 $this->out->element('dd', array('id' => 'notice_text-count'),
                                     $contentLimit);
                 $this->out->elementEnd('dl');
@@ -194,13 +186,13 @@ class FacebookNoticeForm extends Form
      *
      * @return void
      */
-
     function formActions()
     {
         $this->out->element('input', array('id' => 'notice_action-submit',
                                            'class' => 'submit',
                                            'name' => 'status_submit',
                                            'type' => 'submit',
-                                           'value' => _('Send')));
+                                           // TRANS: Button text.
+                                           'value' => _m('BUTTON','Send')));
     }
 }
index 09cb333428df459305c8adfa1d67468e23f7fad2..b048a435f5744bf98e344920ff9553193cb737f6 100644 (file)
@@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
 
 class FacebookremoveAction extends FacebookAction
 {
-
     function handle($args)
     {
         parent::handle($args);
@@ -65,5 +64,4 @@ class FacebookremoveAction extends FacebookAction
                 'unsuccessfully tried to remove a foreign link to Facebook!');
         }
     }
-
 }
index f94a346b570e2010c7e657ef40da400021d8fe81..1379b9a9cca981f24479cd0d3b2979d3948ea6f2 100644 (file)
@@ -25,7 +25,6 @@ require_once INSTALLDIR . '/plugins/Facebook/facebookaction.php';
 
 class FacebooksettingsAction extends FacebookAction
 {
-
     function handle($args)
     {
         parent::handle($args);
@@ -40,7 +39,6 @@ class FacebooksettingsAction extends FacebookAction
      *
      * @return void
      */
-
     function showContent()
     {
         if ($this->arg('save')) {
@@ -62,6 +60,7 @@ class FacebooksettingsAction extends FacebookAction
         if ($result === false) {
             $this->showForm(_m('There was a problem saving your sync preferences!'));
         } else {
+            // TRANS: Confirmation that synchronisation settings have been saved into the system.
             $this->showForm(_m('Sync preferences saved.'), true);
         }
     }
@@ -99,16 +98,16 @@ class FacebooksettingsAction extends FacebookAction
 
             $this->elementStart('li');
 
-            $this->submit('save', _m('Save'));
+            // TRANS: Submit button to save synchronisation settings.
+            $this->submit('save', _m('BUTTON','Save'));
 
             $this->elementEnd('li');
 
             $this->elementEnd('ul');
 
             $this->elementEnd('form');
-
         } else {
-
+            // TRANS: %s is the application name.
             $instructions = sprintf(_m('If you would like %s to automatically update ' .
                 'your Facebook status with your latest notice, you need ' .
                 'to give it permission.'), $this->app_name);
@@ -127,12 +126,11 @@ class FacebooksettingsAction extends FacebookAction
             $this->elementEnd('li');
             $this->elementEnd('ul');
         }
-
     }
 
     function title()
     {
+        // TRANS: Page title for synchronisation settings.
         return _m('Sync preferences');
     }
-
 }
index 1290fed55778513396c07035d5c1d2cc72ec48c3..e78856f7c474eb0733e90109c685afcd5e88a1e8 100644 (file)
@@ -45,13 +45,11 @@ function getFacebook()
 }
 
 function isFacebookBound($notice, $flink) {
-
     if (empty($flink)) {
         return false;
     }
 
     // Avoid a loop
-
     if ($notice->source == 'Facebook') {
         common_log(LOG_INFO, "Skipping notice $notice->id because its " .
                    'source is Facebook.');
@@ -59,7 +57,6 @@ function isFacebookBound($notice, $flink) {
     }
 
     // If the user does not want to broadcast to Facebook, move along
-
     if (!($flink->noticesync & FOREIGN_NOTICE_SEND == FOREIGN_NOTICE_SEND)) {
         common_log(LOG_INFO, "Skipping notice $notice->id " .
             'because user has FOREIGN_NOTICE_SEND bit off.');
@@ -68,14 +65,12 @@ function isFacebookBound($notice, $flink) {
 
     // If it's not a reply, or if the user WANTS to send @-replies,
     // then, yeah, it can go to Facebook.
-
     if (!preg_match('/@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) ||
         ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY)) {
         return true;
     }
 
     return false;
-
 }
 
 function facebookBroadcastNotice($notice)
@@ -87,16 +82,12 @@ function facebookBroadcastNotice($notice)
     );
 
     if (isFacebookBound($notice, $flink)) {
-
         // Okay, we're good to go, update the FB status
-
         $fbuid = $flink->foreign_id;
         $user = $flink->getUser();
 
         try {
-
             // Check permissions
-
             common_debug(
                 'FacebookPlugin - checking for publish_stream permission for user '
                 . "$user->nickname ($user->id), Facebook UID: $fbuid"
@@ -105,7 +96,6 @@ function facebookBroadcastNotice($notice)
             // NOTE: $facebook->api_client->users_hasAppPermission('publish_stream', $fbuid)
             // has been returning bogus results, so we're using FQL to check for
             // publish_stream permission now
-
             $fql = "SELECT publish_stream FROM permissions WHERE uid = $fbuid";
             $result = $facebook->api_client->fql_query($fql);
 
@@ -152,7 +142,6 @@ function facebookBroadcastNotice($notice)
             }
 
             // Post to Facebook
-
             if ($notice->hasAttachments() && $canPublish == 1) {
                 publishStream($notice, $user, $fbuid);
             } elseif ($canUpdate == 1 || $canPublish == 1) {
@@ -165,7 +154,6 @@ function facebookBroadcastNotice($notice)
             }
 
             // Finally, attempt to update the user's profile box
-
             if ($canPublish == 1 || $canUpdate == 1) {
                 updateProfileBox($facebook, $flink, $notice, $user);
             }
@@ -412,7 +400,6 @@ function remove_facebook_app($flink)
 
         common_log(LOG_WARNING, $msg);
     }
-
 }
 
 /**
@@ -423,7 +410,6 @@ function remove_facebook_app($flink)
  *
  * @return boolean success flag
  */
-
 function mail_facebook_app_removed($user)
 {
     $profile = $user->getProfile();
@@ -447,5 +433,4 @@ function mail_facebook_app_removed($user)
 
     common_switch_locale();
     return mail_to_user($user, $subject, $body);
-
 }
index dce10d230fa1d8731196d550850fdd5a47a2e7da..11072ca60f170aa9520d201f81677b941ba15cd5 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: facebookutil.php:285
+#: facebookutil.php:425
 #, php-format
 msgid ""
 "Hi, %1$s. We're sorry to inform you that we are unable to update your "
@@ -35,23 +35,24 @@ msgstr ""
 msgid "You must be logged into Facebook to use Facebook Connect."
 msgstr ""
 
-#: FBConnectAuth.php:77
-msgid "There is already a local user linked with this Facebook."
+#: FBConnectAuth.php:75
+msgid "There is already a local user linked with this Facebook account."
 msgstr ""
 
-#: FBConnectAuth.php:90 FBConnectSettings.php:164
+#: FBConnectAuth.php:87 FBConnectSettings.php:166
 msgid "There was a problem with your session token. Try again, please."
 msgstr ""
 
-#: FBConnectAuth.php:95
+#: FBConnectAuth.php:92
 msgid "You can't register if you don't agree to the license."
 msgstr ""
 
-#: FBConnectAuth.php:105
-msgid "Something weird happened."
+#: FBConnectAuth.php:102
+msgid "An unknown error has occured."
 msgstr ""
 
-#: FBConnectAuth.php:119
+#. TRANS: %s is the site name.
+#: FBConnectAuth.php:117
 #, php-format
 msgid ""
 "This is the first time you've logged into %s so we must connect your "
@@ -59,365 +60,469 @@ msgid ""
 "with your existing account, if you have one."
 msgstr ""
 
-#: FBConnectAuth.php:125
+#. TRANS: Page title.
+#: FBConnectAuth.php:124
 msgid "Facebook Account Setup"
 msgstr ""
 
+#. TRANS: Legend.
 #: FBConnectAuth.php:158
 msgid "Connection options"
 msgstr ""
 
-#: FBConnectAuth.php:183
-msgid "Create new account"
+#. TRANS: %s is the name of the license used by the user for their status updates.
+#: FBConnectAuth.php:168
+#, php-format
+msgid ""
+"My text and files are available under %s except this private data: password, "
+"email address, IM address, and phone number."
 msgstr ""
 
+#. TRANS: Legend.
 #: FBConnectAuth.php:185
+msgid "Create new account"
+msgstr ""
+
+#: FBConnectAuth.php:187
 msgid "Create a new user with this nickname."
 msgstr ""
 
-#: FBConnectAuth.php:188
+#. TRANS: Field label.
+#: FBConnectAuth.php:191
 msgid "New nickname"
 msgstr ""
 
-#: FBConnectAuth.php:190
+#: FBConnectAuth.php:193
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
 msgstr ""
 
-#: FBConnectAuth.php:193
+#. TRANS: Submit button.
+#: FBConnectAuth.php:197
+msgctxt "BUTTON"
 msgid "Create"
 msgstr ""
 
-#: FBConnectAuth.php:198
+#: FBConnectAuth.php:203
 msgid "Connect existing account"
 msgstr ""
 
-#: FBConnectAuth.php:200
+#: FBConnectAuth.php:205
 msgid ""
 "If you already have an account, login with your username and password to "
 "connect it to your Facebook."
 msgstr ""
 
-#: FBConnectAuth.php:203
+#. TRANS: Field label.
+#: FBConnectAuth.php:209
 msgid "Existing nickname"
 msgstr ""
 
-#: FBConnectAuth.php:206 facebookaction.php:271
+#: FBConnectAuth.php:212 facebookaction.php:277
 msgid "Password"
 msgstr ""
 
-#: FBConnectAuth.php:209
+#. TRANS: Submit button.
+#: FBConnectAuth.php:216
+msgctxt "BUTTON"
 msgid "Connect"
 msgstr ""
 
-#: FBConnectAuth.php:225 FBConnectAuth.php:234
+#. TRANS: Client error trying to register with registrations not allowed.
+#. TRANS: Client error trying to register with registrations 'invite only'.
+#: FBConnectAuth.php:233 FBConnectAuth.php:243
 msgid "Registration not allowed."
 msgstr ""
 
-#: FBConnectAuth.php:241
+#. TRANS: Client error trying to register with an invalid invitation code.
+#: FBConnectAuth.php:251
 msgid "Not a valid invitation code."
 msgstr ""
 
-#: FBConnectAuth.php:251
+#: FBConnectAuth.php:261
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 
-#: FBConnectAuth.php:256
+#: FBConnectAuth.php:266
 msgid "Nickname not allowed."
 msgstr ""
 
-#: FBConnectAuth.php:261
+#: FBConnectAuth.php:271
 msgid "Nickname already in use. Try another one."
 msgstr ""
 
-#: FBConnectAuth.php:279 FBConnectAuth.php:313 FBConnectAuth.php:333
+#: FBConnectAuth.php:289 FBConnectAuth.php:323 FBConnectAuth.php:343
 msgid "Error connecting user to Facebook."
 msgstr ""
 
-#: FBConnectAuth.php:299
+#: FBConnectAuth.php:309
 msgid "Invalid username or password."
 msgstr ""
 
-#: facebooklogin.php:91 facebookaction.php:249 facebookaction.php:275
+#. TRANS: Page title.
+#: facebooklogin.php:90 facebookaction.php:255
 msgid "Login"
 msgstr ""
 
-#: facebookhome.php:111
-msgid "Server error - couldn't get user!"
+#. TRANS: Legend.
+#: facebooknoticeform.php:144
+msgid "Send a notice"
 msgstr ""
 
-#: facebookhome.php:131
-msgid "Incorrect username or password."
+#. TRANS: Field label.
+#: facebooknoticeform.php:157
+#, php-format
+msgid "What's up, %s?"
 msgstr ""
 
-#: facebookhome.php:158
-#, php-format
-msgid "%s and friends, page %d"
+#: facebooknoticeform.php:169
+msgid "Available characters"
+msgstr ""
+
+#. TRANS: Button text.
+#: facebooknoticeform.php:196
+msgctxt "BUTTON"
+msgid "Send"
+msgstr ""
+
+#: facebookhome.php:103
+msgid "Server error: Couldn't get user!"
 msgstr ""
 
-#: facebookhome.php:160
+#: facebookhome.php:122
+msgid "Incorrect username or password."
+msgstr ""
+
+#. TRANS: Page title.
+#. TRANS: %s is a user nickname
+#: facebookhome.php:157
 #, php-format
 msgid "%s and friends"
 msgstr ""
 
-#: facebookhome.php:189
+#. TRANS: Instructions. %s is the application name.
+#: facebookhome.php:185
 #, 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 ""
 
-#: facebookhome.php:213
+#: facebookhome.php:210
 msgid "Okay, do it!"
 msgstr ""
 
-#: facebookhome.php:219
+#. TRANS: Button text. Clicking the button will skip updating Facebook permissions.
+#: facebookhome.php:217
+msgctxt "BUTTON"
 msgid "Skip"
 msgstr ""
 
-#: facebookhome.php:248 facebookaction.php:330
+#: facebookhome.php:244 facebookaction.php:336
 msgid "Pagination"
 msgstr ""
 
-#: facebookhome.php:257 facebookaction.php:339
+#. TRANS: Pagination link.
+#: facebookhome.php:254 facebookaction.php:345
 msgid "After"
 msgstr ""
 
-#: facebookhome.php:265 facebookaction.php:347
+#. TRANS: Pagination link.
+#: facebookhome.php:263 facebookaction.php:353
 msgid "Before"
 msgstr ""
 
-#: facebookinvite.php:72
+#. TRANS: %s is the name of the site.
+#: facebookinvite.php:69
 #, php-format
-msgid "Thanks for inviting your friends to use %s"
+msgid "Thanks for inviting your friends to use %s."
 msgstr ""
 
-#: facebookinvite.php:74
+#. TRANS: Followed by an unordered list with invited friends.
+#: facebookinvite.php:72
 msgid "Invitations have been sent to the following users:"
 msgstr ""
 
-#: facebookinvite.php:94
+#: facebookinvite.php:91
 #, php-format
 msgid "You have been invited to %s"
 msgstr ""
 
-#: facebookinvite.php:103
+#. TRANS: %s is the name of the site.
+#: facebookinvite.php:101
 #, php-format
 msgid "Invite your friends to use %s"
 msgstr ""
 
-#: facebookinvite.php:125
+#. TRANS: %s is the name of the site.
+#: facebookinvite.php:124
 #, php-format
 msgid "Friends already using %s:"
 msgstr ""
 
+#. TRANS: Page title.
 #: facebookinvite.php:143
 msgid "Send invitations"
 msgstr ""
 
-#: FacebookPlugin.php:195 FacebookPlugin.php:488 FacebookPlugin.php:510
-#: facebookadminpanel.php:54
+#. TRANS: Menu item.
+#. TRANS: Menu item tab.
+#: FacebookPlugin.php:188 FacebookPlugin.php:461 FacebookPlugin.php:485
+msgctxt "MENU"
 msgid "Facebook"
 msgstr ""
 
-#: FacebookPlugin.php:196
+#. TRANS: Tooltip for menu item "Facebook".
+#: FacebookPlugin.php:190
 msgid "Facebook integration configuration"
 msgstr ""
 
-#: FacebookPlugin.php:489
+#: FacebookPlugin.php:431
+msgid "Facebook Connect User"
+msgstr ""
+
+#. TRANS: Tooltip for menu item "Facebook".
+#: FacebookPlugin.php:463
 msgid "Login or register using Facebook"
 msgstr ""
 
-#: FacebookPlugin.php:511 FBConnectSettings.php:56
+#. TRANS: Tooltip for menu item "Facebook".
+#. TRANS: Page title.
+#: FacebookPlugin.php:487 FBConnectSettings.php:55
 msgid "Facebook Connect Settings"
 msgstr ""
 
-#: FacebookPlugin.php:617
+#: FacebookPlugin.php:591
 msgid ""
-"The Facebook plugin allows you to integrate your StatusNet instance with <a "
-"href=\"http://facebook.com/\">Facebook</a> and Facebook Connect."
+"The Facebook plugin allows integrating StatusNet instances with <a href="
+"\"http://facebook.com/\">Facebook</a> and Facebook Connect."
 msgstr ""
 
 #: FBConnectLogin.php:33
 msgid "Already logged in."
 msgstr ""
 
-#: FBConnectLogin.php:41
+#. TRANS: Instructions.
+#: FBConnectLogin.php:42
 msgid "Login with your Facebook Account"
 msgstr ""
 
-#: FBConnectLogin.php:55
+#. TRANS: Page title.
+#: FBConnectLogin.php:57
 msgid "Facebook Login"
 msgstr ""
 
-#: facebookremove.php:58
+#: facebookremove.php:57
 msgid "Couldn't remove Facebook user."
 msgstr ""
 
+#. TRANS: Link description for 'Home' link that leads to a start page.
+#: facebookaction.php:169
+msgctxt "MENU"
+msgid "Home"
+msgstr ""
+
+#. TRANS: Tooltip for 'Home' link that leads to a start page.
 #: facebookaction.php:171
 msgid "Home"
 msgstr ""
 
-#: facebookaction.php:179
+#. TRANS: Link description for 'Invite' link that leads to a page where friends can be invited.
+#: facebookaction.php:180
+msgctxt "MENU"
+msgid "Invite"
+msgstr ""
+
+#. TRANS: Tooltip for 'Invite' link that leads to a page where friends can be invited.
+#: facebookaction.php:182
 msgid "Invite"
 msgstr ""
 
-#: facebookaction.php:188
+#. TRANS: Link description for 'Settings' link that leads to a page user preferences can be set.
+#: facebookaction.php:192
+msgctxt "MENU"
 msgid "Settings"
 msgstr ""
 
-#: facebookaction.php:228
+#. TRANS: Tooltip for 'Settings' link that leads to a page user preferences can be set.
+#: facebookaction.php:194
+msgid "Settings"
+msgstr ""
+
+#: facebookaction.php:233
 #, php-format
 msgid ""
 "To use the %s Facebook Application you need to login with your username and "
-"password. Don't have a username yet? "
+"password. Don't have a username yet?"
 msgstr ""
 
-#: facebookaction.php:230
+#: facebookaction.php:235
 msgid " a new account."
 msgstr ""
 
-#: facebookaction.php:236
+#: facebookaction.php:242
 msgid "Register"
 msgstr ""
 
-#: facebookaction.php:268
+#: facebookaction.php:274
 msgid "Nickname"
 msgstr ""
 
-#: facebookaction.php:281
+#. TRANS: Login button.
+#: facebookaction.php:282
+msgctxt "BUTTON"
+msgid "Login"
+msgstr ""
+
+#: facebookaction.php:288
 msgid "Lost or forgotten password?"
 msgstr ""
 
-#: facebookaction.php:365
+#: facebookaction.php:370
 msgid "No notice content!"
 msgstr ""
 
-#: facebookaction.php:371
+#: facebookaction.php:377
 #, php-format
 msgid "That's too long. Max notice size is %d chars."
 msgstr ""
 
-#: facebookaction.php:430
+#: facebookaction.php:431
 msgid "Notices"
 msgstr ""
 
-#: facebookadminpanel.php:65
+#: facebookadminpanel.php:52
+msgid "Facebook"
+msgstr ""
+
+#: facebookadminpanel.php:62
 msgid "Facebook integration settings"
 msgstr ""
 
-#: facebookadminpanel.php:129
+#: facebookadminpanel.php:123
 msgid "Invalid Facebook API key. Max length is 255 characters."
 msgstr ""
 
-#: facebookadminpanel.php:135
+#: facebookadminpanel.php:129
 msgid "Invalid Facebook API secret. Max length is 255 characters."
 msgstr ""
 
-#: facebookadminpanel.php:188
+#: facebookadminpanel.php:178
 msgid "Facebook application settings"
 msgstr ""
 
-#: facebookadminpanel.php:194
+#: facebookadminpanel.php:184
 msgid "API key"
 msgstr ""
 
-#: facebookadminpanel.php:195
+#: facebookadminpanel.php:185
 msgid "API key provided by Facebook"
 msgstr ""
 
-#: facebookadminpanel.php:203
+#: facebookadminpanel.php:193
 msgid "Secret"
 msgstr ""
 
-#: facebookadminpanel.php:204
+#: facebookadminpanel.php:194
 msgid "API secret provided by Facebook"
 msgstr ""
 
-#: FBConnectSettings.php:67
+#: facebookadminpanel.php:210
+msgid "Save"
+msgstr ""
+
+#: facebookadminpanel.php:210
+msgid "Save Facebook settings"
+msgstr ""
+
+#. TRANS: Instructions.
+#: FBConnectSettings.php:66
 msgid "Manage how your account connects to Facebook"
 msgstr ""
 
-#: FBConnectSettings.php:92
+#: FBConnectSettings.php:90
 msgid "There is no Facebook user connected to this account."
 msgstr ""
 
-#: FBConnectSettings.php:100
+#: FBConnectSettings.php:98
 msgid "Connected Facebook user"
 msgstr ""
 
-#: FBConnectSettings.php:119
+#. TRANS: Legend.
+#: FBConnectSettings.php:118
 msgid "Disconnect my account from Facebook"
 msgstr ""
 
-#: FBConnectSettings.php:124
+#. TRANS: Followed by a link containing text "set a password".
+#: FBConnectSettings.php:125
 msgid ""
 "Disconnecting your Faceboook would make it impossible to log in! Please "
 msgstr ""
 
-#: FBConnectSettings.php:128
+#. TRANS: Preceded by "Please " and followed by " first."
+#: FBConnectSettings.php:130
 msgid "set a password"
 msgstr ""
 
-#: FBConnectSettings.php:130
+#. TRANS: Preceded by "Please set a password".
+#: FBConnectSettings.php:132
 msgid " first."
 msgstr ""
 
-#: FBConnectSettings.php:142
+#. TRANS: Submit button.
+#: FBConnectSettings.php:145
+msgctxt "BUTTON"
 msgid "Disconnect"
 msgstr ""
 
-#: FBConnectSettings.php:178
+#: FBConnectSettings.php:180
 msgid "Couldn't delete link to Facebook."
 msgstr ""
 
-#: FBConnectSettings.php:194
+#: FBConnectSettings.php:196
 msgid "You have disconnected from Facebook."
 msgstr ""
 
-#: FBConnectSettings.php:197
+#: FBConnectSettings.php:199
 msgid "Not sure what you're trying to do."
 msgstr ""
 
-#: facebooksettings.php:74
+#: facebooksettings.php:61
 msgid "There was a problem saving your sync preferences!"
 msgstr ""
 
-#: facebooksettings.php:76
+#. TRANS: Confirmation that synchronisation settings have been saved into the system.
+#: facebooksettings.php:64
 msgid "Sync preferences saved."
 msgstr ""
 
-#: facebooksettings.php:99
+#: facebooksettings.php:87
 msgid "Automatically update my Facebook status with my notices."
 msgstr ""
 
-#: facebooksettings.php:106
+#: facebooksettings.php:94
 msgid "Send \"@\" replies to Facebook."
 msgstr ""
 
-#: facebooksettings.php:115
-msgid "Prefix"
-msgstr ""
-
-#: facebooksettings.php:117
-msgid "A string to prefix notices with."
-msgstr ""
-
-#: facebooksettings.php:123
+#. TRANS: Submit button to save synchronisation settings.
+#: facebooksettings.php:102
+msgctxt "BUTTON"
 msgid "Save"
 msgstr ""
 
-#: facebooksettings.php:133
+#. TRANS: %s is the application name.
+#: facebooksettings.php:111
 #, 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 ""
 
-#: facebooksettings.php:146
+#: facebooksettings.php:124
 #, php-format
 msgid "Allow %s to update my Facebook status"
 msgstr ""
 
-#: facebooksettings.php:156
+#. TRANS: Page title for synchronisation settings.
+#: facebooksettings.php:134
 msgid "Sync preferences"
 msgstr ""
index d984ec1af416df62a1e5c62a5a20eb8d721ee9c6..27f760c81cb77913b8b5493eac6dbab25e8e5b87 100644 (file)
@@ -69,4 +69,3 @@ class FirePHPPlugin extends Plugin
         return true;
     }
 }
-
index fa16f283eb489311b6eab5ed19f1db5141a8c4d8..3b27b7c4f039a77e227eca5bb1bde2d67b77003c 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,6 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: FirePHPPlugin.php:66
+#: FirePHPPlugin.php:68
 msgid "The FirePHP plugin writes StatusNet's log output to FirePHP."
 msgstr ""
diff --git a/plugins/GeoURL/GeoURLPlugin.php b/plugins/GeoURL/GeoURLPlugin.php
new file mode 100644 (file)
index 0000000..91da81a
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to add ICBM metadata to HTML pages and report data to GeoURL.org
+ *
+ * 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  Action
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to add ICBM metadata to HTML pages and report data to GeoURL.org
+ *
+ * Adds metadata to notice and profile pages that geourl.org and others
+ * understand. Also, pings geourl.org when a new notice is saved or
+ * a profile is changed.
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @seeAlso  Location
+ */
+class GeoURLPlugin extends Plugin
+{
+    public $ping = 'http://geourl.org/ping/';
+
+    /**
+     * Add extra <meta> headers for certain pages that geourl.org understands
+     *
+     * @param Action $action page being shown
+     *
+     * @return boolean event handler flag
+     */
+    function onEndShowHeadElements($action)
+    {
+        $name = $action->trimmed('action');
+
+        $location = null;
+
+        if ($name == 'showstream') {
+            $profile = $action->profile;
+            if (!empty($profile) && !empty($profile->lat) && !empty($profile->lon)) {
+                $location = $profile->lat . ', ' . $profile->lon;
+            }
+        } else if ($name == 'shownotice') {
+            $notice = $action->profile;
+            if (!empty($notice) && !empty($notice->lat) && !empty($notice->lon)) {
+                $location = $notice->lat . ', ' . $notice->lon;
+            }
+        }
+
+        if (!empty($location)) {
+            $action->element('meta', array('name' => 'ICBM',
+                                           'content' => $location));
+            $action->element('meta', array('name' => 'DC.title',
+                                           'content' => $action->title()));
+        }
+
+        return true;
+    }
+
+    /**
+     * Report local notices to GeoURL.org when they're created
+     *
+     * @param Notice &$notice queued notice
+     *
+     * @return boolean event handler flag
+     */
+    function onHandleQueuedNotice(&$notice)
+    {
+        if ($notice->is_local == 1) {
+
+            $request = HTTPClient::start();
+
+            $url = common_local_url('shownotice',
+                                    array('notice' => $notice->id));
+
+            try {
+                $request->post($this->ping,
+                               null,
+                               array('p' => $url));
+            } catch (HTTP_Request2_Exception $e) {
+                common_log(LOG_WARNING,
+                           "GeoURL.org ping failed for '$url' ($this->ping)");
+            }
+        }
+
+        return true;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'GeoURL',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
+                            'rawdescription' =>
+                            _m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
+                               'new geolocation-enhanced notices are posted.'));
+        return true;
+    }
+}
diff --git a/plugins/GeoURL/locale/GeoURL.pot b/plugins/GeoURL/locale/GeoURL.pot
new file mode 100644 (file)
index 0000000..1f910e5
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: GeoURLPlugin.php:124
+msgid ""
+"Ping <a href=\"http://geourl.org/\">GeoURL</a> when new geolocation-enhanced "
+"notices are posted."
+msgstr ""
diff --git a/plugins/GeoURLPlugin.php b/plugins/GeoURLPlugin.php
deleted file mode 100644 (file)
index 01178f3..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to add ICBM metadata to HTML pages and report data to GeoURL.org
- *
- * 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  Action
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to add ICBM metadata to HTML pages and report data to GeoURL.org
- *
- * Adds metadata to notice and profile pages that geourl.org and others
- * understand. Also, pings geourl.org when a new notice is saved or
- * a profile is changed.
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @seeAlso  Location
- */
-
-class GeoURLPlugin extends Plugin
-{
-    public $ping = 'http://geourl.org/ping/';
-
-    /**
-     * Add extra <meta> headers for certain pages that geourl.org understands
-     *
-     * @param Action $action page being shown
-     *
-     * @return boolean event handler flag
-     */
-
-    function onEndShowHeadElements($action)
-    {
-        $name = $action->trimmed('action');
-
-        $location = null;
-
-        if ($name == 'showstream') {
-            $profile = $action->profile;
-            if (!empty($profile) && !empty($profile->lat) && !empty($profile->lon)) {
-                $location = $profile->lat . ', ' . $profile->lon;
-            }
-        } else if ($name == 'shownotice') {
-            $notice = $action->profile;
-            if (!empty($notice) && !empty($notice->lat) && !empty($notice->lon)) {
-                $location = $notice->lat . ', ' . $notice->lon;
-            }
-        }
-
-        if (!empty($location)) {
-            $action->element('meta', array('name' => 'ICBM',
-                                           'content' => $location));
-            $action->element('meta', array('name' => 'DC.title',
-                                           'content' => $action->title()));
-        }
-
-        return true;
-    }
-
-    /**
-     * Report local notices to GeoURL.org when they're created
-     *
-     * @param Notice &$notice queued notice
-     *
-     * @return boolean event handler flag
-     */
-
-    function onHandleQueuedNotice(&$notice)
-    {
-        if ($notice->is_local == 1) {
-
-            $request = HTTPClient::start();
-
-            $url = common_local_url('shownotice',
-                                    array('notice' => $notice->id));
-
-            try {
-                $request->post($this->ping,
-                               null,
-                               array('p' => $url));
-            } catch (HTTP_Request2_Exception $e) {
-                common_log(LOG_WARNING,
-                           "GeoURL.org ping failed for '$url' ($this->ping)");
-            }
-        }
-
-        return true;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'GeoURL',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:GeoURL',
-                            'rawdescription' =>
-                            _m('Ping <a href="http://geourl.org/">GeoURL</a> when '.
-                               'new geolocation-enhanced notices are posted.'));
-        return true;
-    }
-}
diff --git a/plugins/Geonames/GeonamesPlugin.php b/plugins/Geonames/GeonamesPlugin.php
new file mode 100644 (file)
index 0000000..310641c
--- /dev/null
@@ -0,0 +1,503 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to convert string locations to Geonames IDs and vice versa
+ *
+ * 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  Action
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to convert string locations to Geonames IDs and vice versa
+ *
+ * This handles most of the events that Location class emits. It uses
+ * the geonames.org Web service to convert names like 'Montreal, Quebec, Canada'
+ * into IDs and lat/lon pairs.
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @seeAlso  Location
+ */
+class GeonamesPlugin extends Plugin
+{
+    const LOCATION_NS = 1;
+
+    public $host     = 'ws.geonames.org';
+    public $username = null;
+    public $token    = null;
+    public $expiry   = 7776000; // 90-day expiry
+    public $timeout  = 2;       // Web service timeout in seconds.
+    public $timeoutWindow = 60; // Further lookups in this process will be disabled for N seconds after a timeout.
+    public $cachePrefix = null; // Optional shared memcache prefix override
+                                // to share lookups between local instances.
+
+    protected $lastTimeout = null; // timestamp of last web service timeout
+
+    /**
+     * convert a name into a Location object
+     *
+     * @param string   $name      Name to convert
+     * @param string   $language  ISO code for anguage the name is in
+     * @param Location &$location Location object (may be null)
+     *
+     * @return boolean whether to continue (results in $location)
+     */
+    function onLocationFromName($name, $language, &$location)
+    {
+        $loc = $this->getCache(array('name' => $name,
+                                     'language' => $language));
+
+        if ($loc !== false) {
+            $location = $loc;
+            return false;
+        }
+
+        try {
+            $geonames = $this->getGeonames('search',
+                                           array('maxRows' => 1,
+                                                 'q' => $name,
+                                                 'lang' => $language,
+                                                 'type' => 'xml'));
+        } catch (Exception $e) {
+            $this->log(LOG_WARNING, "Error for $name: " . $e->getMessage());
+            return true;
+        }
+
+        if (count($geonames) == 0) {
+            // no results
+            $this->setCache(array('name' => $name,
+                                  'language' => $language),
+                            null);
+            return true;
+        }
+
+        $n = $geonames[0];
+
+        $location = new Location();
+
+        $location->lat              = $this->canonical($n->lat);
+        $location->lon              = $this->canonical($n->lng);
+        $location->names[$language] = (string)$n->name;
+        $location->location_id      = (string)$n->geonameId;
+        $location->location_ns      = self::LOCATION_NS;
+
+        $this->setCache(array('name' => $name,
+                              'language' => $language),
+                        $location);
+
+        // handled, don't continue processing!
+        return false;
+    }
+
+    /**
+     * convert an id into a Location object
+     *
+     * @param string   $id        Name to convert
+     * @param string   $ns        Name to convert
+     * @param string   $language  ISO code for language for results
+     * @param Location &$location Location object (may be null)
+     *
+     * @return boolean whether to continue (results in $location)
+     */
+    function onLocationFromId($id, $ns, $language, &$location)
+    {
+        if ($ns != self::LOCATION_NS) {
+            // It's not one of our IDs... keep processing
+            return true;
+        }
+
+        $loc = $this->getCache(array('id' => $id));
+
+        if ($loc !== false) {
+            $location = $loc;
+            return false;
+        }
+
+        try {
+            $geonames = $this->getGeonames('hierarchy',
+                                           array('geonameId' => $id,
+                                                 'lang' => $language));
+        } catch (Exception $e) {
+            $this->log(LOG_WARNING, "Error for ID $id: " . $e->getMessage());
+            return false;
+        }
+
+        $parts = array();
+
+        foreach ($geonames as $level) {
+            if (in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
+                $parts[] = (string)$level->name;
+            }
+        }
+
+        $last = $geonames[count($geonames)-1];
+
+        if (!in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
+            $parts[] = (string)$last->name;
+        }
+
+        $location = new Location();
+
+        $location->location_id      = (string)$last->geonameId;
+        $location->location_ns      = self::LOCATION_NS;
+        $location->lat              = $this->canonical($last->lat);
+        $location->lon              = $this->canonical($last->lng);
+
+        $location->names[$language] = implode(', ', array_reverse($parts));
+
+        $this->setCache(array('id' => (string)$last->geonameId),
+                        $location);
+
+        // We're responsible for this namespace; nobody else
+        // can resolve it
+
+        return false;
+    }
+
+    /**
+     * convert a lat/lon pair into a Location object
+     *
+     * Given a lat/lon, we try to find a Location that's around
+     * it or nearby. We prefer populated places (cities, towns, villages).
+     *
+     * @param string   $lat       Latitude
+     * @param string   $lon       Longitude
+     * @param string   $language  ISO code for language for results
+     * @param Location &$location Location object (may be null)
+     *
+     * @return boolean whether to continue (results in $location)
+     */
+    function onLocationFromLatLon($lat, $lon, $language, &$location)
+    {
+        // Make sure they're canonical
+
+        $lat = $this->canonical($lat);
+        $lon = $this->canonical($lon);
+
+        $loc = $this->getCache(array('lat' => $lat,
+                                     'lon' => $lon));
+
+        if ($loc !== false) {
+            $location = $loc;
+            return false;
+        }
+
+        try {
+          $geonames = $this->getGeonames('findNearbyPlaceName',
+                                         array('lat' => $lat,
+                                               'lng' => $lon,
+                                               'lang' => $language));
+        } catch (Exception $e) {
+            $this->log(LOG_WARNING, "Error for coords $lat, $lon: " . $e->getMessage());
+            return true;
+        }
+
+        if (count($geonames) == 0) {
+            // no results
+            $this->setCache(array('lat' => $lat,
+                                  'lon' => $lon),
+                            null);
+            return true;
+        }
+
+        $n = $geonames[0];
+
+        $parts = array();
+
+        $location = new Location();
+
+        $parts[] = (string)$n->name;
+
+        if (!empty($n->adminName1)) {
+            $parts[] = (string)$n->adminName1;
+        }
+
+        if (!empty($n->countryName)) {
+            $parts[] = (string)$n->countryName;
+        }
+
+        $location->location_id = (string)$n->geonameId;
+        $location->location_ns = self::LOCATION_NS;
+        $location->lat         = $this->canonical($n->lat);
+        $location->lon         = $this->canonical($n->lng);
+
+        $location->names[$language] = implode(', ', $parts);
+
+        $this->setCache(array('lat' => $lat,
+                              'lon' => $lon),
+                        $location);
+
+        // Success! We handled it, so no further processing
+
+        return false;
+    }
+
+    /**
+     * Human-readable name for a location
+     *
+     * Given a location, we try to retrieve a human-readable name
+     * in the target language.
+     *
+     * @param Location $location Location to get the name for
+     * @param string   $language ISO code for language to find name in
+     * @param string   &$name    Place to put the name
+     *
+     * @return boolean whether to continue
+     */
+    function onLocationNameLanguage($location, $language, &$name)
+    {
+        if ($location->location_ns != self::LOCATION_NS) {
+            // It's not one of our IDs... keep processing
+            return true;
+        }
+
+        $id = $location->location_id;
+
+        $n = $this->getCache(array('id' => $id,
+                                   'language' => $language));
+
+        if ($n !== false) {
+            $name = $n;
+            return false;
+        }
+
+        try {
+            $geonames = $this->getGeonames('hierarchy',
+                                           array('geonameId' => $id,
+                                                 'lang' => $language));
+        } catch (Exception $e) {
+            $this->log(LOG_WARNING, "Error for ID $id: " . $e->getMessage());
+            return false;
+        }
+
+        if (count($geonames) == 0) {
+            $this->setCache(array('id' => $id,
+                                  'language' => $language),
+                            null);
+            return false;
+        }
+
+        $parts = array();
+
+        foreach ($geonames as $level) {
+            if (in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
+                $parts[] = (string)$level->name;
+            }
+        }
+
+        $last = $geonames[count($geonames)-1];
+
+        if (!in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
+            $parts[] = (string)$last->name;
+        }
+
+        if (count($parts)) {
+            $name = implode(', ', array_reverse($parts));
+            $this->setCache(array('id' => $id,
+                                  'language' => $language),
+                            $name);
+        }
+
+        return false;
+    }
+
+    /**
+     * Human-readable URL for a location
+     *
+     * Given a location, we try to retrieve a geonames.org URL.
+     *
+     * @param Location $location Location to get the url for
+     * @param string   &$url     Place to put the url
+     *
+     * @return boolean whether to continue
+     */
+    function onLocationUrl($location, &$url)
+    {
+        if ($location->location_ns != self::LOCATION_NS) {
+            // It's not one of our IDs... keep processing
+            return true;
+        }
+
+        $url = 'http://www.geonames.org/' . $location->location_id;
+
+        // it's been filled, so don't process further.
+        return false;
+    }
+
+    /**
+     * Machine-readable name for a location
+     *
+     * Given a location, we try to retrieve a geonames.org URL.
+     *
+     * @param Location $location Location to get the url for
+     * @param string   &$url     Place to put the url
+     *
+     * @return boolean whether to continue
+     */
+    function onLocationRdfUrl($location, &$url)
+    {
+        if ($location->location_ns != self::LOCATION_NS) {
+            // It's not one of our IDs... keep processing
+            return true;
+        }
+
+        $url = 'http://sws.geonames.org/' . $location->location_id . '/';
+
+        // it's been filled, so don't process further.
+        return false;
+    }
+
+    function getCache($attrs)
+    {
+        $c = common_memcache();
+
+        if (empty($c)) {
+            return null;
+        }
+
+        $key = $this->cacheKey($attrs);
+
+        $value = $c->get($key);
+
+        return $value;
+    }
+
+    function setCache($attrs, $loc)
+    {
+        $c = common_memcache();
+
+        if (empty($c)) {
+            return null;
+        }
+
+        $key = $this->cacheKey($attrs);
+
+        $result = $c->set($key, $loc, 0, time() + $this->expiry);
+
+        return $result;
+    }
+
+    function cacheKey($attrs)
+    {
+        $key = 'geonames:' .
+               implode(',', array_keys($attrs)) . ':'.
+               common_keyize(implode(',', array_values($attrs)));
+        if ($this->cachePrefix) {
+            return $this->cachePrefix . ':' . $key;
+        } else {
+            return common_cache_key($key);
+        }
+    }
+
+    function wsUrl($method, $params)
+    {
+        if (!empty($this->username)) {
+            $params['username'] = $this->username;
+        }
+
+        if (!empty($this->token)) {
+            $params['token'] = $this->token;
+        }
+
+        $str = http_build_query($params, null, '&');
+
+        return 'http://'.$this->host.'/'.$method.'?'.$str;
+    }
+
+    function getGeonames($method, $params)
+    {
+        if ($this->lastTimeout && (time() - $this->lastTimeout < $this->timeoutWindow)) {
+            throw new Exception("skipping due to recent web service timeout");
+        }
+
+        $client = HTTPClient::start();
+        $client->setConfig('connect_timeout', $this->timeout);
+        $client->setConfig('timeout', $this->timeout);
+
+        try {
+            $result = $client->get($this->wsUrl($method, $params));
+        } catch (Exception $e) {
+            common_log(LOG_ERR, __METHOD__ . ": " . $e->getMessage());
+            $this->lastTimeout = time();
+            throw $e;
+        }
+
+        if (!$result->isOk()) {
+            throw new Exception("HTTP error code " . $result->getStatus());
+        }
+
+        $body = $result->getBody();
+
+        if (empty($body)) {
+            throw new Exception("Empty HTTP body in response");
+        }
+
+        // This will throw an exception if the XML is mal-formed
+
+        $document = new SimpleXMLElement($body);
+
+        // No children, usually no results
+
+        $children = $document->children();
+
+        if (count($children) == 0) {
+            return array();
+        }
+
+        if (isset($document->status)) {
+            throw new Exception("Error #".$document->status['value']." ('".$document->status['message']."')");
+        }
+
+        // Array of elements, >0 elements
+
+        return $document->geoname;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Geonames',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Geonames',
+                            'rawdescription' =>
+                            _m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
+                               'names for locations based on user-provided lat/long pairs.'));
+        return true;
+    }
+
+    function canonical($coord)
+    {
+        $coord = rtrim($coord, "0");
+        $coord = rtrim($coord, ".");
+
+        return $coord;
+    }
+}
diff --git a/plugins/Geonames/locale/Geonames.pot b/plugins/Geonames/locale/Geonames.pot
new file mode 100644 (file)
index 0000000..94ead02
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: GeonamesPlugin.php:491
+msgid ""
+"Uses <a href=\"http://geonames.org/\">Geonames</a> service to get human-"
+"readable names for locations based on user-provided lat/long pairs."
+msgstr ""
diff --git a/plugins/GeonamesPlugin.php b/plugins/GeonamesPlugin.php
deleted file mode 100644 (file)
index 3815a31..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to convert string locations to Geonames IDs and vice versa
- *
- * 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  Action
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to convert string locations to Geonames IDs and vice versa
- *
- * This handles most of the events that Location class emits. It uses
- * the geonames.org Web service to convert names like 'Montreal, Quebec, Canada'
- * into IDs and lat/lon pairs.
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @seeAlso  Location
- */
-
-class GeonamesPlugin extends Plugin
-{
-    const LOCATION_NS = 1;
-
-    public $host     = 'ws.geonames.org';
-    public $username = null;
-    public $token    = null;
-    public $expiry   = 7776000; // 90-day expiry
-    public $timeout  = 2;       // Web service timeout in seconds.
-    public $timeoutWindow = 60; // Further lookups in this process will be disabled for N seconds after a timeout.
-    public $cachePrefix = null; // Optional shared memcache prefix override
-                                // to share lookups between local instances.
-
-    protected $lastTimeout = null; // timestamp of last web service timeout
-
-    /**
-     * convert a name into a Location object
-     *
-     * @param string   $name      Name to convert
-     * @param string   $language  ISO code for anguage the name is in
-     * @param Location &$location Location object (may be null)
-     *
-     * @return boolean whether to continue (results in $location)
-     */
-
-    function onLocationFromName($name, $language, &$location)
-    {
-        $loc = $this->getCache(array('name' => $name,
-                                     'language' => $language));
-
-        if ($loc !== false) {
-            $location = $loc;
-            return false;
-        }
-
-        try {
-            $geonames = $this->getGeonames('search',
-                                           array('maxRows' => 1,
-                                                 'q' => $name,
-                                                 'lang' => $language,
-                                                 'type' => 'xml'));
-        } catch (Exception $e) {
-            $this->log(LOG_WARNING, "Error for $name: " . $e->getMessage());
-            return true;
-        }
-
-        if (count($geonames) == 0) {
-            // no results
-            $this->setCache(array('name' => $name,
-                                  'language' => $language),
-                            null);
-            return true;
-        }
-
-        $n = $geonames[0];
-
-        $location = new Location();
-
-        $location->lat              = $this->canonical($n->lat);
-        $location->lon              = $this->canonical($n->lng);
-        $location->names[$language] = (string)$n->name;
-        $location->location_id      = (string)$n->geonameId;
-        $location->location_ns      = self::LOCATION_NS;
-
-        $this->setCache(array('name' => $name,
-                              'language' => $language),
-                        $location);
-
-        // handled, don't continue processing!
-        return false;
-    }
-
-    /**
-     * convert an id into a Location object
-     *
-     * @param string   $id        Name to convert
-     * @param string   $ns        Name to convert
-     * @param string   $language  ISO code for language for results
-     * @param Location &$location Location object (may be null)
-     *
-     * @return boolean whether to continue (results in $location)
-     */
-
-    function onLocationFromId($id, $ns, $language, &$location)
-    {
-        if ($ns != self::LOCATION_NS) {
-            // It's not one of our IDs... keep processing
-            return true;
-        }
-
-        $loc = $this->getCache(array('id' => $id));
-
-        if ($loc !== false) {
-            $location = $loc;
-            return false;
-        }
-
-        try {
-            $geonames = $this->getGeonames('hierarchy',
-                                           array('geonameId' => $id,
-                                                 'lang' => $language));
-        } catch (Exception $e) {
-            $this->log(LOG_WARNING, "Error for ID $id: " . $e->getMessage());
-            return false;
-        }
-
-        $parts = array();
-
-        foreach ($geonames as $level) {
-            if (in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
-                $parts[] = (string)$level->name;
-            }
-        }
-
-        $last = $geonames[count($geonames)-1];
-
-        if (!in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
-            $parts[] = (string)$last->name;
-        }
-
-        $location = new Location();
-
-        $location->location_id      = (string)$last->geonameId;
-        $location->location_ns      = self::LOCATION_NS;
-        $location->lat              = $this->canonical($last->lat);
-        $location->lon              = $this->canonical($last->lng);
-
-        $location->names[$language] = implode(', ', array_reverse($parts));
-
-        $this->setCache(array('id' => (string)$last->geonameId),
-                        $location);
-
-        // We're responsible for this namespace; nobody else
-        // can resolve it
-
-        return false;
-    }
-
-    /**
-     * convert a lat/lon pair into a Location object
-     *
-     * Given a lat/lon, we try to find a Location that's around
-     * it or nearby. We prefer populated places (cities, towns, villages).
-     *
-     * @param string   $lat       Latitude
-     * @param string   $lon       Longitude
-     * @param string   $language  ISO code for language for results
-     * @param Location &$location Location object (may be null)
-     *
-     * @return boolean whether to continue (results in $location)
-     */
-
-    function onLocationFromLatLon($lat, $lon, $language, &$location)
-    {
-        // Make sure they're canonical
-
-        $lat = $this->canonical($lat);
-        $lon = $this->canonical($lon);
-
-        $loc = $this->getCache(array('lat' => $lat,
-                                     'lon' => $lon));
-
-        if ($loc !== false) {
-            $location = $loc;
-            return false;
-        }
-
-        try {
-          $geonames = $this->getGeonames('findNearbyPlaceName',
-                                         array('lat' => $lat,
-                                               'lng' => $lon,
-                                               'lang' => $language));
-        } catch (Exception $e) {
-            $this->log(LOG_WARNING, "Error for coords $lat, $lon: " . $e->getMessage());
-            return true;
-        }
-
-        if (count($geonames) == 0) {
-            // no results
-            $this->setCache(array('lat' => $lat,
-                                  'lon' => $lon),
-                            null);
-            return true;
-        }
-
-        $n = $geonames[0];
-
-        $parts = array();
-
-        $location = new Location();
-
-        $parts[] = (string)$n->name;
-
-        if (!empty($n->adminName1)) {
-            $parts[] = (string)$n->adminName1;
-        }
-
-        if (!empty($n->countryName)) {
-            $parts[] = (string)$n->countryName;
-        }
-
-        $location->location_id = (string)$n->geonameId;
-        $location->location_ns = self::LOCATION_NS;
-        $location->lat         = $this->canonical($n->lat);
-        $location->lon         = $this->canonical($n->lng);
-
-        $location->names[$language] = implode(', ', $parts);
-
-        $this->setCache(array('lat' => $lat,
-                              'lon' => $lon),
-                        $location);
-
-        // Success! We handled it, so no further processing
-
-        return false;
-    }
-
-    /**
-     * Human-readable name for a location
-     *
-     * Given a location, we try to retrieve a human-readable name
-     * in the target language.
-     *
-     * @param Location $location Location to get the name for
-     * @param string   $language ISO code for language to find name in
-     * @param string   &$name    Place to put the name
-     *
-     * @return boolean whether to continue
-     */
-
-    function onLocationNameLanguage($location, $language, &$name)
-    {
-        if ($location->location_ns != self::LOCATION_NS) {
-            // It's not one of our IDs... keep processing
-            return true;
-        }
-
-        $id = $location->location_id;
-
-        $n = $this->getCache(array('id' => $id,
-                                   'language' => $language));
-
-        if ($n !== false) {
-            $name = $n;
-            return false;
-        }
-
-        try {
-            $geonames = $this->getGeonames('hierarchy',
-                                           array('geonameId' => $id,
-                                                 'lang' => $language));
-        } catch (Exception $e) {
-            $this->log(LOG_WARNING, "Error for ID $id: " . $e->getMessage());
-            return false;
-        }
-
-        if (count($geonames) == 0) {
-            $this->setCache(array('id' => $id,
-                                  'language' => $language),
-                            null);
-            return false;
-        }
-
-        $parts = array();
-
-        foreach ($geonames as $level) {
-            if (in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
-                $parts[] = (string)$level->name;
-            }
-        }
-
-        $last = $geonames[count($geonames)-1];
-
-        if (!in_array($level->fcode, array('PCLI', 'ADM1', 'PPL'))) {
-            $parts[] = (string)$last->name;
-        }
-
-        if (count($parts)) {
-            $name = implode(', ', array_reverse($parts));
-            $this->setCache(array('id' => $id,
-                                  'language' => $language),
-                            $name);
-        }
-
-        return false;
-    }
-
-    /**
-     * Human-readable URL for a location
-     *
-     * Given a location, we try to retrieve a geonames.org URL.
-     *
-     * @param Location $location Location to get the url for
-     * @param string   &$url     Place to put the url
-     *
-     * @return boolean whether to continue
-     */
-
-    function onLocationUrl($location, &$url)
-    {
-        if ($location->location_ns != self::LOCATION_NS) {
-            // It's not one of our IDs... keep processing
-            return true;
-        }
-
-        $url = 'http://www.geonames.org/' . $location->location_id;
-
-        // it's been filled, so don't process further.
-        return false;
-    }
-
-    /**
-     * Machine-readable name for a location
-     *
-     * Given a location, we try to retrieve a geonames.org URL.
-     *
-     * @param Location $location Location to get the url for
-     * @param string   &$url     Place to put the url
-     *
-     * @return boolean whether to continue
-     */
-
-    function onLocationRdfUrl($location, &$url)
-    {
-        if ($location->location_ns != self::LOCATION_NS) {
-            // It's not one of our IDs... keep processing
-            return true;
-        }
-
-        $url = 'http://sws.geonames.org/' . $location->location_id . '/';
-
-        // it's been filled, so don't process further.
-        return false;
-    }
-
-    function getCache($attrs)
-    {
-        $c = common_memcache();
-
-        if (empty($c)) {
-            return null;
-        }
-
-        $key = $this->cacheKey($attrs);
-
-        $value = $c->get($key);
-
-        return $value;
-    }
-
-    function setCache($attrs, $loc)
-    {
-        $c = common_memcache();
-
-        if (empty($c)) {
-            return null;
-        }
-
-        $key = $this->cacheKey($attrs);
-
-        $result = $c->set($key, $loc, 0, time() + $this->expiry);
-
-        return $result;
-    }
-
-    function cacheKey($attrs)
-    {
-        $key = 'geonames:' .
-               implode(',', array_keys($attrs)) . ':'.
-               common_keyize(implode(',', array_values($attrs)));
-        if ($this->cachePrefix) {
-            return $this->cachePrefix . ':' . $key;
-        } else {
-            return common_cache_key($key);
-        }
-    }
-
-    function wsUrl($method, $params)
-    {
-        if (!empty($this->username)) {
-            $params['username'] = $this->username;
-        }
-
-        if (!empty($this->token)) {
-            $params['token'] = $this->token;
-        }
-
-        $str = http_build_query($params, null, '&');
-
-        return 'http://'.$this->host.'/'.$method.'?'.$str;
-    }
-
-    function getGeonames($method, $params)
-    {
-        if ($this->lastTimeout && (time() - $this->lastTimeout < $this->timeoutWindow)) {
-            throw new Exception("skipping due to recent web service timeout");
-        }
-
-        $client = HTTPClient::start();
-        $client->setConfig('connect_timeout', $this->timeout);
-        $client->setConfig('timeout', $this->timeout);
-
-        try {
-            $result = $client->get($this->wsUrl($method, $params));
-        } catch (Exception $e) {
-            common_log(LOG_ERR, __METHOD__ . ": " . $e->getMessage());
-            $this->lastTimeout = time();
-            throw $e;
-        }
-
-        if (!$result->isOk()) {
-            throw new Exception("HTTP error code " . $result->getStatus());
-        }
-
-        $body = $result->getBody();
-
-        if (empty($body)) {
-            throw new Exception("Empty HTTP body in response");
-        }
-
-        // This will throw an exception if the XML is mal-formed
-
-        $document = new SimpleXMLElement($body);
-
-        // No children, usually no results
-
-        $children = $document->children();
-
-        if (count($children) == 0) {
-            return array();
-        }
-
-        if (isset($document->status)) {
-            throw new Exception("Error #".$document->status['value']." ('".$document->status['message']."')");
-        }
-
-        // Array of elements, >0 elements
-
-        return $document->geoname;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Geonames',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:Geonames',
-                            'rawdescription' =>
-                            _m('Uses <a href="http://geonames.org/">Geonames</a> service to get human-readable '.
-                               'names for locations based on user-provided lat/long pairs.'));
-        return true;
-    }
-
-    function canonical($coord)
-    {
-        $coord = rtrim($coord, "0");
-        $coord = rtrim($coord, ".");
-
-        return $coord;
-    }
-}
diff --git a/plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalytics/GoogleAnalyticsPlugin.php
new file mode 100644 (file)
index 0000000..bb937ec
--- /dev/null
@@ -0,0 +1,84 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to use Google Analytics
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2008 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to use Google Analytics
+ *
+ * This plugin will spoot out the correct JavaScript spell to invoke Google Analytics on a page.
+ *
+ * Note that Google Analytics is not compatible with the Franklin Street Statement; consider using
+ * Piwik (http://www.piwik.org/) instead!
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+class GoogleAnalyticsPlugin extends Plugin
+{
+    var $code = null;
+
+    function __construct($code=null)
+    {
+        $this->code = $code;
+        parent::__construct();
+    }
+
+    function onEndShowScripts($action)
+    {
+        $js1 = 'var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");'.
+          'document.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));';
+        $js2 = sprintf('try{'.
+                       'var pageTracker = _gat._getTracker("%s");'.
+                       'pageTracker._trackPageview();'.
+                       '} catch(err) {}',
+                       $this->code);
+        $action->inlineScript($js1);
+        $action->inlineScript($js2);
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'GoogleAnalytics',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
+                            'rawdescription' =>
+                            _m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
+                               ' to track web access.'));
+        return true;
+    }
+}
diff --git a/plugins/GoogleAnalytics/locale/GoogleAnalytics.pot b/plugins/GoogleAnalytics/locale/GoogleAnalytics.pot
new file mode 100644 (file)
index 0000000..b3c0bc9
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: GoogleAnalyticsPlugin.php:80
+msgid ""
+"Use <a href=\"http://www.google.com/analytics/\">Google Analytics</a> to "
+"track web access."
+msgstr ""
diff --git a/plugins/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalyticsPlugin.php
deleted file mode 100644 (file)
index c646bf1..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to use Google Analytics
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2008 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to use Google Analytics
- *
- * This plugin will spoot out the correct JavaScript spell to invoke Google Analytics on a page.
- *
- * Note that Google Analytics is not compatible with the Franklin Street Statement; consider using
- * Piwik (http://www.piwik.org/) instead!
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class GoogleAnalyticsPlugin extends Plugin
-{
-    var $code = null;
-
-    function __construct($code=null)
-    {
-        $this->code = $code;
-        parent::__construct();
-    }
-
-    function onEndShowScripts($action)
-    {
-        $js1 = 'var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");'.
-          'document.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));';
-        $js2 = sprintf('try{'.
-                       'var pageTracker = _gat._getTracker("%s");'.
-                       'pageTracker._trackPageview();'.
-                       '} catch(err) {}',
-                       $this->code);
-        $action->inlineScript($js1);
-        $action->inlineScript($js2);
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'GoogleAnalytics',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics',
-                            'rawdescription' =>
-                            _m('Use <a href="http://www.google.com/analytics/">Google Analytics</a>'.
-                               ' to track Web access.'));
-        return true;
-    }
-}
index 8a9721ea90daa6b89e7eb9a4006470bcdf68f58d..dd8ff7217615e8138ee55a5623fa04126de75868 100644 (file)
@@ -34,17 +34,17 @@ class GravatarPlugin extends Plugin
     {
         return true;
     }
-    
+
     function onStartAvatarFormData($action)
     {
         $user = common_current_user();
         $hasGravatar = $this->hasGravatar($user->id);
-        
+
         if($hasGravatar) {
             return false;
         }
     }
-    
+
     function onEndAvatarFormData($action)
     {
         $user = common_current_user();
@@ -91,7 +91,7 @@ class GravatarPlugin extends Plugin
                              _m('To use a Gravatar first enter in an email address.'));
         }
     }
-    
+
     function onStartAvatarSaveForm($action)
     {
         if ($action->arg('add')) {
@@ -131,19 +131,18 @@ class GravatarPlugin extends Plugin
         }
         return false;
      }
 
     function gravatar_save()
     {
         $cur = common_current_user();
-        
+
         if(empty($cur->email)) {
-            return array('message' => _m('You do not have a email set in your profile.'),
+            return array('message' => _m('You do not have an email address set in your profile.'),
                          'success' => false);
         }
         //Get rid of previous Avatar
         $this->gravatar_remove();
-        
+
         foreach (array(AVATAR_PROFILE_SIZE, AVATAR_STREAM_SIZE, AVATAR_MINI_SIZE) as $size) {
             $gravatar = new Avatar();
             $gravatar->profile_id = $cur->id;
@@ -156,7 +155,7 @@ class GravatarPlugin extends Plugin
             $gravatar->created = DB_DataObject_Cast::dateTime(); # current time
 
             if (!$gravatar->insert()) {
-                return array('message' => _m('Failed to save Gravatar to the DB.'),
+                return array('message' => _m('Failed to save Gravatar to the database.'),
                              'success' => false);
             }
         }
@@ -181,7 +180,7 @@ class GravatarPlugin extends Plugin
         return array('message' => _m('Gravatar removed.'),
                      'success' => true);
     }
+
     function gravatar_url($email, $size)
     {
         $url = "http://www.gravatar.com/avatar.php?gravatar_id=".
@@ -202,4 +201,4 @@ class GravatarPlugin extends Plugin
 
         return true;
     }
-}
\ No newline at end of file
+}
index 9337e24a0aee7b1bbdbb56ca5e83656e21758acf..2639048089be8e621a7c6b1cb549988487aa7fbb 100644 (file)
@@ -10,4 +10,4 @@ addPlugin('Gravatar', array());
 ToDo:
 Site default all on for gravatar by default
 Migration Script
-Localize
\ No newline at end of file
+Localize
index d3a4cd86b8350792fe77e10f91ae136bda8d6dcc..b425259814d9d5466745e519bea0e9b81f8b61cc 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,51 +16,51 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: GravatarPlugin.php:57
+#: GravatarPlugin.php:60
 msgid "Set Gravatar"
 msgstr ""
 
-#: GravatarPlugin.php:60
+#: GravatarPlugin.php:63
 msgid "If you want to use your Gravatar image, click \"Add\"."
 msgstr ""
 
-#: GravatarPlugin.php:65
+#: GravatarPlugin.php:68
 msgid "Add"
 msgstr ""
 
-#: GravatarPlugin.php:75
+#: GravatarPlugin.php:78
 msgid "Remove Gravatar"
 msgstr ""
 
-#: GravatarPlugin.php:78
+#: GravatarPlugin.php:81
 msgid "If you want to remove your Gravatar image, click \"Remove\"."
 msgstr ""
 
-#: GravatarPlugin.php:83
+#: GravatarPlugin.php:86
 msgid "Remove"
 msgstr ""
 
-#: GravatarPlugin.php:88
+#: GravatarPlugin.php:91
 msgid "To use a Gravatar first enter in an email address."
 msgstr ""
 
-#: GravatarPlugin.php:137
-msgid "You do not have a email set in your profile."
+#: GravatarPlugin.php:140
+msgid "You do not have an email address set in your profile."
 msgstr ""
 
-#: GravatarPlugin.php:155
-msgid "Failed to save Gravatar to the DB."
+#: GravatarPlugin.php:158
+msgid "Failed to save Gravatar to the database."
 msgstr ""
 
-#: GravatarPlugin.php:159
+#: GravatarPlugin.php:162
 msgid "Gravatar added."
 msgstr ""
 
-#: GravatarPlugin.php:177
+#: GravatarPlugin.php:180
 msgid "Gravatar removed."
 msgstr ""
 
-#: GravatarPlugin.php:196
+#: GravatarPlugin.php:200
 msgid ""
 "The Gravatar plugin allows users to use their <a href=\"http://www.gravatar."
 "com/\">Gravatar</a> with StatusNet."
index 66be799d3edc02148f88d8e97be326cfce995b1d..1661ed86eaafc012629c7476c83606105823a21e 100644 (file)
@@ -51,16 +51,16 @@ class ImapPlugin extends Plugin
 
     function initialize(){
         if(!isset($this->mailbox)){
-            throw new Exception("must specify a mailbox");
+            throw new Exception(_m("A mailbox must be specified."));
         }
         if(!isset($this->user)){
-            throw new Exception("must specify a user");
+            throw new Exception(_m("A user must be specified.");
         }
         if(!isset($this->password)){
-            throw new Exception("must specify a password");
+            throw new Exception(_m("A password must be specified."));
         }
         if(!isset($this->poll_frequency)){
-            throw new Exception("must specify a poll_frequency");
+            throw new Exception(_m("A poll_frequency must be specified."));
         }
 
         return true;
index 0bbd42e78f023deec1d45443848fbd21e1a6ef07..e2f8c6d5431f829dd6153d03c95f04145669e5d3 100644 (file)
@@ -44,7 +44,7 @@ class ImapManager extends IoManager
      */
     public static function get()
     {
-        throw new Exception('ImapManager should be created using it\'s constructor, not the static get method');
+        throw new Exception(_m('ImapManager should be created using its constructor, not the using the static get method.'));
     }
 
     /**
@@ -92,12 +92,12 @@ class ImapManager extends IoManager
     {
         return $this->check_mailbox() > 0;
     }
-    
+
     function pollInterval()
     {
         return $this->plugin->poll_frequency;
     }
-    
+
     protected function connect()
     {
         $this->conn = imap_open($this->plugin->mailbox, $this->plugin->user, $this->plugin->password);
index ee8452aaaf519376a71a17f395c44810eddba528..5537c45bc3737bdb162650f71d778a6f8f6c0081 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,29 @@ msgstr ""
 msgid "Error"
 msgstr ""
 
-#: ImapPlugin.php:101
+#: imapmanager.php:47
+msgid ""
+"ImapManager should be created using its constructor, not the using the "
+"static get method."
+msgstr ""
+
+#: ImapPlugin.php:54
+msgid "A mailbox must be specified."
+msgstr ""
+
+#: ImapPlugin.php:57
+msgid "A user must be specified."
+msgstr ""
+
+#: ImapPlugin.php:60
+msgid "A password must be specified."
+msgstr ""
+
+#: ImapPlugin.php:63
+msgid "A poll_frequency must be specified."
+msgstr ""
+
+#: ImapPlugin.php:103
 msgid ""
 "The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for "
 "incoming mail containing user posts."
index a0f466fcb46d6d5d50ef879d247b98d7f9cde7a4..b8e25d01a39454dfc746ddf64733dfdd5303481a 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 8f09b1e51e2d3fb4347d727ed6c8e482c52e4a33..14342d59eac2b4a19fc7870641ec6897ae16ef0c 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 8156f6146fcc0ef0eb946f2dbfd5942fcc49371c..bd7adbb0943f5bf5e204272a199ede050f57f883 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 1f1647a75306581b03863b247e11663c29580566..159b2d265a2c13c123f04c7e21620d01d310a672 100644 (file)
@@ -60,13 +60,13 @@ class LdapCommon
         $this->ldap_config = $this->get_ldap_config();
 
         if(!isset($this->host)){
-            throw new Exception("must specify a host");
+            throw new Exception(_m("A host must be specified."));
         }
         if(!isset($this->basedn)){
-            throw new Exception("must specify a basedn");
+            throw new Exception(_m('"basedn" must be specified.'));
         }
         if(!isset($this->attributes['username'])){
-            throw new Exception("username attribute must be set.");
+            throw new Exception(_m('The username attribute must be set.'));
         }
     }
 
@@ -144,6 +144,12 @@ class LdapCommon
         if(!$entry){
             return false;
         }else{
+            if(empty($password)) {
+                //NET_LDAP2 will do an anonymous bind if bindpw is not set / empty string
+                //which causes all login attempts that involve a blank password to appear
+                //to succeed. Which is obviously not good.
+                return false;
+            }
             $config = $this->get_ldap_config();
             $config['binddn']=$entry->dn();
             $config['bindpw']=$password;
@@ -173,7 +179,7 @@ class LdapCommon
                 $ldap = $this->get_ldap_connection($config);
 
                 $entry = $this->get_user($username,array(),$ldap);
-                
+
                 $newCryptedPassword = $this->hashPassword($newpassword, $this->password_encoding);
                 if ($newCryptedPassword===false) {
                     return false;
@@ -254,15 +260,14 @@ class LdapCommon
      * @return string The hashed password.
      *
      */
-
-    function hashPassword( $passwordClear, $encodageType ) 
+    function hashPassword( $passwordClear, $encodageType )
     {
         $encodageType = strtolower( $encodageType );
         switch( $encodageType ) {
-            case 'crypt': 
-                $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2)); 
+            case 'crypt':
+                $cryptedPassword = '{CRYPT}' . crypt($passwordClear,$this->randomSalt(2));
                 break;
-                
+
             case 'ext_des':
                 // extended des crypt. see OpenBSD crypt man page.
                 if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 ) {return FALSE;} //Your system crypt library does not support extended DES encryption.
@@ -345,8 +350,7 @@ class LdapCommon
      * @param int $length The length of the salt string to generate.
      * @return string The generated salt string.
      */
-     
-    function randomSalt( $length ) 
+    function randomSalt( $length )
     {
         $possible = '0123456789'.
             'abcdefghijklmnopqrstuvwxyz'.
@@ -360,10 +364,8 @@ class LdapCommon
 
         return $str;
     }
-
 }
 
 class LdapInvalidCredentialsException extends Exception
 {
-
 }
index 4ee2e8e16ae2be99973deff8f7e14b2aa423c7db..960164fd31d058d4814571b160bfa316200b498b 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** 
+/**
  * StatusNet, the distributed open-source microblogging tool
  *
  * Cache the LDAP schema in memcache to improve performance
@@ -32,14 +32,14 @@ class MemcacheSchemaCache implements Net_LDAP2_SchemaCache
     protected $cacheKey;
 
     /**
-    * Initialize the simple cache
-    *
-    * Config is as following:
-    *  memcache     memcache instance
-    *  cachekey  the key in the cache to look at
-    *
-    * @param array $cfg Config array
-    */
+     * Initialize the simple cache
+     *
+     * Config is as following:
+     *  memcache     memcache instance
+     *  cachekey  the key in the cache to look at
+     *
+     * @param array $cfg Config array
+     */
     public function MemcacheSchemaCache($cfg)
     {
         $this->c = $cfg['c'];
@@ -57,18 +57,18 @@ class MemcacheSchemaCache implements Net_LDAP2_SchemaCache
     }
 
     /**
-    * Store a schema object in the cache
-    *
-    * This method will be called, if Net_LDAP2 has fetched a fresh
-    * schema object from LDAP and wants to init or refresh the cache.
-    *
-    * To invalidate the cache and cause Net_LDAP2 to refresh the cache,
-    * you can call this method with null or false as value.
-    * The next call to $ldap->schema() will then refresh the caches object.
-    *
-    * @param mixed $schema The object that should be cached
-    * @return true|Net_LDAP2_Error|false
-    */
+     * Store a schema object in the cache
+     *
+     * This method will be called, if Net_LDAP2 has fetched a fresh
+     * schema object from LDAP and wants to init or refresh the cache.
+     *
+     * To invalidate the cache and cause Net_LDAP2 to refresh the cache,
+     * you can call this method with null or false as value.
+     * The next call to $ldap->schema() will then refresh the caches object.
+     *
+     * @param mixed $schema The object that should be cached
+     * @return true|Net_LDAP2_Error|false
+     */
     public function storeSchema($schema) {
         return $this->c->set($this->cacheKey, $schema);
     }
index 1c3d6f84b3446724fe17d8896f5c21d2e4382733..bd98026fe821cb660a35b25eb02a1c185ea04b69 100644 (file)
@@ -40,7 +40,7 @@ class LilUrlPlugin extends UrlShortenerPlugin
     function onInitializePlugin(){
         parent::onInitializePlugin();
         if(!isset($this->serviceUrl)){
-            throw new Exception("must specify a serviceUrl");
+            throw new Exception(_m('A serviceUrl must be specified.'));
         }
     }
 
@@ -71,4 +71,3 @@ class LilUrlPlugin extends UrlShortenerPlugin
         return true;
     }
 }
-
index 47ed367277ebad019d02875d5f23e7efbd83b4e7..586b7a63f5a2283f51dc1b8eca3f772c32603f34 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,10 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: LilUrlPlugin.php:43
+msgid "A serviceUrl must be specified."
+msgstr ""
+
 #: LilUrlPlugin.php:68
 #, php-format
 msgid "Uses <a href=\"http://%1$s/\">%1$s</a> URL-shortener service."
diff --git a/plugins/Linkback/LinkbackPlugin.php b/plugins/Linkback/LinkbackPlugin.php
new file mode 100644 (file)
index 0000000..797572d
--- /dev/null
@@ -0,0 +1,247 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to do linkbacks for notices containing links
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+require_once('Auth/Yadis/Yadis.php');
+
+define('LINKBACKPLUGIN_VERSION', '0.1');
+
+/**
+ * Plugin to do linkbacks for notices containing URLs
+ *
+ * After new notices are saved, we check their text for URLs. If there
+ * are URLs, we test each URL to see if it supports any
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+class LinkbackPlugin extends Plugin
+{
+    var $notice = null;
+
+    function __construct()
+    {
+        parent::__construct();
+    }
+
+    function onHandleQueuedNotice($notice)
+    {
+        if ($notice->is_local == 1) {
+            // Try to avoid actually mucking with the
+            // notice content
+            $c = $notice->content;
+            $this->notice = $notice;
+            // Ignoring results
+            common_replace_urls_callback($c,
+                                         array($this, 'linkbackUrl'));
+        }
+        return true;
+    }
+
+    function linkbackUrl($url)
+    {
+        common_log(LOG_DEBUG,"Attempting linkback for " . $url);
+
+        $orig = $url;
+        $url = htmlspecialchars_decode($orig);
+        $scheme = parse_url($url, PHP_URL_SCHEME);
+        if (!in_array($scheme, array('http', 'https'))) {
+            return $orig;
+        }
+
+        // XXX: Do a HEAD first to save some time/bandwidth
+
+        $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
+
+        $result = $fetcher->get($url,
+                                array('User-Agent: ' . $this->userAgent(),
+                                      'Accept: application/html+xml,text/html'));
+
+        if (!in_array($result->status, array('200', '206'))) {
+            return $orig;
+        }
+
+        $pb = null;
+        $tb = null;
+
+        if (array_key_exists('X-Pingback', $result->headers)) {
+            $pb = $result->headers['X-Pingback'];
+        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?\/?>/',
+                              $result->body,
+                              $match)) {
+            $pb = $match[1];
+        }
+
+        if (!empty($pb)) {
+            $this->pingback($result->final_url, $pb);
+        } else {
+            $tb = $this->getTrackback($result->body, $result->final_url);
+            if (!empty($tb)) {
+                $this->trackback($result->final_url, $tb);
+            }
+        }
+
+        return $orig;
+    }
+
+    function pingback($url, $endpoint)
+    {
+        $args = array($this->notice->uri, $url);
+
+        if (!extension_loaded('xmlrpc')) {
+            if (!dl('xmlrpc.so')) {
+                common_log(LOG_ERR, "Can't pingback; xmlrpc extension not available.");
+                return;
+            }
+        }
+
+        $request = HTTPClient::start();
+        try {
+            $response = $request->post($endpoint,
+                array('Content-Type: text/xml'),
+                xmlrpc_encode_request('pingback.ping', $args));
+            $response = xmlrpc_decode($response->getBody());
+            if (xmlrpc_is_fault($response)) {
+                common_log(LOG_WARNING,
+                       "Pingback error for '$url' ($endpoint): ".
+                       "$response[faultString] ($response[faultCode])");
+            } else {
+                common_log(LOG_INFO,
+                       "Pingback success for '$url' ($endpoint): ".
+                       "'$response'");
+            }
+        } catch (HTTP_Request2_Exception $e) {
+            common_log(LOG_WARNING,
+                   "Pingback request failed for '$url' ($endpoint)");
+        }
+    }
+
+    // Largely cadged from trackback_cls.php by
+    // Ran Aroussi <ran@blogish.org>, GPL2 or any later version
+    // http://phptrackback.sourceforge.net/
+    function getTrackback($text, $url)
+    {
+        if (preg_match_all('/(<rdf:RDF.*?<\/rdf:RDF>)/sm', $text, $match, PREG_SET_ORDER)) {
+            for ($i = 0; $i < count($match); $i++) {
+                if (preg_match('|dc:identifier="' . preg_quote($url) . '"|ms', $match[$i][1])) {
+                    $rdf_array[] = trim($match[$i][1]);
+                }
+            }
+
+            // Loop through the RDFs array and extract trackback URIs
+
+            $tb_array = array(); // <- holds list of trackback URIs
+
+            if (!empty($rdf_array)) {
+
+                for ($i = 0; $i < count($rdf_array); $i++) {
+                    if (preg_match('/trackback:ping="([^"]+)"/', $rdf_array[$i], $array)) {
+                        $tb_array[] = trim($array[1]);
+                        break;
+                    }
+                }
+            }
+
+            // Return Trackbacks
+
+            if (empty($tb_array)) {
+                return null;
+            } else {
+                return $tb_array[0];
+            }
+        }
+
+        if (preg_match_all('/(<a[^>]*?rel=[\'"]trackback[\'"][^>]*?>)/', $text, $match)) {
+            foreach ($match[1] as $atag) {
+                if (preg_match('/href=[\'"]([^\'"]*?)[\'"]/', $atag, $url)) {
+                    return $url[1];
+                }
+            }
+        }
+
+        return null;
+
+    }
+
+    function trackback($url, $endpoint)
+    {
+        $profile = $this->notice->getProfile();
+
+        $args = array('title' => sprintf(_('%1$s\'s status on %2$s'),
+                                         $profile->nickname,
+                                         common_exact_date($this->notice->created)),
+                      'excerpt' => $this->notice->content,
+                      'url' => $this->notice->uri,
+                      'blog_name' => $profile->nickname);
+
+        $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
+
+        $result = $fetcher->post($endpoint,
+                                 http_build_query($args),
+                                 array('User-Agent: ' . $this->userAgent()));
+
+        if ($result->status != '200') {
+            common_log(LOG_WARNING,
+                       "Trackback error for '$url' ($endpoint): ".
+                       "$result->body");
+        } else {
+            common_log(LOG_INFO,
+                       "Trackback success for '$url' ($endpoint): ".
+                       "'$result->body'");
+        }
+    }
+
+    function userAgent()
+    {
+        return 'LinkbackPlugin/'.LINKBACKPLUGIN_VERSION .
+          ' StatusNet/' . STATUSNET_VERSION;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Linkback',
+                            'version' => LINKBACKPLUGIN_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Linkback',
+                            'rawdescription' =>
+                            _m('Notify blog authors when their posts have been linked in '.
+                               'microblog notices using '.
+                               '<a href="http://www.hixie.ch/specs/pingback/pingback">Pingback</a> '.
+                               'or <a href="http://www.movabletype.org/docs/mttrackback.html">Trackback</a> protocols.'));
+        return true;
+    }
+}
diff --git a/plugins/Linkback/locale/Linkback.pot b/plugins/Linkback/locale/Linkback.pot
new file mode 100644 (file)
index 0000000..5c5d638
--- /dev/null
@@ -0,0 +1,25 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: LinkbackPlugin.php:241
+msgid ""
+"Notify blog authors when their posts have been linked in microblog notices "
+"using <a href=\"http://www.hixie.ch/specs/pingback/pingback\">Pingback</a> "
+"or <a href=\"http://www.movabletype.org/docs/mttrackback.html\">Trackback</"
+"a> protocols."
+msgstr ""
diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php
deleted file mode 100644 (file)
index 8e44bea..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to do linkbacks for notices containing links
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-require_once('Auth/Yadis/Yadis.php');
-
-define('LINKBACKPLUGIN_VERSION', '0.1');
-
-/**
- * Plugin to do linkbacks for notices containing URLs
- *
- * After new notices are saved, we check their text for URLs. If there
- * are URLs, we test each URL to see if it supports any
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class LinkbackPlugin extends Plugin
-{
-    var $notice = null;
-
-    function __construct()
-    {
-        parent::__construct();
-    }
-
-    function onHandleQueuedNotice($notice)
-    {
-        if ($notice->is_local == 1) {
-            // Try to avoid actually mucking with the
-            // notice content
-            $c = $notice->content;
-            $this->notice = $notice;
-            // Ignoring results
-            common_replace_urls_callback($c,
-                                         array($this, 'linkbackUrl'));
-        }
-        return true;
-    }
-
-    function linkbackUrl($url)
-    {
-        common_log(LOG_DEBUG,"Attempting linkback for " . $url);
-
-        $orig = $url;
-        $url = htmlspecialchars_decode($orig);
-        $scheme = parse_url($url, PHP_URL_SCHEME);
-        if (!in_array($scheme, array('http', 'https'))) {
-            return $orig;
-        }
-
-        // XXX: Do a HEAD first to save some time/bandwidth
-
-        $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
-
-        $result = $fetcher->get($url,
-                                array('User-Agent: ' . $this->userAgent(),
-                                      'Accept: application/html+xml,text/html'));
-
-        if (!in_array($result->status, array('200', '206'))) {
-            return $orig;
-        }
-
-        $pb = null;
-        $tb = null;
-
-        if (array_key_exists('X-Pingback', $result->headers)) {
-            $pb = $result->headers['X-Pingback'];
-        } else if (preg_match('/<link rel="pingback" href="([^"]+)" ?\/?>/',
-                              $result->body,
-                              $match)) {
-            $pb = $match[1];
-        }
-
-        if (!empty($pb)) {
-            $this->pingback($result->final_url, $pb);
-        } else {
-            $tb = $this->getTrackback($result->body, $result->final_url);
-            if (!empty($tb)) {
-                $this->trackback($result->final_url, $tb);
-            }
-        }
-
-        return $orig;
-    }
-
-    function pingback($url, $endpoint)
-    {
-        $args = array($this->notice->uri, $url);
-
-        if (!extension_loaded('xmlrpc')) {
-            if (!dl('xmlrpc.so')) {
-                common_log(LOG_ERR, "Can't pingback; xmlrpc extension not available.");
-                return;
-            }
-        }
-
-        $request = HTTPClient::start();
-        try {
-            $response = $request->post($endpoint,
-                array('Content-Type: text/xml'),
-                xmlrpc_encode_request('pingback.ping', $args));
-            $response = xmlrpc_decode($response->getBody());
-            if (xmlrpc_is_fault($response)) {
-                common_log(LOG_WARNING,
-                       "Pingback error for '$url' ($endpoint): ".
-                       "$response[faultString] ($response[faultCode])");
-            } else {
-                common_log(LOG_INFO,
-                       "Pingback success for '$url' ($endpoint): ".
-                       "'$response'");
-            }
-        } catch (HTTP_Request2_Exception $e) {
-            common_log(LOG_WARNING,
-                   "Pingback request failed for '$url' ($endpoint)");
-        }
-    }
-
-    // Largely cadged from trackback_cls.php by
-    // Ran Aroussi <ran@blogish.org>, GPL2 or any later version
-    // http://phptrackback.sourceforge.net/
-
-    function getTrackback($text, $url)
-    {
-        if (preg_match_all('/(<rdf:RDF.*?<\/rdf:RDF>)/sm', $text, $match, PREG_SET_ORDER)) {
-            for ($i = 0; $i < count($match); $i++) {
-                if (preg_match('|dc:identifier="' . preg_quote($url) . '"|ms', $match[$i][1])) {
-                    $rdf_array[] = trim($match[$i][1]);
-                }
-            }
-
-            // Loop through the RDFs array and extract trackback URIs
-
-            $tb_array = array(); // <- holds list of trackback URIs
-
-            if (!empty($rdf_array)) {
-
-                for ($i = 0; $i < count($rdf_array); $i++) {
-                    if (preg_match('/trackback:ping="([^"]+)"/', $rdf_array[$i], $array)) {
-                        $tb_array[] = trim($array[1]);
-                        break;
-                    }
-                }
-            }
-
-            // Return Trackbacks
-
-            if (empty($tb_array)) {
-                return null;
-            } else {
-                return $tb_array[0];
-            }
-        }
-
-        if (preg_match_all('/(<a[^>]*?rel=[\'"]trackback[\'"][^>]*?>)/', $text, $match)) {
-            foreach ($match[1] as $atag) {
-                if (preg_match('/href=[\'"]([^\'"]*?)[\'"]/', $atag, $url)) {
-                    return $url[1];
-                }
-            }
-        }
-
-        return null;
-
-    }
-
-    function trackback($url, $endpoint)
-    {
-        $profile = $this->notice->getProfile();
-
-        $args = array('title' => sprintf(_('%1$s\'s status on %2$s'),
-                                         $profile->nickname,
-                                         common_exact_date($this->notice->created)),
-                      'excerpt' => $this->notice->content,
-                      'url' => $this->notice->uri,
-                      'blog_name' => $profile->nickname);
-
-        $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
-
-        $result = $fetcher->post($endpoint,
-                                 http_build_query($args),
-                                 array('User-Agent: ' . $this->userAgent()));
-
-        if ($result->status != '200') {
-            common_log(LOG_WARNING,
-                       "Trackback error for '$url' ($endpoint): ".
-                       "$result->body");
-        } else {
-            common_log(LOG_INFO,
-                       "Trackback success for '$url' ($endpoint): ".
-                       "'$result->body'");
-        }
-    }
-
-    function userAgent()
-    {
-        return 'LinkbackPlugin/'.LINKBACKPLUGIN_VERSION .
-          ' StatusNet/' . STATUSNET_VERSION;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Linkback',
-                            'version' => LINKBACKPLUGIN_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:Linkback',
-                            'rawdescription' =>
-                            _m('Notify blog authors when their posts have been linked in '.
-                               'microblog notices using '.
-                               '<a href="http://www.hixie.ch/specs/pingback/pingback">Pingback</a> '.
-                               'or <a href="http://www.movabletype.org/docs/mttrackback.html">Trackback</a> protocols.'));
-        return true;
-    }
-}
index e7240a64497adbe749b48c35cb0c99f2dc6bd923..c4ba6464eaa1077e5ca81b8e2fb65439d2f5d782 100644 (file)
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
  *
  * @seeAlso  Location
  */
-
 class MapstractionPlugin extends Plugin
 {
     const VERSION = STATUSNET_VERSION;
@@ -64,7 +63,6 @@ class MapstractionPlugin extends Plugin
      *
      * @return boolean event handler return
      */
-
     function onRouterInitialized($m)
     {
         $m->connect(':nickname/all/map',
@@ -85,7 +83,6 @@ class MapstractionPlugin extends Plugin
      *
      * @return boolean event handler return
      */
-
     function onAutoload($cls)
     {
         switch ($cls)
@@ -109,7 +106,6 @@ class MapstractionPlugin extends Plugin
      *
      * @return boolean event handler return
      */
-
     function onEndShowScripts($action)
     {
         $actionName = $action->trimmed('action');
@@ -190,6 +186,7 @@ class MapstractionPlugin extends Plugin
                                     array('nickname' => $action->trimmed('nickname')));
 
         $action->element('a', array('href' => $mapUrl),
+                         // TRANS: Clickable item to allow opening the map in full size.
                          _m("Full size"));
 
         $action->elementEnd('div');
@@ -203,8 +200,7 @@ class MapstractionPlugin extends Plugin
                             'homepage' => 'http://status.net/wiki/Plugin:Mapstraction',
                             'rawdescription' =>
                             _m('Show maps of users\' and friends\' notices '.
-                               'with <a href="http://www.mapstraction.com/">Mapstraction</a> '.
-                               'JavaScript library.'));
+                               'with <a href="http://www.mapstraction.com/">Mapstraction</a>.'));
         return true;
     }
 }
index 5dab670e26da8b49baa3e1fb40b819b1c3fdeb57..fa05ccc7ae30db7e6567b93244d57e5bcf21f633 100644 (file)
@@ -42,7 +42,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class AllmapAction extends MapAction
 {
     function prepare($args)
@@ -63,16 +62,22 @@ class AllmapAction extends MapAction
     function title()
     {
         if (!empty($this->profile->fullname)) {
+            // @todo FIXME: Bad i18n. Should be "%1$s (%2$s)".
             $base = $this->profile->fullname . ' (' . $this->user->nickname . ') ';
         } else {
             $base = $this->user->nickname;
         }
 
         if ($this->page == 1) {
+            // TRANS: Page title.
+            // TRANS: %s is a user nickname.
             return sprintf(_m("%s friends map"),
                            $base);
         } else {
-            return sprintf(_m("%s friends map, page %d"),
+            // @todo CHECKME: does this even happen? May not be needed.
+            // TRANS: Page title.
+            // TRANS: %1$s is a user nickname, %2$d is a page number.
+            return sprintf(_m("%1$s friends map, page %2$d"),
                            $base,
                            $this->page);
         }
index 764bf7b291dabf7e6c90a9073b501c34e67666bc..b7a849d1b4b77f817ccfbedfd25aeb20193b6fbc 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,18 +16,19 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: MapstractionPlugin.php:182
+#: MapstractionPlugin.php:178
 msgid "Map"
 msgstr ""
 
-#: MapstractionPlugin.php:193
+#. TRANS: Clickable item to allow opening the map in full size.
+#: MapstractionPlugin.php:190
 msgid "Full size"
 msgstr ""
 
-#: MapstractionPlugin.php:205
+#: MapstractionPlugin.php:202
 msgid ""
 "Show maps of users' and friends' notices with <a href=\"http://www."
-"mapstraction.com/\">Mapstraction</a> JavaScript library."
+"mapstraction.com/\">Mapstraction</a>."
 msgstr ""
 
 #: map.php:72
@@ -38,17 +39,14 @@ msgstr ""
 msgid "User has no profile."
 msgstr ""
 
-#: allmap.php:71
-#, php-format
-msgid "%s friends map"
-msgstr ""
-
+#. TRANS: Page title.
+#. TRANS: %s is a user nickname.
 #: allmap.php:74
 #, php-format
-msgid "%s friends map, page %d"
+msgid "%s friends map"
 msgstr ""
 
-#: usermap.php:71
+#: usermap.php:73
 #, php-format
 msgid "%s map, page %d"
 msgstr ""
index 7dab8e10a9bd0b154e69976275fdbb291f56847c..50ff82b67ef2b806f754e6ff08c8ee6803587ece 100644 (file)
@@ -42,7 +42,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class MapAction extends OwnerDesignAction
 {
     var $profile = null;
@@ -116,7 +115,6 @@ class MapAction extends OwnerDesignAction
      *
      * @return boolean event handler return
      */
-
     function showScripts()
     {
         parent::showScripts();
index 094334f6056f0d51e3ef69626827e9885b46042e..0ee956159c92f8fa95de398ac7d826547e9a773b 100644 (file)
@@ -42,10 +42,8 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class UsermapAction extends MapAction
 {
-
     function prepare($args)
     {
         if(parent::prepare($args)) {
@@ -61,14 +59,17 @@ class UsermapAction extends MapAction
     function title()
     {
         if (!empty($this->profile->fullname)) {
-            $base = $this->profile->fullname . ' (' . $this->user->nickname . ') ';
+            // @todo FIXME: Bad i18n. Should be '%1$s (%2$s)'
+            $base = $this->profile->fullname . ' (' . $this->user->nickname . ')';
         } else {
             $base = $this->user->nickname;
         }
 
         if ($this->page == 1) {
+            // @todo CHECKME: inconsisten with paged variant below. " map" missing.
             return $base;
         } else {
+            // @todo CHECKME: Is the part ", page %2$d" relevant here?
             return sprintf(_m("%s map, page %d"),
                            $base,
                            $this->page);
diff --git a/plugins/Memcache/MemcachePlugin.php b/plugins/Memcache/MemcachePlugin.php
new file mode 100644 (file)
index 0000000..f0c473c
--- /dev/null
@@ -0,0 +1,249 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Plugin to implement cache interface for memcache
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * A plugin to use memcache for the cache interface
+ *
+ * This used to be encoded as config-variable options in the core code;
+ * it's now broken out to a separate plugin. The same interface can be
+ * implemented by other plugins.
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+class MemcachePlugin extends Plugin
+{
+    static $cacheInitialized = false;
+
+    private $_conn  = null;
+    public $servers = array('127.0.0.1;11211');
+
+    public $compressThreshold = 20480;
+    public $compressMinSaving = 0.2;
+
+    public $persistent = null;
+
+    public $defaultExpiry = 86400; // 24h
+
+    /**
+     * Initialize the plugin
+     *
+     * Note that onStartCacheGet() may have been called before this!
+     *
+     * @return boolean flag value
+     */
+    function onInitializePlugin()
+    {
+        if (self::$cacheInitialized) {
+            $this->persistent = true;
+        } else {
+            // If we're a parent command-line process we need
+            // to be able to close out the connection after
+            // forking, so disable persistence.
+            //
+            // We'll turn it back on again the second time
+            // through which will either be in a child process,
+            // or a single-process script which is switching
+            // configurations.
+            $this->persistent = (php_sapi_name() == 'cli') ? false : true;
+        }
+        $this->_ensureConn();
+        self::$cacheInitialized = true;
+        return true;
+    }
+
+    /**
+     * Get a value associated with a key
+     *
+     * The value should have been set previously.
+     *
+     * @param string &$key   in; Lookup key
+     * @param mixed  &$value out; value associated with key
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheGet(&$key, &$value)
+    {
+        $this->_ensureConn();
+        $value = $this->_conn->get($key);
+        Event::handle('EndCacheGet', array($key, &$value));
+        return false;
+    }
+
+    /**
+     * Associate a value with a key
+     *
+     * @param string  &$key     in; Key to use for lookups
+     * @param mixed   &$value   in; Value to associate
+     * @param integer &$flag    in; Flag empty or Cache::COMPRESSED
+     * @param integer &$expiry  in; Expiry (passed through to Memcache)
+     * @param boolean &$success out; Whether the set was successful
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        $this->_ensureConn();
+        if ($expiry === null) {
+            $expiry = $this->defaultExpiry;
+        }
+        $success = $this->_conn->set($key, $value, $this->flag(intval($flag)), $expiry);
+        Event::handle('EndCacheSet', array($key, $value, $flag,
+                                           $expiry));
+        return false;
+    }
+
+    /**
+     * Atomically increment an existing numeric key value.
+     * Existing expiration time will not be changed.
+     *
+     * @param string &$key    in; Key to use for lookups
+     * @param int    &$step   in; Amount to increment (default 1)
+     * @param mixed  &$value  out; Incremented value, or false if key not set.
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheIncrement(&$key, &$step, &$value)
+    {
+        $this->_ensureConn();
+        $value = $this->_conn->increment($key, $step);
+        Event::handle('EndCacheIncrement', array($key, $step, $value));
+        return false;
+    }
+
+    /**
+     * Delete a value associated with a key
+     *
+     * @param string  &$key     in; Key to lookup
+     * @param boolean &$success out; whether it worked
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $this->_ensureConn();
+        $success = $this->_conn->delete($key);
+        Event::handle('EndCacheDelete', array($key));
+        return false;
+    }
+
+    function onStartCacheReconnect(&$success)
+    {
+        if (empty($this->_conn)) {
+            // nothing to do
+            return true;
+        }
+        if ($this->persistent) {
+            common_log(LOG_ERR, "Cannot close persistent memcached connection");
+            $success = false;
+        } else {
+            common_log(LOG_INFO, "Closing memcached connection");
+            $success = $this->_conn->close();
+            $this->_conn = null;
+        }
+        return false;
+    }
+
+    /**
+     * Ensure that a connection exists
+     *
+     * Checks the instance $_conn variable and connects
+     * if it is empty.
+     *
+     * @return void
+     */
+    private function _ensureConn()
+    {
+        if (empty($this->_conn)) {
+            $this->_conn = new Memcache();
+
+            if (is_array($this->servers)) {
+                $servers = $this->servers;
+            } else {
+                $servers = array($this->servers);
+            }
+            foreach ($servers as $server) {
+                if (strpos($server, ';') !== false) {
+                    list($host, $port) = explode(';', $server);
+                } else {
+                    $host = $server;
+                    $port = 11211;
+                }
+
+                $this->_conn->addServer($host, $port, $this->persistent);
+            }
+
+            // Compress items stored in the cache if they're over threshold in size
+            // (default 2KiB) and the compression would save more than min savings
+            // ratio (default 0.2).
+
+            // Allows the cache to store objects larger than 1MB (if they
+            // compress to less than 1MB), and improves cache memory efficiency.
+
+            $this->_conn->setCompressThreshold($this->compressThreshold,
+                                               $this->compressMinSaving);
+        }
+    }
+
+    /**
+     * Translate general flags to Memcached-specific flags
+     * @param int $flag
+     * @return int
+     */
+    protected function flag($flag)
+    {
+        $out = 0;
+        if ($flag & Cache::COMPRESSED == Cache::COMPRESSED) {
+            $out |= MEMCACHE_COMPRESSED;
+        }
+        return $out;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Memcache',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou, Craig Andrews',
+                            'homepage' => 'http://status.net/wiki/Plugin:Memcache',
+                            'rawdescription' =>
+                            _m('Use <a href="http://memcached.org/">Memcached</a> to cache query results.'));
+        return true;
+    }
+}
diff --git a/plugins/Memcache/locale/Memcache.pot b/plugins/Memcache/locale/Memcache.pot
new file mode 100644 (file)
index 0000000..848a39a
--- /dev/null
@@ -0,0 +1,22 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: MemcachePlugin.php:246
+msgid ""
+"Use <a href=\"http://memcached.org/\">Memcached</a> to cache query results."
+msgstr ""
diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php
deleted file mode 100644 (file)
index c3ca5c1..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Plugin to implement cache interface for memcache
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * A plugin to use memcache for the cache interface
- *
- * This used to be encoded as config-variable options in the core code;
- * it's now broken out to a separate plugin. The same interface can be
- * implemented by other plugins.
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-class MemcachePlugin extends Plugin
-{
-    static $cacheInitialized = false;
-
-    private $_conn  = null;
-    public $servers = array('127.0.0.1;11211');
-
-    public $compressThreshold = 20480;
-    public $compressMinSaving = 0.2;
-
-    public $persistent = null;
-
-    public $defaultExpiry = 86400; // 24h
-
-    /**
-     * Initialize the plugin
-     *
-     * Note that onStartCacheGet() may have been called before this!
-     *
-     * @return boolean flag value
-     */
-
-    function onInitializePlugin()
-    {
-        if (self::$cacheInitialized) {
-            $this->persistent = true;
-        } else {
-            // If we're a parent command-line process we need
-            // to be able to close out the connection after
-            // forking, so disable persistence.
-            //
-            // We'll turn it back on again the second time
-            // through which will either be in a child process,
-            // or a single-process script which is switching
-            // configurations.
-            $this->persistent = (php_sapi_name() == 'cli') ? false : true;
-        }
-        $this->_ensureConn();
-        self::$cacheInitialized = true;
-        return true;
-    }
-
-    /**
-     * Get a value associated with a key
-     *
-     * The value should have been set previously.
-     *
-     * @param string &$key   in; Lookup key
-     * @param mixed  &$value out; value associated with key
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheGet(&$key, &$value)
-    {
-        $this->_ensureConn();
-        $value = $this->_conn->get($key);
-        Event::handle('EndCacheGet', array($key, &$value));
-        return false;
-    }
-
-    /**
-     * Associate a value with a key
-     *
-     * @param string  &$key     in; Key to use for lookups
-     * @param mixed   &$value   in; Value to associate
-     * @param integer &$flag    in; Flag empty or Cache::COMPRESSED
-     * @param integer &$expiry  in; Expiry (passed through to Memcache)
-     * @param boolean &$success out; Whether the set was successful
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        $this->_ensureConn();
-        if ($expiry === null) {
-            $expiry = $this->defaultExpiry;
-        }
-        $success = $this->_conn->set($key, $value, $this->flag(intval($flag)), $expiry);
-        Event::handle('EndCacheSet', array($key, $value, $flag,
-                                           $expiry));
-        return false;
-    }
-
-    /**
-     * Atomically increment an existing numeric key value.
-     * Existing expiration time will not be changed.
-     *
-     * @param string &$key    in; Key to use for lookups
-     * @param int    &$step   in; Amount to increment (default 1)
-     * @param mixed  &$value  out; Incremented value, or false if key not set.
-     *
-     * @return boolean hook success
-     */
-    function onStartCacheIncrement(&$key, &$step, &$value)
-    {
-        $this->_ensureConn();
-        $value = $this->_conn->increment($key, $step);
-        Event::handle('EndCacheIncrement', array($key, $step, $value));
-        return false;
-    }
-
-    /**
-     * Delete a value associated with a key
-     *
-     * @param string  &$key     in; Key to lookup
-     * @param boolean &$success out; whether it worked
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $this->_ensureConn();
-        $success = $this->_conn->delete($key);
-        Event::handle('EndCacheDelete', array($key));
-        return false;
-    }
-
-    function onStartCacheReconnect(&$success)
-    {
-        if (empty($this->_conn)) {
-            // nothing to do
-            return true;
-        }
-        if ($this->persistent) {
-            common_log(LOG_ERR, "Cannot close persistent memcached connection");
-            $success = false;
-        } else {
-            common_log(LOG_INFO, "Closing memcached connection");
-            $success = $this->_conn->close();
-            $this->_conn = null;
-        }
-        return false;
-    }
-
-    /**
-     * Ensure that a connection exists
-     *
-     * Checks the instance $_conn variable and connects
-     * if it is empty.
-     *
-     * @return void
-     */
-
-    private function _ensureConn()
-    {
-        if (empty($this->_conn)) {
-            $this->_conn = new Memcache();
-
-            if (is_array($this->servers)) {
-                $servers = $this->servers;
-            } else {
-                $servers = array($this->servers);
-            }
-            foreach ($servers as $server) {
-                if (strpos($server, ';') !== false) {
-                    list($host, $port) = explode(';', $server);
-                } else {
-                    $host = $server;
-                    $port = 11211;
-                }
-
-                $this->_conn->addServer($host, $port, $this->persistent);
-            }
-
-            // Compress items stored in the cache if they're over threshold in size
-            // (default 2KiB) and the compression would save more than min savings
-            // ratio (default 0.2).
-
-            // Allows the cache to store objects larger than 1MB (if they
-            // compress to less than 1MB), and improves cache memory efficiency.
-
-            $this->_conn->setCompressThreshold($this->compressThreshold,
-                                               $this->compressMinSaving);
-        }
-    }
-
-    /**
-     * Translate general flags to Memcached-specific flags
-     * @param int $flag
-     * @return int
-     */
-    protected function flag($flag)
-    {
-        $out = 0;
-        if ($flag & Cache::COMPRESSED == Cache::COMPRESSED) {
-            $out |= MEMCACHE_COMPRESSED;
-        }
-        return $out;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Memcache',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou, Craig Andrews',
-                            'homepage' => 'http://status.net/wiki/Plugin:Memcache',
-                            'rawdescription' =>
-                            _m('Use <a href="http://memcached.org/">Memcached</a> to cache query results.'));
-        return true;
-    }
-}
-
diff --git a/plugins/Memcached/MemcachedPlugin.php b/plugins/Memcached/MemcachedPlugin.php
new file mode 100644 (file)
index 0000000..3b3383d
--- /dev/null
@@ -0,0 +1,221 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Plugin to implement cache interface for memcached
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Craig Andrews <candrews@integralblue.com>
+ * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * A plugin to use memcached for the cache interface
+ *
+ * This used to be encoded as config-variable options in the core code;
+ * it's now broken out to a separate plugin. The same interface can be
+ * implemented by other plugins.
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Craig Andrews <candrews@integralblue.com>
+ * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+class MemcachedPlugin extends Plugin
+{
+    static $cacheInitialized = false;
+
+    private $_conn  = null;
+    public $servers = array('127.0.0.1;11211');
+
+    public $defaultExpiry = 86400; // 24h
+
+    /**
+     * Initialize the plugin
+     *
+     * Note that onStartCacheGet() may have been called before this!
+     *
+     * @return boolean flag value
+     */
+    function onInitializePlugin()
+    {
+        $this->_ensureConn();
+        self::$cacheInitialized = true;
+        return true;
+    }
+
+    /**
+     * Get a value associated with a key
+     *
+     * The value should have been set previously.
+     *
+     * @param string &$key   in; Lookup key
+     * @param mixed  &$value out; value associated with key
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheGet(&$key, &$value)
+    {
+        $this->_ensureConn();
+        $value = $this->_conn->get($key);
+        Event::handle('EndCacheGet', array($key, &$value));
+        return false;
+    }
+
+    /**
+     * Associate a value with a key
+     *
+     * @param string  &$key     in; Key to use for lookups
+     * @param mixed   &$value   in; Value to associate
+     * @param integer &$flag    in; Flag empty or Cache::COMPRESSED
+     * @param integer &$expiry  in; Expiry (passed through to Memcache)
+     * @param boolean &$success out; Whether the set was successful
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        $this->_ensureConn();
+        if ($expiry === null) {
+            $expiry = $this->defaultExpiry;
+        }
+        $success = $this->_conn->set($key, $value, $expiry);
+        Event::handle('EndCacheSet', array($key, $value, $flag,
+                                           $expiry));
+        return false;
+    }
+
+    /**
+     * Atomically increment an existing numeric key value.
+     * Existing expiration time will not be changed.
+     *
+     * @param string &$key    in; Key to use for lookups
+     * @param int    &$step   in; Amount to increment (default 1)
+     * @param mixed  &$value  out; Incremented value, or false if key not set.
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheIncrement(&$key, &$step, &$value)
+    {
+        $this->_ensureConn();
+        $value = $this->_conn->increment($key, $step);
+        Event::handle('EndCacheIncrement', array($key, $step, $value));
+        return false;
+    }
+
+    /**
+     * Delete a value associated with a key
+     *
+     * @param string  &$key     in; Key to lookup
+     * @param boolean &$success out; whether it worked
+     *
+     * @return boolean hook success
+     */
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $this->_ensureConn();
+        $success = $this->_conn->delete($key);
+        Event::handle('EndCacheDelete', array($key));
+        return false;
+    }
+
+    function onStartCacheReconnect(&$success)
+    {
+        // nothing to do
+        return true;
+    }
+
+    /**
+     * Ensure that a connection exists
+     *
+     * Checks the instance $_conn variable and connects
+     * if it is empty.
+     *
+     * @return void
+     */
+    private function _ensureConn()
+    {
+        if (empty($this->_conn)) {
+            $this->_conn = new Memcached(common_config('site', 'nickname'));
+
+            if (!count($this->_conn->getServerList())) {
+            if (is_array($this->servers)) {
+                $servers = $this->servers;
+            } else {
+                $servers = array($this->servers);
+            }
+            foreach ($servers as $server) {
+                if (strpos($server, ';') !== false) {
+                    list($host, $port) = explode(';', $server);
+                } else {
+                    $host = $server;
+                    $port = 11211;
+                }
+
+                $this->_conn->addServer($host, $port);
+            }
+
+            // Compress items stored in the cache.
+
+            // Allows the cache to store objects larger than 1MB (if they
+            // compress to less than 1MB), and improves cache memory efficiency.
+
+            $this->_conn->setOption(Memcached::OPT_COMPRESSION, true);
+            }
+        }
+    }
+
+    /**
+     * Translate general flags to Memcached-specific flags
+     * @param int $flag
+     * @return int
+     */
+    protected function flag($flag)
+    {
+        //no flags are presently supported
+        return $flag;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Memcached',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou, Craig Andrews',
+                            'homepage' => 'http://status.net/wiki/Plugin:Memcached',
+                            'rawdescription' =>
+                            _m('Use <a href="http://memcached.org/">Memcached</a> to cache query results.'));
+        return true;
+    }
+}
diff --git a/plugins/Memcached/locale/Memcached.pot b/plugins/Memcached/locale/Memcached.pot
new file mode 100644 (file)
index 0000000..86a5737
--- /dev/null
@@ -0,0 +1,22 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: MemcachedPlugin.php:218
+msgid ""
+"Use <a href=\"http://memcached.org/\">Memcached</a> to cache query results."
+msgstr ""
diff --git a/plugins/MemcachedPlugin.php b/plugins/MemcachedPlugin.php
deleted file mode 100644 (file)
index 77b989b..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Plugin to implement cache interface for memcached
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @author    Craig Andrews <candrews@integralblue.com>
- * @copyright 2009 StatusNet, Inc.
- * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * A plugin to use memcached for the cache interface
- *
- * This used to be encoded as config-variable options in the core code;
- * it's now broken out to a separate plugin. The same interface can be
- * implemented by other plugins.
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @author    Craig Andrews <candrews@integralblue.com>
- * @copyright 2009 StatusNet, Inc.
- * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-class MemcachedPlugin extends Plugin
-{
-    static $cacheInitialized = false;
-
-    private $_conn  = null;
-    public $servers = array('127.0.0.1;11211');
-
-    public $defaultExpiry = 86400; // 24h
-
-    /**
-     * Initialize the plugin
-     *
-     * Note that onStartCacheGet() may have been called before this!
-     *
-     * @return boolean flag value
-     */
-
-    function onInitializePlugin()
-    {
-        $this->_ensureConn();
-        self::$cacheInitialized = true;
-        return true;
-    }
-
-    /**
-     * Get a value associated with a key
-     *
-     * The value should have been set previously.
-     *
-     * @param string &$key   in; Lookup key
-     * @param mixed  &$value out; value associated with key
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheGet(&$key, &$value)
-    {
-        $this->_ensureConn();
-        $value = $this->_conn->get($key);
-        Event::handle('EndCacheGet', array($key, &$value));
-        return false;
-    }
-
-    /**
-     * Associate a value with a key
-     *
-     * @param string  &$key     in; Key to use for lookups
-     * @param mixed   &$value   in; Value to associate
-     * @param integer &$flag    in; Flag empty or Cache::COMPRESSED
-     * @param integer &$expiry  in; Expiry (passed through to Memcache)
-     * @param boolean &$success out; Whether the set was successful
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        $this->_ensureConn();
-        if ($expiry === null) {
-            $expiry = $this->defaultExpiry;
-        }
-        $success = $this->_conn->set($key, $value, $expiry);
-        Event::handle('EndCacheSet', array($key, $value, $flag,
-                                           $expiry));
-        return false;
-    }
-
-    /**
-     * Atomically increment an existing numeric key value.
-     * Existing expiration time will not be changed.
-     *
-     * @param string &$key    in; Key to use for lookups
-     * @param int    &$step   in; Amount to increment (default 1)
-     * @param mixed  &$value  out; Incremented value, or false if key not set.
-     *
-     * @return boolean hook success
-     */
-    function onStartCacheIncrement(&$key, &$step, &$value)
-    {
-        $this->_ensureConn();
-        $value = $this->_conn->increment($key, $step);
-        Event::handle('EndCacheIncrement', array($key, $step, $value));
-        return false;
-    }
-
-    /**
-     * Delete a value associated with a key
-     *
-     * @param string  &$key     in; Key to lookup
-     * @param boolean &$success out; whether it worked
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $this->_ensureConn();
-        $success = $this->_conn->delete($key);
-        Event::handle('EndCacheDelete', array($key));
-        return false;
-    }
-
-    function onStartCacheReconnect(&$success)
-    {
-        // nothing to do
-        return true;
-    }
-
-    /**
-     * Ensure that a connection exists
-     *
-     * Checks the instance $_conn variable and connects
-     * if it is empty.
-     *
-     * @return void
-     */
-
-    private function _ensureConn()
-    {
-        if (empty($this->_conn)) {
-            $this->_conn = new Memcached(common_config('site', 'nickname'));
-
-            if (!count($this->_conn->getServerList())) {
-            if (is_array($this->servers)) {
-                $servers = $this->servers;
-            } else {
-                $servers = array($this->servers);
-            }
-            foreach ($servers as $server) {
-                if (strpos($server, ';') !== false) {
-                    list($host, $port) = explode(';', $server);
-                } else {
-                    $host = $server;
-                    $port = 11211;
-                }
-
-                $this->_conn->addServer($host, $port);
-            }
-
-            // Compress items stored in the cache.
-
-            // Allows the cache to store objects larger than 1MB (if they
-            // compress to less than 1MB), and improves cache memory efficiency.
-
-            $this->_conn->setOption(Memcached::OPT_COMPRESSION, true);
-            }
-        }
-    }
-
-    /**
-     * Translate general flags to Memcached-specific flags
-     * @param int $flag
-     * @return int
-     */
-    protected function flag($flag)
-    {
-        //no flags are presently supported
-        return $flag;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Memcached',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou, Craig Andrews',
-                            'homepage' => 'http://status.net/wiki/Plugin:Memcached',
-                            'rawdescription' =>
-                            _m('Use <a href="http://memcached.org/">Memcached</a> to cache query results.'));
-        return true;
-    }
-}
-
index ec8c9e217c8eb16e97f4edc41fcb7610f1c52af8..a48c52b5691acab1d703acf53882cf0168c60828 100644 (file)
@@ -42,7 +42,6 @@ require_once INSTALLDIR.'/plugins/Realtime/RealtimePlugin.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class MeteorPlugin extends RealtimePlugin
 {
     public $webserver     = null;
@@ -112,7 +111,8 @@ class MeteorPlugin extends RealtimePlugin
         // May throw an exception.
         $this->_socket = stream_socket_client("tcp://{$controlserver}:{$this->controlport}", $errno, $errstr, $timeout, $flags);
         if (!$this->_socket) {
-            throw new Exception("Couldn't connect to {$controlserver} on {$this->controlport}");
+            // TRANS: Exception. %1$s is the control server, %2$s is the control port.
+            throw new Exception(sprintf(_m('Couldn\'t connect to %1$s on %2$s.'),$controlserver,$this->controlport));
         }
     }
 
@@ -124,7 +124,8 @@ class MeteorPlugin extends RealtimePlugin
         $cnt = fwrite($this->_socket, $cmd);
         $result = fgets($this->_socket);
         if (preg_match('/^ERR (.*)$/', $result, $matches)) {
-            throw new Exception('Error adding meteor message "'.$matches[1].'"');
+            // TRANS: Exception. %s is the Meteor message that could not be added.
+            throw new Exception(sprintf(_m('Error adding meteor message "%s"'),$matches[1]));
         }
         // TODO: parse and deal with result
     }
@@ -146,4 +147,15 @@ class MeteorPlugin extends RealtimePlugin
         }
         return implode('-', $path);
     }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Meteor',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Meteor',
+                            'rawdescription' =>
+                            _m('Plugin to do "real time" updates using Comet/Bayeux.'));
+        return true;
+    }
 }
index 13010e75a175f86ffb7db0803bac0ca609ae7699..b37531165232be8e94e864ac794435925d96523d 100644 (file)
@@ -51,7 +51,6 @@ class MinifyPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onStartInitializeRouter($m)
     {
         $m->connect('main/min',
@@ -177,8 +176,7 @@ class MinifyPlugin extends Plugin
                             'author' => 'Craig Andrews',
                             'homepage' => 'http://status.net/wiki/Plugin:Minify',
                             'rawdescription' =>
-                            _m('The Minify plugin minifies your CSS and Javascript, removing whitespace and comments.'));
+                            _m('The Minify plugin minifies StatusNet\'s CSS and JavaScript, removing whitespace and comments.'));
         return true;
     }
 }
-
index 6f7372d405bc5087600bc6ae43d295a7b68e5e87..fb19ccfc4984c1234aa6ccd089db7fbcbc583df0 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,8 +16,20 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: minify.php:49
+msgid "The parameter \"f\" is not a valid path."
+msgstr ""
+
+#: minify.php:53
+msgid "The parameter \"f\" is required but missing."
+msgstr ""
+
+#: minify.php:111
+msgid "File type not supported."
+msgstr ""
+
 #: MinifyPlugin.php:179
 msgid ""
-"The Minify plugin minifies your CSS and Javascript, removing whitespace and "
-"comments."
+"The Minify plugin minifies StatusNet's CSS and JavaScript, removing "
+"whitespace and comments."
 msgstr ""
index 64727f5e7e27b7c4fcfc2233bf02a5cb4baf8fb9..9a59c4223c8ec1f613b995eefc01a66275a748ef 100644 (file)
@@ -46,11 +46,11 @@ class MinifyAction extends Action
             if(file_exists($this->file)) {
                 return true;
             } else {
-                $this->clientError(_('f parameter is not a valid path'),404);
+                $this->clientError(_m('The parameter "f" is not a valid path.'),404);
                 return false;
             }
         }else{
-            $this->clientError(_('f parameter is required'),500);
+            $this->clientError(_m('The parameter "f" is required but missing.'),500);
             return false;
         }
     }
@@ -108,10 +108,9 @@ class MinifyAction extends Action
                 header('Content-Type: ' . self::TYPE_CSS);
                 break;
             default:
-                $this->clientError(_('File type not supported'),500);
+                $this->clientError(_m('File type not supported.'),500);
                 return false;
         }
         return $out;
     }
 }
-
index 72a6a04fbd9ac27a7f428d361b5179b751cab0e8..b042bf7edd64fc304d2d0dfdd15a06eb11135789 100644 (file)
@@ -36,7 +36,6 @@ define('PAGE_TYPE_PREFS_MOBILEPROFILE',
 
 require_once INSTALLDIR.'/plugins/Mobile/WAP20Plugin.php';
 
-
 /**
  * Superclass for plugin to output XHTML Mobile Profile
  *
@@ -46,7 +45,6 @@ require_once INSTALLDIR.'/plugins/Mobile/WAP20Plugin.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class MobileProfilePlugin extends WAP20Plugin
 {
     public $DTD            = null;
@@ -60,14 +58,13 @@ class MobileProfilePlugin extends WAP20Plugin
         parent::__construct();
     }
 
-
     function onStartShowHTML($action)
     {
         // XXX: This should probably graduate to WAP20Plugin
 
         // If they are on the mobile site, serve them MP
         if ((common_config('site', 'mobileserver').'/'.
-             common_config('site', 'path').'/' == 
+             common_config('site', 'path').'/' ==
             $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])) {
 
             $this->serveMobile = true;
@@ -78,18 +75,18 @@ class MobileProfilePlugin extends WAP20Plugin
             //if (strstr('application/vnd.wap.xhtml+xml', $type) !== false) {
             //    $this->serveMobile = true;
             //} else {
-                // If they are a mobile device that supports WAP 2.0, 
+                // If they are a mobile device that supports WAP 2.0,
                 // serve them MP
 
                 // XXX: Browser sniffing sucks
 
-                // I really don't like going through this every page, 
+                // I really don't like going through this every page,
                 // perhaps use $_SESSION or cookies
 
-                // May be better to group the devices in terms of 
+                // May be better to group the devices in terms of
                 // low,mid,high-end
 
-                // Or, detect the mobile devices based on their support for 
+                // Or, detect the mobile devices based on their support for
                 // MP 1.0, 1.1, or 1.2 may be ideal. Possible?
 
                 $this->mobiledevices = array(
@@ -165,11 +162,11 @@ class MobileProfilePlugin extends WAP20Plugin
                 }
             //}
 
-            // If they are okay with MP, and the site has a mobile server, 
+            // If they are okay with MP, and the site has a mobile server,
             // redirect there
-            if ($this->serveMobile && 
+            if ($this->serveMobile &&
                 common_config('site', 'mobileserver') !== false &&
-                (common_config('site', 'mobileserver') != 
+                (common_config('site', 'mobileserver') !=
                     common_config('site', 'server'))) {
 
                 // FIXME: Redirect to equivalent page on mobile site instead
@@ -193,8 +190,8 @@ class MobileProfilePlugin extends WAP20Plugin
             $type = common_negotiate_type($cp, $sp);
 
             if (!$type) {
-                throw new ClientException(_('This page is not available in a '.
-                                            'media type you accept'), 406);
+                throw new ClientException(_m('This page is not available in a '.
+                                            'media type you accept.'), 406);
             }
         //}
 
@@ -217,7 +214,6 @@ class MobileProfilePlugin extends WAP20Plugin
         return false;
     }
 
-
     function setMobileFeatures($useragent)
     {
         $mobiledeviceInputFileType = array(
@@ -234,7 +230,6 @@ class MobileProfilePlugin extends WAP20Plugin
         }
     }
 
-
     function onStartShowStatusNetStyles($action)
     {
         if (!$this->serveMobile) {
@@ -262,7 +257,6 @@ class MobileProfilePlugin extends WAP20Plugin
         return false;
     }
 
-
     function onStartShowUAStyles($action) {
         if (!$this->serveMobile) {
             return true;
@@ -288,18 +282,17 @@ class MobileProfilePlugin extends WAP20Plugin
         return false;
     }
 
-
     function _showLogo($action)
     {
         $action->elementStart('address', 'vcard');
         $action->elementStart('a', array('class' => 'url home bookmark',
                                        'href' => common_local_url('public')));
-        if (common_config('site', 'mobilelogo') || 
-            file_exists(Theme::file('logo.png')) || 
+        if (common_config('site', 'mobilelogo') ||
+            file_exists(Theme::file('logo.png')) ||
             file_exists(Theme::file('mobilelogo.png'))) {
 
             $action->element('img', array('class' => 'photo',
-                'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') : 
+                'src' => (common_config('site', 'mobilelogo')) ? common_config('site', 'mobilelogo') :
                             ((file_exists(Theme::file('mobilelogo.png'))) ? (Theme::path('mobilelogo.png')) : Theme::path('logo.png')),
                 'alt' => common_config('site', 'name')));
         }
@@ -308,44 +301,42 @@ class MobileProfilePlugin extends WAP20Plugin
         $action->elementEnd('address');
     }
 
-
     function _showPrimaryNav($action)
     {
         $user    = common_current_user();
         $action->elementStart('ul', array('id' => 'site_nav_global_primary'));
         if ($user) {
             $action->menuItem(common_local_url('all', array('nickname' => $user->nickname)),
-                            _('Home'));
+                            _m('Home'));
             $action->menuItem(common_local_url('profilesettings'),
-                            _('Account'));
+                            _m('Account'));
             $action->menuItem(common_local_url('oauthconnectionssettings'),
-                                _('Connect'));
+                                _m('Connect'));
             if ($user->hasRight(Right::CONFIGURESITE)) {
                 $action->menuItem(common_local_url('siteadminpanel'),
-                                _('Admin'), _('Change site configuration'), false, 'nav_admin');
+                                _m('Admin'), _m('Change site configuration'), false, 'nav_admin');
             }
             if (common_config('invite', 'enabled')) {
                 $action->menuItem(common_local_url('invite'),
-                                _('Invite'));
+                                _m('Invite'));
             }
             $action->menuItem(common_local_url('logout'),
-                            _('Logout'));
+                            _m('Logout'));
         } else {
             if (!common_config('site', 'closed')) {
                 $action->menuItem(common_local_url('register'),
-                                _('Register'));
+                                _m('Register'));
             }
             $action->menuItem(common_local_url('login'),
-                            _('Login'));
+                            _m('Login'));
         }
         if ($user || !common_config('site', 'private')) {
             $action->menuItem(common_local_url('peoplesearch'),
-                            _('Search'));
+                            _m('Search'));
         }
         $action->elementEnd('ul');
     }
 
-
     function onStartShowNoticeFormData($form)
     {
         if (!$this->serveMobile) {
@@ -367,11 +358,11 @@ class MobileProfilePlugin extends WAP20Plugin
 
         if (common_config('attachments', 'uploads')) {
             if ($this->mobileFeatures['inputfiletype']) {
-                $form->out->element('label', array('for' => 'notice_data-attach'), _('Attach'));
+                $form->out->element('label', array('for' => 'notice_data-attach'), _m('Attach'));
                 $form->out->element('input', array('id' => 'notice_data-attach',
                                                    'type' => 'file',
                                                    'name' => 'attach',
-                                                   'title' => _('Attach a file')));
+                                                   'title' => _m('Attach a file')));
                 $form->out->hidden('MAX_FILE_SIZE', common_config('attachments', 'file_quota'));
             }
         }
@@ -383,7 +374,6 @@ class MobileProfilePlugin extends WAP20Plugin
         return false;
     }
 
-
     function onStartShowAside($action)
     {
         if ($this->serveMobile) {
@@ -391,13 +381,11 @@ class MobileProfilePlugin extends WAP20Plugin
         }
     }
 
-
     function onStartShowScripts($action)
     {
 
     }
 
-
     function _common_path($relative, $ssl=false)
     {
         $pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : '';
index 9495e975b98b6f5ca756df9a0ffbfb11c3bcb497..34dfa8d7dba959cfbd846a22070f21dec266d26a 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,6 +16,58 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: MobileProfilePlugin.php:424
+#: MobileProfilePlugin.php:193
+msgid "This page is not available in a media type you accept."
+msgstr ""
+
+#: MobileProfilePlugin.php:310
+msgid "Home"
+msgstr ""
+
+#: MobileProfilePlugin.php:312
+msgid "Account"
+msgstr ""
+
+#: MobileProfilePlugin.php:314
+msgid "Connect"
+msgstr ""
+
+#: MobileProfilePlugin.php:317
+msgid "Admin"
+msgstr ""
+
+#: MobileProfilePlugin.php:317
+msgid "Change site configuration"
+msgstr ""
+
+#: MobileProfilePlugin.php:321
+msgid "Invite"
+msgstr ""
+
+#: MobileProfilePlugin.php:324
+msgid "Logout"
+msgstr ""
+
+#: MobileProfilePlugin.php:328
+msgid "Register"
+msgstr ""
+
+#: MobileProfilePlugin.php:331
+msgid "Login"
+msgstr ""
+
+#: MobileProfilePlugin.php:335
+msgid "Search"
+msgstr ""
+
+#: MobileProfilePlugin.php:361
+msgid "Attach"
+msgstr ""
+
+#: MobileProfilePlugin.php:365
+msgid "Attach a file"
+msgstr ""
+
+#: MobileProfilePlugin.php:417
 msgid "XHTML MobileProfile output for supporting user agents."
 msgstr ""
index 9f53173db20f3125f4749395672cb1ab99545bfe..dea0417f5fd758375685746649e94f9d590ac2d3 100644 (file)
@@ -123,7 +123,7 @@ class NoticeTitlePlugin extends Plugin
                             'author' => 'Evan Prodromou',
                             'homepage' => $url,
                             'rawdescription' =>
-                            _m('Adds optional titles to notices'));
+                            _m('Adds optional titles to notices.'));
         return true;
     }
 
@@ -164,7 +164,7 @@ class NoticeTitlePlugin extends Plugin
         $title = $action->trimmed('notice_title');
         if (!empty($title)) {
             if (mb_strlen($title) > Notice_title::MAXCHARS) {
-                throw new Exception(sprintf(_m("Notice title too long (max %d)",
+                throw new Exception(sprintf(_m("The notice title is too long (max %d characters).",
                                                Notice_title::MAXCHARS)));
             }
         }
@@ -296,7 +296,7 @@ class NoticeTitlePlugin extends Plugin
             if (!empty($title)) {
                 $action->element('title', null,
                                  // TRANS: Page title. %1$s is the title, %2$s is the site name.
-                                 sprintf(_("%1\$s - %2\$s"),
+                                 sprintf(_m("%1\$s - %2\$s"),
                                          $title,
                                          common_config('site', 'name')));
             }
@@ -328,4 +328,3 @@ class NoticeTitlePlugin extends Plugin
         return true;
     }
 }
-
diff --git a/plugins/NoticeTitle/locale/NoticeTitle.pot b/plugins/NoticeTitle/locale/NoticeTitle.pot
new file mode 100644 (file)
index 0000000..f6df630
--- /dev/null
@@ -0,0 +1,27 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: NoticeTitlePlugin.php:126
+msgid "Adds optional titles to notices."
+msgstr ""
+
+#. TRANS: Page title. %1$s is the title, %2$s is the site name.
+#: NoticeTitlePlugin.php:299
+#, php-format
+msgid "%1$s - %2$s"
+msgstr ""
index 77bc9872b401827057bc6b5c92fc118ead2b4fb1..6cd935c9e52ebbb63a12ae329b0f2147f583774d 100644 (file)
@@ -223,6 +223,7 @@ class OStatusPlugin extends Plugin
                                     array('nickname' => $profile->nickname));
             $output->element('a', array('href' => $url,
                                         'class' => 'entity_remote_subscribe'),
+                                // TRANS: Link description for link to subscribe to a remote user.
                                 _m('Subscribe'));
 
             $output->elementEnd('li');
@@ -241,6 +242,7 @@ class OStatusPlugin extends Plugin
                                     array('group' => $group->nickname));
             $output->element('a', array('href' => $url,
                                         'class' => 'entity_remote_subscribe'),
+                                // TRANS: Link description for link to join a remote group.
                                 _m('Join'));
         }
 
@@ -453,6 +455,7 @@ class OStatusPlugin extends Plugin
                 }
 
                 $url = $notice->url;
+                // TRANSLATE: %s is a domain.
                 $title = sprintf(_m("Sent from %s via OStatus"), $domain);
                 return false;
             }
@@ -524,6 +527,7 @@ class OStatusPlugin extends Plugin
         }
 
         if (!$oprofile->subscribe()) {
+            // TRANS: Exception.
             throw new Exception(_m('Could not set up remote subscription.'));
         }
     }
@@ -553,25 +557,10 @@ class OStatusPlugin extends Plugin
             return true;
         }
 
-        $act = new Activity();
-
-        $act->verb = ActivityVerb::FOLLOW;
-
-        $act->id   = TagURI::mint('follow:%d:%d:%s',
-                                  $subscriber->id,
-                                  $other->id,
-                                  common_date_iso8601(time()));
-
-        $act->time    = time();
-        $act->title   = _("Follow");
-        // TRANS: Success message for subscribe to user attempt through OStatus.
-        // TRANS: %1$s is the subscriber name, %2$s is the subscribed user's name.
-        $act->content = sprintf(_("%1$s is now following %2$s."),
-                               $subscriber->getBestName(),
-                               $other->getBestName());
+        $sub = Subscription::pkeyGet(array('subscriber' => $subscriber->id,
+                                           'subscribed' => $other->id));
 
-        $act->actor   = ActivityObject::fromProfile($subscriber);
-        $act->object  = ActivityObject::fromProfile($other);
+        $act = $sub->asActivity();
 
         $oprofile->notifyActivity($act, $subscriber);
 
@@ -613,10 +602,10 @@ class OStatusPlugin extends Plugin
                                   common_date_iso8601(time()));
 
         $act->time    = time();
-        $act->title   = _("Unfollow");
+        $act->title   = _m('Unfollow');
         // TRANS: Success message for unsubscribe from user attempt through OStatus.
         // TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name.
-        $act->content = sprintf(_("%1$s stopped following %2$s."),
+        $act->content = sprintf(_m('%1$s stopped following %2$s.'),
                                $profile->getBestName(),
                                $other->getBestName());
 
@@ -647,6 +636,9 @@ class OStatusPlugin extends Plugin
                 throw new Exception(_m('Could not set up remote group membership.'));
             }
 
+            // NOTE: we don't use Group_member::asActivity() since that record
+            // has not yet been created.
+
             $member = Profile::staticGet($user->id);
 
             $act = new Activity();
@@ -671,6 +663,7 @@ class OStatusPlugin extends Plugin
                 return true;
             } else {
                 $oprofile->garbageCollect();
+                // TRANS: Exception.
                 throw new Exception(_m("Failed joining remote group."));
             }
         }
@@ -729,7 +722,6 @@ class OStatusPlugin extends Plugin
      * @param Notice $notice being favored
      * @return hook return value
      */
-
     function onEndFavorNotice(Profile $profile, Notice $notice)
     {
         $user = User::staticGet('id', $profile->id);
@@ -744,24 +736,15 @@ class OStatusPlugin extends Plugin
             return true;
         }
 
-        $act = new Activity();
-
-        $act->verb = ActivityVerb::FAVORITE;
-        $act->id   = TagURI::mint('favor:%d:%d:%s',
-                                  $profile->id,
-                                  $notice->id,
-                                  common_date_iso8601(time()));
+        $fav = Fave::pkeyGet(array('user_id' => $user->id,
+                                   'notice_id' => $notice->id));
 
-        $act->time    = time();
-        $act->title   = _("Favor");
-        // TRANS: Success message for adding a favorite notice through OStatus.
-        // TRANS: %1$s is the favoring user's name, %2$s is URI to the favored notice.
-        $act->content = sprintf(_("%1$s marked notice %2$s as a favorite."),
-                               $profile->getBestName(),
-                               $notice->uri);
+        if (empty($fav)) {
+            // That's weird.
+            return true;
+        }
 
-        $act->actor   = ActivityObject::fromProfile($profile);
-        $act->object  = ActivityObject::fromNotice($notice);
+        $act = $fav->asActivity();
 
         $oprofile->notifyActivity($act, $profile);
 
@@ -799,10 +782,10 @@ class OStatusPlugin extends Plugin
                                   $notice->id,
                                   common_date_iso8601(time()));
         $act->time    = time();
-        $act->title   = _("Disfavor");
+        $act->title   = _m('Disfavor');
         // TRANS: Success message for remove a favorite notice through OStatus.
         // TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice.
-        $act->content = sprintf(_("%1$s marked notice %2$s as no longer a favorite."),
+        $act->content = sprintf(_m('%1$s marked notice %2$s as no longer a favorite.'),
                                $profile->getBestName(),
                                $notice->uri);
 
@@ -876,8 +859,9 @@ class OStatusPlugin extends Plugin
             $action->elementStart('p', array('id' => 'entity_remote_subscribe',
                                              'class' => 'entity_subscribe'));
             $action->element('a', array('href' => common_local_url($target),
-                                        'class' => 'entity_remote_subscribe')
-                                , _m('Remote')); // @todo: i18n: Add translator hint for this text.
+                                        'class' => 'entity_remote_subscribe'),
+                                // TRANS: Link text for link to remote subscribe.
+                                _m('Remote'));
             $action->elementEnd('p');
             $action->elementEnd('div');
         }
@@ -916,6 +900,7 @@ class OStatusPlugin extends Plugin
                                   $profile->id,
                                   common_date_iso8601(time()));
         $act->time    = time();
+        // TRANS: Title for activity.
         $act->title   = _m("Profile update");
         // TRANS: Ping text for remote profile update through OStatus.
         // TRANS: %s is user that updated their profile.
@@ -948,7 +933,8 @@ class OStatusPlugin extends Plugin
                                         array('nickname' => $profileUser->nickname));
                 $output->element('a', array('href' => $url,
                                             'class' => 'entity_remote_subscribe'),
-                                 _m('Subscribe')); // @todo: i18n: Add context.
+                                  // TRANS: Link text for a user to subscribe to an OStatus user.
+                                 _m('Subscribe'));
                 $output->elementEnd('li');
             }
         }
@@ -962,9 +948,9 @@ class OStatusPlugin extends Plugin
                             'version' => STATUSNET_VERSION,
                             'author' => 'Evan Prodromou, James Walker, Brion Vibber, Zach Copley',
                             'homepage' => 'http://status.net/wiki/Plugin:OStatus',
-                            'rawdescription' =>
-                            _m('Follow people across social networks that implement '.
-                               '<a href="http://ostatus.org/">OStatus</a>.')); // @todo i18n: Add translator hint.
+                            // TRANS: Plugin description.
+                            'rawdescription' => _m('Follow people across social networks that implement '.
+                               '<a href="http://ostatus.org/">OStatus</a>.'));
 
         return true;
     }
index 5094dccf0f05015bc408c5a4d833a67ef19ea977..3a3d63fe20568a11e29ecf899117db137f628c11 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/**
- * @package OStatusPlugin
- * @author James Walker <james@status.net>
- */
-
 if (!defined('STATUSNET')) {
     exit(1);
 }
 
+/**
+ * @package OStatusPlugin
+ * @author James Walker <james@status.net>
+ */
 class GroupsalmonAction extends SalmonAction
 {
     var $group = null;
@@ -37,17 +36,20 @@ class GroupsalmonAction extends SalmonAction
         $id = $this->trimmed('id');
 
         if (!$id) {
-            $this->clientError(_('No ID.'));
+            // TRANS: Client error.
+            $this->clientError(_m('No ID.'));
         }
 
         $this->group = User_group::staticGet('id', $id);
 
         if (empty($this->group)) {
-            $this->clientError(_('No such group.'));
+            // TRANS: Client error.
+            $this->clientError(_m('No such group.'));
         }
 
         $oprofile = Ostatus_profile::staticGet('group_id', $id);
         if ($oprofile) {
+            // TRANS: Client error.
             $this->clientError(_m("Can't accept remote posts for a remote group."));
         }
 
@@ -57,7 +59,6 @@ class GroupsalmonAction extends SalmonAction
     /**
      * We've gotten a post event on the Salmon backchannel, probably a reply.
      */
-
     function handlePost()
     {
         // @fixme process all objects?
@@ -69,18 +70,20 @@ class GroupsalmonAction extends SalmonAction
         case ActivityObject::COMMENT:
             break;
         default:
+            // TRANS: Client exception.
             throw new ClientException("Can't handle that kind of post.");
         }
 
         // Notice must be to the attention of this group
-
         $context = $this->activity->context;
 
         if (empty($context->attention)) {
+            // TRANS: Client exception.
             throw new ClientException("Not to the attention of anyone.");
         } else {
             $uri = common_local_url('groupbyid', array('id' => $this->group->id));
             if (!in_array($uri, $context->attention)) {
+                // TRANS: Client exception.
                 throw new ClientException("Not to the attention of this group.");
             }
         }
@@ -116,14 +119,15 @@ class GroupsalmonAction extends SalmonAction
      *        currently we're doing the main logic in joingroup action
      *        and so have to repeat it here.
      */
-
     function handleJoin()
     {
         $oprofile = $this->ensureProfile();
         if (!$oprofile) {
+            // TRANS: Client error.
             $this->clientError(_m("Can't read profile to set up group membership."));
         }
         if ($oprofile->isGroup()) {
+            // TRANS: Client error.
             $this->clientError(_m("Groups can't join groups."));
         }
 
@@ -137,7 +141,7 @@ class GroupsalmonAction extends SalmonAction
         }
 
         if (Group_block::isBlocked($this->group, $profile)) {
-            $this->clientError(_('You have been blocked from that group by the admin.'), 403);
+            $this->clientError(_m('You have been blocked from that group by the admin.'), 403);
             return false;
         }
 
@@ -151,6 +155,7 @@ class GroupsalmonAction extends SalmonAction
                 //Event::handle('EndJoinGroup', array($this->group, $profile));
             //}
         } catch (Exception $e) {
+            // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname.
             $this->serverError(sprintf(_m('Could not join remote user %1$s to group %2$s.'),
                                        $oprofile->uri, $this->group->nickname));
         }
@@ -159,7 +164,6 @@ class GroupsalmonAction extends SalmonAction
     /**
      * A remote user left our group.
      */
-
     function handleLeave()
     {
         $oprofile = $this->ensureProfile();
@@ -180,10 +184,10 @@ class GroupsalmonAction extends SalmonAction
                 //Event::handle('EndLeaveGroup', array($this->group, $profile));
             //}
         } catch (Exception $e) {
+            // TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname.
             $this->serverError(sprintf(_m('Could not remove remote user %1$s from group %2$s.'),
                                        $oprofile->uri, $this->group->nickname));
             return;
         }
     }
-
 }
index 8ca07f9165535e493d52eb3b598ca59057051fac..db4c913e166ee142496f19284aa58c5ea56d9f3a 100644 (file)
@@ -26,7 +26,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
 class HostMetaAction extends Action
 {
-
     function handle()
     {
         parent::handle();
index 1861e866f293a51b30851375c1e81373c8b3b8b6..7db00ffbef1997591548d6964c2b0e03389a5a72 100644 (file)
@@ -72,13 +72,16 @@ class OStatusGroupAction extends OStatusSubAction
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
         $this->input('profile',
+                     // TRANS: Field label.
                      _m('Join group'),
                      $this->profile_uri,
+                     // TRANS: Tooltip for field label "Join group".
                      _m("OStatus group's address, like http://example.net/group/nickname."));
         $this->elementEnd('li');
         $this->elementEnd('ul');
 
-        $this->submit('validate', _m('Continue'));
+        // TRANS: Button text.
+        $this->submit('validate', _m('BUTTON','Continue'));
 
         $this->elementEnd('fieldset');
 
@@ -156,7 +159,6 @@ class OStatusGroupAction extends OStatusSubAction
      *
      * @return string Title of the page
      */
-
     function title()
     {
         // TRANS: Page title for OStatus remote group join form
@@ -168,9 +170,9 @@ class OStatusGroupAction extends OStatusSubAction
      *
      * @return instructions for use
      */
-
     function getInstructions()
     {
+        // TRANS: Instructions.
         return _m('You can subscribe to groups from other supported sites. Paste the group\'s profile URI below:');
     }
 
index 0c991aba98659602470fe1a51dd6100ce2ab0ada..f576823e314f831e866d98eacf4080b5e2dec12d 100644 (file)
@@ -27,7 +27,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
 class OStatusInitAction extends Action
 {
-
     var $nickname;
     var $group;
     var $profile;
@@ -38,6 +37,7 @@ class OStatusInitAction extends Action
         parent::prepare($args);
 
         if (common_logged_in()) {
+            // TRANS: Client error.
             $this->clientError(_m('You can use the local subscription!'));
             return false;
         }
@@ -78,6 +78,7 @@ class OStatusInitAction extends Action
             $this->xw->startDocument('1.0', 'UTF-8');
             $this->elementStart('html');
             $this->elementStart('head');
+            // TRANS: Form title.
             $this->element('title', null, _m('Subscribe to user'));
             $this->elementEnd('head');
             $this->elementStart('body');
@@ -92,11 +93,15 @@ class OStatusInitAction extends Action
     function showContent()
     {
         if ($this->group) {
+            // TRANS: Form legend.
             $header = sprintf(_m('Join group %s'), $this->group);
-            $submit = _m('Join');
+            // TRANS: Button text.
+            $submit = _m('BUTTON','Join');
         } else {
+            // TRANS: Form legend.
             $header = sprintf(_m('Subscribe to %s'), $this->nickname);
-            $submit = _m('Subscribe');
+            // TRANS: Button text.
+            $submit = _m('BUTTON','Subscribe');
         }
         $this->elementStart('form', array('id' => 'form_ostatus_connect',
                                           'method' => 'post',
@@ -108,12 +113,15 @@ class OStatusInitAction extends Action
 
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li', array('id' => 'ostatus_nickname'));
+        // TRANS: Field label.
         $this->input('nickname', _m('User nickname'), $this->nickname,
                      _m('Nickname of the user you want to follow.'));
         $this->hidden('group', $this->group); // pass-through for magic links
         $this->elementEnd('li');
         $this->elementStart('li', array('id' => 'ostatus_profile'));
+        // TRANS: Field label.
         $this->input('profile', _m('Profile Account'), $this->profile,
+                      // TRANS: Tooltip for field label "Profile Account".
                      _m('Your account id (e.g. user@identi.ca).'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
@@ -135,6 +143,7 @@ class OStatusInitAction extends Action
         } elseif (strpos($this->profile, '@') !== false) {
             $this->connectWebfinger($this->profile);
         } else {
+            // TRANS: Client error.
             $this->clientError(_m("Must provide a remote profile."));
         }
     }
@@ -146,6 +155,7 @@ class OStatusInitAction extends Action
         $disco = new Discovery;
         $result = $disco->lookup($acct);
         if (!$result) {
+            // TRANS: Client error.
             $this->clientError(_m("Couldn't look up OStatus account profile."));
         }
 
@@ -158,6 +168,7 @@ class OStatusInitAction extends Action
             }
 
         }
+        // TRANS: Client error.
         $this->clientError(_m("Couldn't confirm remote profile address."));
     }
 
@@ -183,6 +194,7 @@ class OStatusInitAction extends Action
             if ($user) {
                 return common_local_url('userbyid', array('id' => $user->id));
             } else {
+                // TRANS: Client error.
                 $this->clientError("No such user.");
             }
         } else if ($this->group) {
@@ -190,16 +202,18 @@ class OStatusInitAction extends Action
             if ($group) {
                 return common_local_url('groupbyid', array('id' => $group->group_id));
             } else {
+                // TRANS: Client error.
                 $this->clientError("No such group.");
             }
         } else {
+            // TRANS: Client error.
             $this->clientError("No local user or group nickname provided.");
         }
     }
 
     function title()
     {
+      // TRANS: Page title.
       return _m('OStatus Connect');
     }
-
 }
index 4cbd7d034877157aaa9d6aedf4ec2ba38f918745..493b519657de346ad64991d97390b9fe76ad300c 100644 (file)
@@ -62,13 +62,15 @@ class OStatusSubAction extends Action
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
         $this->input('profile',
+                     // TRANS: Field label for a field that takes an OStatus user address.
                      _m('Subscribe to'),
                      $this->profile_uri,
-                     _m("OStatus user's address, like nickname@example.com or http://example.net/nickname"));  // @todo i18n FIXME: needs context/translator hint.
+                     // TRANS: Tooltip for field label "Subscribe to".
+                     _m('OStatus user\'s address, like nickname@example.com or http://example.net/nickname'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
-
-        $this->submit('validate', _m('Continue')); // @todo i18n FIXME: needs context/translator hint.
+        // TRANS: Button text.
+        $this->submit('validate', _m('BUTTON','Continue'));
 
         $this->elementEnd('fieldset');
 
@@ -103,10 +105,14 @@ class OStatusSubAction extends Action
         $this->hidden('profile', $this->profile_uri);
         if ($this->oprofile->isGroup()) {
             $this->submit('submit', _m('Join'), 'submit', null,
-                         _m('Join this group')); // @todo i18n FIXME: needs context/translator hint.
+                         // TRANS: Button text.
+                         // TRANS: Tooltip for button "Join".
+                         _m('BUTTON','Join this group'));
         } else {
-            $this->submit('submit', _m('Confirm'), 'submit', null,
-                         _m('Subscribe to this user')); // @todo i18n FIXME: needs context/translator hint.
+            // TRANS: Button text.
+            $this->submit('submit', _m('BUTTON','Confirm'), 'submit', null,
+                         // TRANS: Tooltip for button "Confirm".
+                         _m('Subscribe to this user'));
         }
         $this->elementEnd('fieldset');
         $this->elementEnd('form');
@@ -156,7 +162,7 @@ class OStatusSubAction extends Action
 
         $this->elementStart('div', 'entity_profile vcard');
         $this->elementStart('dl', 'entity_depiction');
-        $this->element('dt', null, _('Photo'));
+        $this->element('dt', null, _m('Photo'));
         $this->elementStart('dd');
         $this->element('img', array('src' => $avatar,
                                     'class' => 'photo avatar',
@@ -167,7 +173,7 @@ class OStatusSubAction extends Action
         $this->elementEnd('dl');
 
         $this->elementStart('dl', 'entity_nickname');
-        $this->element('dt', null, _('Nickname'));
+        $this->element('dt', null, _m('Nickname'));
         $this->elementStart('dd');
         $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname';
         $this->elementStart('a', array('href' => $profile,
@@ -188,7 +194,7 @@ class OStatusSubAction extends Action
         }
         if (!is_null($location)) {
             $this->elementStart('dl', 'entity_location');
-            $this->element('dt', null, _('Location'));
+            $this->element('dt', null, _m('Location'));
             $this->elementStart('dd', 'label');
             $this->raw($location);
             $this->elementEnd('dd');
@@ -197,7 +203,7 @@ class OStatusSubAction extends Action
 
         if (!is_null($homepage)) {
             $this->elementStart('dl', 'entity_url');
-            $this->element('dt', null, _('URL'));
+            $this->element('dt', null, _m('URL'));
             $this->elementStart('dd');
             $this->elementStart('a', array('href' => $homepage,
                                                 'class' => 'url'));
@@ -209,7 +215,7 @@ class OStatusSubAction extends Action
 
         if (!is_null($note)) {
             $this->elementStart('dl', 'entity_note');
-            $this->element('dt', null, _('Note'));
+            $this->element('dt', null, _m('Note'));
             $this->elementStart('dd', 'note');
             $this->raw($note);
             $this->elementEnd('dd');
@@ -244,31 +250,39 @@ class OStatusSubAction extends Action
             } else if (Validate::uri($this->profile_uri)) {
                 $this->oprofile = Ostatus_profile::ensureProfileURL($this->profile_uri);
             } else {
+                // TRANS: Error text.
                 $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname.");
                 common_debug('Invalid address format.', __FILE__);
                 return false;
             }
             return true;
         } catch (FeedSubBadURLException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname.");
             common_debug('Invalid URL or could not reach server.', __FILE__);
         } catch (FeedSubBadResponseException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later.");
             common_debug('Cannot read feed; server returned error.', __FILE__);
         } catch (FeedSubEmptyException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later.");
             common_debug('Cannot read feed; server returned an empty page.', __FILE__);
         } catch (FeedSubBadHTMLException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later.");
             common_debug('Bad HTML, could not find feed link.', __FILE__);
         } catch (FeedSubNoFeedException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later.");
             common_debug('Could not find a feed linked from this URL.', __FILE__);
         } catch (FeedSubUnrecognizedTypeException $e) {
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that feed. Please try that OStatus address again later.");
             common_debug('Not a recognized feed type.', __FILE__);
         } catch (Exception $e) {
             // Any new ones we forgot about
+            // TRANS: Error text.
             $this->error = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname.");
             common_debug(sprintf('Bad feed URL: %s %s', get_class($e), $e->getMessage()), __FILE__);
         }
@@ -350,7 +364,7 @@ class OStatusSubAction extends Action
         // CSRF protection
         $token = $this->trimmed('token');
         if (!$token || $token != common_session_token()) {
-            $this->showForm(_('There was a problem with your session token. '.
+            $this->showForm(_m('There was a problem with your session token. '.
                               'Try again, please.'));
             return;
         }
@@ -377,6 +391,7 @@ class OStatusSubAction extends Action
             $this->xw->startDocument('1.0', 'UTF-8');
             $this->elementStart('html');
             $this->elementStart('head');
+            // TRANS: Form title.
             $this->element('title', null, _m('Subscribe to user'));
             $this->elementEnd('head');
             $this->elementStart('body');
@@ -408,6 +423,7 @@ class OStatusSubAction extends Action
 
     function getInstructions()
     {
+        // TRANS: Instructions.
         return _m('You can subscribe to users from other supported sites. Paste their address or profile URI below:');
     }
 
@@ -426,7 +442,6 @@ class OStatusSubAction extends Action
      *
      * @return void
      */
-
     function showContent()
     {
         if ($this->oprofile) {
@@ -459,5 +474,4 @@ class OStatusSubAction extends Action
     function showNoticeForm() {
         // nop
     }
-
 }
index 3fcb982b879f614e28d99a9b97657b2d86ac9a66..9e84f72ecb968642d7897ea4400be9cff904b568 100644 (file)
@@ -34,7 +34,7 @@ class OwnerxrdAction extends XrdAction
         $this->user = User::siteOwner();
 
         if (!$this->user) {
-            $this->clientError(_('No such user.'), 404);
+            $this->clientError(_m('No such user.'), 404);
             return false;
         }
 
index 6c69787455df7dde3c2e88aa2aed66066eee7048..701a39c1638b7eeeaf55c8f94872924b3bdf70b8 100644 (file)
@@ -24,7 +24,6 @@
 
 if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
-
 class PushCallbackAction extends Action
 {
     function handle()
@@ -46,13 +45,13 @@ class PushCallbackAction extends Action
         $feedid = $this->arg('feed');
         common_log(LOG_INFO, "POST for feed id $feedid");
         if (!$feedid) {
-            throw new ServerException('Empty or invalid feed id.', 400);
+            throw new ServerException(_m('Empty or invalid feed id.'), 400);
         }
 
         $feedsub = FeedSub::staticGet('id', $feedid);
         if (!$feedsub) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ServerException('Unknown PuSH feed id ' . $feedid, 400);
+            // TRANS: Server exception. %s is a feed ID.
+            throw new ServerException(sprintf(_m('Unknown PuSH feed id %s'),$feedid), 400);
         }
 
         $hmac = '';
@@ -84,30 +83,31 @@ class PushCallbackAction extends Action
         $verify_token = $this->arg('hub_verify_token');
 
         if ($mode != 'subscribe' && $mode != 'unsubscribe') {
-            throw new ClientException("Bad hub.mode $mode", 404);
+            // TRANS: Client exception. %s is an invalid value for hub.mode.
+            throw new ClientException(sprintf(_m('Bad hub.mode "$s".',$mode)), 404);
         }
 
         $feedsub = FeedSub::staticGet('uri', $topic);
         if (!$feedsub) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Bad hub.topic feed $topic.", 404);
+            // TRANS: Client exception. %s is an invalid feed name.
+            throw new ClientException(sprintf(_m('Bad hub.topic feed "%s".'),$topic), 404);
         }
 
         if ($feedsub->verify_token !== $verify_token) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Bad hub.verify_token $token for $topic.", 404);
+            // TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given.
+            throw new ClientException(sprintf(_m('Bad hub.verify_token %1$s for %2$s.'),$token,$topic), 404);
         }
 
         if ($mode == 'subscribe') {
             // We may get re-sub requests legitimately.
             if ($feedsub->sub_state != 'subscribe' && $feedsub->sub_state != 'active') {
-                // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-                throw new ClientException("Unexpected subscribe request for $topic.", 404);
+                // TRANS: Client exception. %s is an invalid topic.
+                throw new ClientException(sprintf(_m('Unexpected subscribe request for %s.'),$topic), 404);
             }
         } else {
             if ($feedsub->sub_state != 'unsubscribe') {
-                // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-                throw new ClientException("Unexpected unsubscribe request for $topic.", 404);
+                // TRANS: Client exception. %s is an invalid topic.
+                throw new ClientException(sprintf(_m('Unexpected unsubscribe request for %s.'),$topic), 404);
             }
         }
 
index 6909b8539131f4c57dc38425561398147350a045..68035ab5cc20aaad6e6a760e0aeb6154e18e8a2c 100644 (file)
@@ -62,11 +62,11 @@ class PushHubAction extends Action
             $this->subunsub($mode);
             break;
         case "publish":
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Publishing outside feeds not supported.", 400);
+            // TRANS: Client exception.
+            throw new ClientException(_m('Publishing outside feeds not supported.'), 400);
         default:
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Unrecognized mode '$mode'.", 400);
+            // TRANS: Client exception. %s is a mode.
+            throw new ClientException(sprintf(_m('Unrecognized mode "%s".'),$mode), 400);
         }
     }
 
@@ -85,28 +85,28 @@ class PushHubAction extends Action
 
         $topic = $this->argUrl('hub.topic');
         if (!$this->recognizedFeed($topic)) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Unsupported hub.topic $topic; this hub only serves local user and group Atom feeds.");
+            // TRANS: Client exception. %s is a topic.
+            throw new ClientException(sprintf(_m('Unsupported hub.topic %s this hub only serves local user and group Atom feeds.'),$topic));
         }
 
         $verify = $this->arg('hub.verify'); // @fixme may be multiple
         if ($verify != 'sync' && $verify != 'async') {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Invalid hub.verify $verify; must be sync or async.");
+            // TRANS: Client exception.
+            throw new ClientException(sprintf(_m('Invalid hub.verify "%s". It must be sync or async.'),$verify));
         }
 
         $lease = $this->arg('hub.lease_seconds', null);
         if ($mode == 'subscribe' && $lease != '' && !preg_match('/^\d+$/', $lease)) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Invalid hub.lease $lease; must be empty or positive integer.");
+            // TRANS: Client exception.
+            throw new ClientException(sprintf(_m('Invalid hub.lease "%s". It must be empty or positive integer.'),$lease));
         }
 
         $token = $this->arg('hub.verify_token', null);
 
         $secret = $this->arg('hub.secret', null);
         if ($secret != '' && strlen($secret) >= 200) {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Invalid hub.secret $secret; must be under 200 bytes.");
+            // TRANS: Client exception.
+            throw new ClientException(sprintf(_m('Invalid hub.secret "%s". It must be under 200 bytes.'),$secret));
         }
 
         $sub = HubSub::staticGet($topic, $callback);
@@ -157,8 +157,8 @@ class PushHubAction extends Action
             if ($feed == $userFeed) {
                 $user = User::staticGet('id', $id);
                 if (!$user) {
-                    // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-                    throw new ClientException("Invalid hub.topic $feed; user doesn't exist.");
+                    // TRANS: Client exception.
+                    throw new ClientException(sprintt(_m('Invalid hub.topic "%s". User doesn\'t exist.'),$feed));
                 } else {
                     return true;
                 }
@@ -166,8 +166,8 @@ class PushHubAction extends Action
             if ($feed == $groupFeed) {
                 $user = User_group::staticGet('id', $id);
                 if (!$user) {
-                    // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-                    throw new ClientException("Invalid hub.topic $feed; group doesn't exist.");
+                    // TRANS: Client exception.
+                    throw new ClientException(sprintf(_m('Invalid hub.topic "%s". Group doesn\'t exist.'),$feed));
                 } else {
                     return true;
                 }
@@ -190,8 +190,9 @@ class PushHubAction extends Action
         if (Validate::uri($url, $params)) {
             return $url;
         } else {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new ClientException("Invalid URL passed for $arg: '$url'");
+            // TRANS: Client exception.
+            // TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL.
+            throw new ClientException(sprintf(_m('Invalid URL passed for %1$s: "%2$s"'),$arg,$url));
         }
     }
 
index 06a72bf0244331be868a790eb38b6bd3f7697ae3..e78c653300da11dd504afa0e21aa1a63badda4c2 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/**
- * @package OStatusPlugin
- * @author James Walker <james@status.net>
- */
-
 if (!defined('STATUSNET')) {
     exit(1);
 }
 
+/**
+ * @package OStatusPlugin
+ * @author James Walker <james@status.net>
+ */
 class UsersalmonAction extends SalmonAction
 {
     function prepare($args)
@@ -35,13 +34,13 @@ class UsersalmonAction extends SalmonAction
         $id = $this->trimmed('id');
 
         if (!$id) {
-            $this->clientError(_('No ID.'));
+            $this->clientError(_m('No ID.'));
         }
 
         $this->user = User::staticGet('id', $id);
 
         if (empty($this->user)) {
-            $this->clientError(_('No such user.'));
+            $this->clientError(_m('No such user.'));
         }
 
         return true;
@@ -78,20 +77,24 @@ class UsersalmonAction extends SalmonAction
         if (!empty($context->replyToID)) {
             $notice = Notice::staticGet('uri', $context->replyToID);
             if (empty($notice)) {
-                throw new ClientException("In reply to unknown notice");
+                // TRANS: Client exception.
+                throw new ClientException(_m('In reply to unknown notice.'));
             }
             if ($notice->profile_id != $this->user->id &&
                 !in_array($this->user->id, $notice->getReplies())) {
-                throw new ClientException("In reply to a notice not by this user and not mentioning this user");
+                // TRANS: Client exception.
+                throw new ClientException(_m('In reply to a notice not by this user and not mentioning this user.'));
             }
         } else if (!empty($context->attention)) {
             if (!in_array($this->user->uri, $context->attention) &&
                 !in_array(common_profile_url($this->user->nickname), $context->attention)) {
                 common_log(LOG_ERR, "{$this->user->uri} not in attention list (".implode(',', $context->attention).")");
-                throw new ClientException("To the attention of user(s) not including this one!");
+                // TRANS: Client exception.
+                throw new ClientException('To the attention of user(s), not including this one.');
             }
         } else {
-            throw new ClientException("Not to anyone in reply to anything!");
+            // TRANS: Client exception.
+            throw new ClientException('Not to anyone in reply to anything.');
         }
 
         $existing = Notice::staticGet('uri', $this->activity->objects[0]->id);
@@ -108,7 +111,6 @@ class UsersalmonAction extends SalmonAction
      * We've gotten a follow/subscribe notification from a remote user.
      * Save a subscription relationship for them.
      */
-
     function handleFollow()
     {
         $oprofile = $this->ensureProfile();
@@ -152,11 +154,13 @@ class UsersalmonAction extends SalmonAction
                                    'notice_id' => $notice->id));
 
         if (!empty($old)) {
-            throw new ClientException("We already know that's a fave!");
+            // TRANS: Client exception.
+            throw new ClientException(_('This is already a favorite.'));
         }
 
         if (!Fave::addNew($profile, $notice)) {
-            throw new ClientException("Could not save new favorite.");
+           // TRANS: Client exception.
+           throw new ClientException(_m('Could not save new favorite.'));
         }
     }
 
@@ -172,7 +176,8 @@ class UsersalmonAction extends SalmonAction
         $fave = Fave::pkeyGet(array('user_id' => $profile->id,
                                    'notice_id' => $notice->id));
         if (empty($fave)) {
-            throw new ClientException("Notice wasn't favorited!");
+            // TRANS: Client exception.
+            throw new ClientException(_('Notice wasn\'t favorited!'));
         }
 
         $fave->delete();
@@ -186,7 +191,8 @@ class UsersalmonAction extends SalmonAction
     function getNotice($object)
     {
         if (!$object) {
-            throw new ClientException("Can't favorite/unfavorite without an object.");
+            // TRANS: Client exception.
+            throw new ClientException(_m('Can\'t favorite/unfavorite without an object.'));
         }
 
         switch ($object->type) {
@@ -197,20 +203,22 @@ class UsersalmonAction extends SalmonAction
         case ActivityObject::COMMENT:
             break;
         default:
-            throw new ClientException("Can't handle that kind of object for liking/faving.");
+            // TRANS: Client exception.
+            throw new ClientException(_m('Can\'t handle that kind of object for liking/faving.'));
         }
 
         $notice = Notice::staticGet('uri', $object->id);
 
         if (empty($notice)) {
-            throw new ClientException("Notice with ID $object->id unknown.");
+            // TRANS: Client exception. %s is an object ID.
+            throw new ClientException(sprintf(_m('Notice with ID %s unknown.'),$object->id));
         }
 
         if ($notice->profile_id != $this->user->id) {
-            throw new ClientException("Notice with ID $object->id not posted by $this->user->id.");
+            // TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID.
+            throw new ClientException(sprintf(_m('Notice with ID %1$s not posted by %2$s.'),$object->id,$this->user->id));
         }
 
         return $notice;
     }
-
 }
index dd720568b49ae318211e5ba5210c17511ee80522..9aa7c0306de1f2de17c9903b7c6f352917f49c6e 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+if (!defined('STATUSNET')) { exit(1); }
+
 /**
  * @package OStatusPlugin
  * @maintainer James Walker <james@status.net>
  */
-
-if (!defined('STATUSNET')) { exit(1); }
-
 class UserxrdAction extends XrdAction
 {
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -46,7 +44,7 @@ class UserxrdAction extends XrdAction
             $this->user = User::staticGet('uri', $this->uri);
         }
         if (!$this->user) {
-            $this->clientError(_('No such user.'), 404);
+            $this->clientError(_m('No such user.'), 404);
             return false;
         }
 
index 6f9e0856ab1aeb821b8927e43dbd412710c4eb33..58beec673836460912729c9b70e091c8c072ac51 100644 (file)
@@ -39,7 +39,6 @@ PuSH subscription flow:
         hub sends us updates via POST
 
 */
-
 class FeedDBException extends FeedSubException
 {
     public $obj;
@@ -88,7 +87,6 @@ class FeedSub extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@@ -143,7 +141,6 @@ class FeedSub extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -157,7 +154,6 @@ class FeedSub extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('id' => 'K', 'uri' => 'U');
@@ -249,7 +245,7 @@ class FeedSub extends Memcached_DataObject
                 // We'll never actually get updates in this mode.
                 return true;
             } else {
-                throw new ServerException("Attempting to start PuSH subscription for feed with no hub.");
+                throw new ServerException(_m('Attempting to start PuSH subscription for feed with no hub.'));
             }
         }
 
@@ -279,7 +275,7 @@ class FeedSub extends Memcached_DataObject
                 // We'll never actually get updates in this mode.
                 return true;
             } else {
-                throw new ServerException("Attempting to end PuSH subscription for feed with no hub.");
+                throw new ServerException(_m('Attempting to end PuSH subscription for feed with no hub.'));
             }
         }
 
@@ -500,5 +496,4 @@ class FeedSub extends Memcached_DataObject
         }
         return false;
     }
-
 }
index e01ae4e798d8190f1461f3db2081fa89ec7b3db7..825d36ebd64c656367a79c9a64bb1d686b04e53f 100644 (file)
@@ -54,7 +54,6 @@ class HubSub extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('hashkey' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
@@ -112,7 +111,6 @@ class HubSub extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('hashkey' => 'K');
@@ -206,8 +204,8 @@ class HubSub extends Memcached_DataObject
         if ($status >= 200 && $status < 300) {
             common_log(LOG_INFO, "Verified $mode of $this->callback:$this->topic");
         } else {
-            // @todo i18n FIXME: add i18n and use sprintf for parameter.
-            throw new ClientException("Hub subscriber verification returned HTTP $status");
+            // TRANS: Client exception. %s is a HTTP status code.
+            throw new ClientException(sprintf(_m('Hub subscriber verification returned HTTP %s.'),$status));
         }
 
         $old = HubSub::staticGet($this->topic, $this->callback);
@@ -353,10 +351,9 @@ class HubSub extends Memcached_DataObject
         if ($response->isOk()) {
             return true;
         } else {
-            throw new Exception("Callback returned status: " .
-                                $response->getStatus() .
-                                "; body: " .
-                                trim($response->getBody()));
+            // TRANS: Exception. %1$s is a response status code, %2$s is the body of the response.
+            throw new Exception(sprintf(_m('Callback returned status: %1$s. Body: %2$s'),
+                                $response->getStatus(),trim($response->getBody())));
         }
     }
 }
index e39a6d8f7ce01280c66a2f470ac1154e6734116f..20025c37a6a8c0e3a8aa7ba9afa80d4c778b8e3d 100644 (file)
@@ -31,7 +31,6 @@ require_once 'Crypt/RSA.php';
 
 class Magicsig extends Memcached_DataObject
 {
-
     const PUBLICKEYREL = 'magic-public-key';
 
     public $__table = 'magicsig';
@@ -86,7 +85,6 @@ class Magicsig extends Memcached_DataObject
                                    64, false));
     }
 
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -126,7 +124,6 @@ class Magicsig extends Memcached_DataObject
         $this->insert();
     }
 
-
     public function toString($full_pair = true)
     {
         $mod = Magicsig::base64_url_encode($this->publicKey->modulus->toBytes());
@@ -197,7 +194,6 @@ class Magicsig extends Memcached_DataObject
         case 'RSA-SHA256':
             return 'sha256';
         }
-
     }
 
     public function sign($bytes)
index 11ca67b25c7f32fd2675fa7c71a914ecd065f39b..047435f6687acf1cc0f517809c1d06921d92fb3c 100644 (file)
@@ -21,7 +21,6 @@
  * @package OStatusPlugin
  * @maintainer Brion Vibber <brion@status.net>
  */
-
 class Ostatus_profile extends Memcached_DataObject
 {
     public $__table = 'ostatus_profile';
@@ -51,7 +50,6 @@ class Ostatus_profile extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('uri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
@@ -92,7 +90,6 @@ class Ostatus_profile extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -106,7 +103,6 @@ class Ostatus_profile extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('uri' => 'K', 'profile_id' => 'U', 'group_id' => 'U', 'feeduri' => 'U');
@@ -188,11 +184,11 @@ class Ostatus_profile extends Memcached_DataObject
         } else if ($this->group_id && !$this->profile_id) {
             return true;
         } else if ($this->group_id && $this->profile_id) {
-            // @todo i18n FIXME: use sprintf and add i18n.
-            throw new ServerException("Invalid ostatus_profile state: both group and profile IDs set for $this->uri.");
+            // TRANS: Server exception.
+            throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs set for %s.'),$this->uri));
         } else {
-            // @todo i18n FIXME: use sprintf and add i18n.
-            throw new ServerException("Invalid ostatus_profile state: both group and profile IDs empty for $this->uri.");
+            // TRANS: Server exception.
+            throw new ServerException(sprintf(_m('Invalid ostatus_profile state: both group and profile IDs empty for %s.'),$this->uri));
         }
     }
 
@@ -280,7 +276,9 @@ class Ostatus_profile extends Memcached_DataObject
             if ($type == 'object') {
                 $type = get_class($actor);
             }
-            throw new ServerException("Invalid actor passed to " . __METHOD__ . ": " . $type);
+            // TRANS: Server exception.
+            // TRANS: %1$s is the method name the exception occured in, %2$s is the actor type.
+            throw new ServerException(sprintf(_m('Invalid actor passed to %1$s: %2$s.'),__METHOD__,$type));
         }
         if ($object == null) {
             $object = $this;
@@ -372,8 +370,8 @@ class Ostatus_profile extends Memcached_DataObject
         } else if ($entry instanceof Notice) {
             return $preamble . $entry->asAtomEntry(true, true);
         } else {
-            // @todo i18n FIXME: use sprintf and add i18n.
-            throw new ServerException("Invalid type passed to Ostatus_profile::notify; must be XML string or Activity entry.");
+            // TRANS: Server exception.
+            throw new ServerException(_m('Invalid type passed to Ostatus_profile::notify. It must be XML string or Activity entry.'));
         }
     }
 
@@ -403,7 +401,7 @@ class Ostatus_profile extends Memcached_DataObject
         } else if ($feed->localName == 'rss') { // @fixme check namespace
             $this->processRssFeed($feed, $source);
         } else {
-            throw new Exception("Unknown feed format.");
+            throw new Exception(_m('Unknown feed format.'));
         }
     }
 
@@ -426,7 +424,7 @@ class Ostatus_profile extends Memcached_DataObject
         $channels = $rss->getElementsByTagName('channel');
 
         if ($channels->length == 0) {
-            throw new Exception("RSS feed without a channel.");
+            throw new Exception(_m('RSS feed without a channel.'));
         } else if ($channels->length > 1) {
             common_log(LOG_WARNING, __METHOD__ . ": more than one channel in an RSS feed");
         }
@@ -470,7 +468,8 @@ class Ostatus_profile extends Memcached_DataObject
                 }
                 break;
             default:
-                throw new ClientException("Can't handle that kind of post.");
+                // TRANS: Client exception.
+                throw new ClientException(_m('Can\'t handle that kind of post.'));
             }
 
             Event::handle('EndHandleFeedEntry', array($activity));
@@ -552,8 +551,8 @@ class Ostatus_profile extends Memcached_DataObject
             $sourceContent = $note->title;
         } else {
             // @fixme fetch from $sourceUrl?
-            // @todo i18n FIXME: use sprintf and add i18n.
-            throw new ClientException("No content for notice {$sourceUri}.");
+            // TRANS: Client exception. %s is a source URL.
+            throw new ClientException(sprintf(_m('No content for notice %s.'),$sourceUri));
         }
 
         // Get (safe!) HTML and text versions of the content
@@ -584,14 +583,17 @@ class Ostatus_profile extends Memcached_DataObject
 
                 // We mark up the attachment link specially for the HTML output
                 // so we can fold-out the full version inline.
+
+                // TRANS: Shown when a notice is longer than supported and/or when attachments are present.
+                $showMoreText = _m('Show more');
                 $attachUrl = common_local_url('attachment',
                                               array('attachment' => $attachment->id));
                 $rendered = common_render_text($shortSummary) .
                             '<a href="' . htmlspecialchars($attachUrl) .'"'.
                             ' class="attachment more"' .
-                            ' title="'. htmlspecialchars(_m('Show more')) . '">' .
+                            ' title="'. htmlspecialchars($showMoreText) . '">' .
                             '&#8230;' .
-                            '</a>'; // @todo i18n FIXME: add translator hint/context.
+                            '</a>';
             }
         }
 
@@ -775,8 +777,8 @@ class Ostatus_profile extends Memcached_DataObject
         $response = $client->get($profile_url);
 
         if (!$response->isOk()) {
-            // @todo i18n FIXME: use sprintf and add i18n.
-            throw new Exception("Could not reach profile page: " . $profile_url);
+            // TRANS: Exception. %s is a profile URL.
+            throw new Exception(sprintf(_m('Could not reach profile page %s.'),$profile_url));
         }
 
         // Check if we have a non-canonical URL
@@ -833,8 +835,8 @@ class Ostatus_profile extends Memcached_DataObject
             return self::ensureFeedURL($feedurl, $hints);
         }
 
-        // @todo i18n FIXME: use sprintf and add i18n.
-        throw new Exception("Could not find a feed URL for profile page " . $finalUrl);
+        // TRANS: Exception.
+        throw new Exception(sprintf(_m('Could not find a feed URL for profile page %s.'),$finalUrl));
     }
 
     /**
@@ -866,7 +868,7 @@ class Ostatus_profile extends Memcached_DataObject
         $user = User::staticGet('id', $profile->id);
 
         if (!empty($user)) {
-            // @todo i18n FIXME: use sprintf and add i18n.
+            // @todo i18n FIXME: use sprintf and add i18n (?)
             throw new OStatusShadowException($profile, "'$profile_url' is the profile for local user '{$user->nickname}'.");
         }
 
@@ -971,8 +973,7 @@ class Ostatus_profile extends Memcached_DataObject
         }
 
         // XXX: make some educated guesses here
-
-        throw new FeedSubException("Can't find enough profile information to make a feed.");
+        throw new FeedSubException(_m('Can\'t find enough profile information to make a feed.'));
     }
 
     /**
@@ -1087,7 +1088,7 @@ class Ostatus_profile extends Memcached_DataObject
      * @return mixed URL string or false
      */
 
-    protected static function getActivityObjectAvatar($object, $hints=array())
+    public static function getActivityObjectAvatar($object, $hints=array())
     {
         if ($object->avatarLinks) {
             $best = false;
@@ -1270,13 +1271,13 @@ class Ostatus_profile extends Memcached_DataObject
 
         $user = User::staticGet('uri', $homeuri);
         if ($user) {
-            // @todo i18n FIXME: add i18n.
-            throw new Exception("Local user can't be referenced as remote.");
+            // TRANS: Exception.
+            throw new Exception(_m('Local user can\'t be referenced as remote.'));
         }
 
         if (OStatusPlugin::localGroupFromUrl($homeuri)) {
-            // @todo i18n FIXME: add i18n.
-            throw new Exception("Local group can't be referenced as remote.");
+            // TRANS: Exception.
+            throw new Exception(_m('Local group can\'t be referenced as remote.'));
         }
 
         if (array_key_exists('feedurl', $hints)) {
@@ -1327,8 +1328,8 @@ class Ostatus_profile extends Memcached_DataObject
 
             $oprofile->profile_id = $profile->insert();
             if (!$oprofile->profile_id) {
-                // @todo i18n FIXME: add i18n.
-                throw new ServerException("Can't save local profile.");
+            // TRANS: Exception.
+                throw new ServerException(_m('Can\'t save local profile.'));
             }
         } else {
             $group = new User_group();
@@ -1338,16 +1339,16 @@ class Ostatus_profile extends Memcached_DataObject
 
             $oprofile->group_id = $group->insert();
             if (!$oprofile->group_id) {
-                // @todo i18n FIXME: add i18n.
-                throw new ServerException("Can't save local profile.");
+                // TRANS: Exception.
+                throw new ServerException(_m('Can\'t save local profile.'));
             }
         }
 
         $ok = $oprofile->insert();
 
         if (!$ok) {
-            // @todo i18n FIXME: add i18n.
-            throw new ServerException("Can't save OStatus profile.");
+            // TRANS: Exception.
+            throw new ServerException(_m('Can\'t save OStatus profile.'));
         }
 
         $avatar = self::getActivityObjectAvatar($object, $hints);
@@ -1389,7 +1390,7 @@ class Ostatus_profile extends Memcached_DataObject
         }
     }
 
-    protected static function updateProfile($profile, $object, $hints=array())
+    public static function updateProfile($profile, $object, $hints=array())
     {
         $orig = clone($profile);
 
@@ -1517,7 +1518,7 @@ class Ostatus_profile extends Memcached_DataObject
         return $bio;
     }
 
-    protected static function getActivityObjectNickname($object, $hints=array())
+    public static function getActivityObjectNickname($object, $hints=array())
     {
         if ($object->poco) {
             if (!empty($object->poco->preferredUsername)) {
@@ -1605,8 +1606,8 @@ class Ostatus_profile extends Memcached_DataObject
         if ($uri !== false) {
             if (is_null($uri)) {
                 // Negative cache entry
-                // @todo i18n FIXME: add i18n.
-                throw new Exception('Not a valid webfinger address.');
+                // TRANS: Exception.
+                throw new Exception(_m('Not a valid webfinger address.'));
             }
             $oprofile = Ostatus_profile::staticGet('uri', $uri);
             if (!empty($oprofile)) {
@@ -1633,8 +1634,8 @@ class Ostatus_profile extends Memcached_DataObject
             // Save negative cache entry so we don't waste time looking it up again.
             // @fixme distinguish temporary failures?
             self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), null);
-            // @todo i18n FIXME: add i18n.
-            throw new Exception('Not a valid webfinger address.');
+                // TRANS: Exception.
+            throw new Exception(_m('Not a valid webfinger address.'));
         }
 
         $hints = array('webfinger' => $addr);
@@ -1715,8 +1716,8 @@ class Ostatus_profile extends Memcached_DataObject
 
             if (!$profile_id) {
                 common_log_db_error($profile, 'INSERT', __FILE__);
-                // @todo i18n FIXME: add i18n and use sprintf for parameter.
-                throw new Exception("Couldn't save profile for '$addr'.");
+                // TRANS: Exception. %s is a webfinger address.
+                throw new Exception(sprintf(_m('Couldn\'t save profile for "%s".'),$addr));
             }
 
             $oprofile = new Ostatus_profile();
@@ -1734,16 +1735,16 @@ class Ostatus_profile extends Memcached_DataObject
 
             if (!$result) {
                 common_log_db_error($oprofile, 'INSERT', __FILE__);
-                // @todo i18n FIXME: add i18n and use sprintf for parameter.
-                throw new Exception("Couldn't save ostatus_profile for '$addr'.");
+                // TRANS: Exception. %s is a webfinger address.
+                throw new Exception(sprintf(_m('Couldn\'t save ostatus_profile for "%s".'),$addr));
             }
 
             self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri);
             return $oprofile;
         }
 
-        // @todo i18n FIXME: add i18n and use sprintf for parameter.
-        throw new Exception("Couldn't find a valid profile for '$addr'");
+        // TRANS: Exception. %s is a webfinger address.
+        throw new Exception(sprintf(_m('Couldn\'t find a valid profile for "%s".'),$addr));
     }
 
     /**
@@ -1785,7 +1786,7 @@ class Ostatus_profile extends Memcached_DataObject
 
         if ($file_id === false) {
             common_log_db_error($file, "INSERT", __FILE__);
-            throw new ServerException(_('Could not store HTML content of long post as file.'));
+            throw new ServerException(_m('Could not store HTML content of long post as file.'));
         }
 
         return $file;
index e6ce7d442bc0914f1c371608ab0a1a7ec9b59f0c..b76bbce56ceb35e33ca3823b30086961d8a2cd17 100644 (file)
@@ -21,7 +21,6 @@
  * @package OStatusPlugin
  * @maintainer Brion Vibber <brion@status.net>
  */
-
 class Ostatus_source extends Memcached_DataObject
 {
     public $__table = 'ostatus_source';
@@ -43,7 +42,6 @@ class Ostatus_source extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('notice_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@@ -69,7 +67,6 @@ class Ostatus_source extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -83,7 +80,6 @@ class Ostatus_source extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return array('notice_id' => 'K');
index 04c672720757107f588cb4b935580a4ed7866450..905ece2ca5a7cbff169c894beadced6abd1c710e 100644 (file)
@@ -106,8 +106,8 @@ class Discovery
             }
         }
 
-        // @todo Needs i18n.
-        throw new Exception('Unable to find services for '. $id . '.');
+        // TRANS: Exception.
+        throw new Exception(sprintf(_m('Unable to find services for %s.'),$id));
     }
 
     public static function getService($links, $service) {
index fa2ead7320cb8640b7c9c108b52756273c053c30..a98f4a6d672af976c8882242321dd57f4f0e1b8d 100644 (file)
@@ -20,7 +20,6 @@
  */
 
 class DiscoveryHints {
-
     static function fromXRD($xrd)
     {
         $hints = array();
index cd78d31cef6ce325c4e1959f1dae391c562e0855..efa3f65ff37a2b86781477c0bea2c5130354bca8 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+/**
+ * @todo Add file header and documentation.
+ */
 
 class LinkHeader
 {
index bbd4ce17a24f69e172f1fa5c14ffaa21d9a6d819..03e6f7c665426b2ff013ea2c34b18dd2f4b36980 100644 (file)
@@ -76,7 +76,8 @@ class MagicEnvelope
                 }
             }
         }
-        throw new Exception('Unable to locate signer public key.');
+        // TRANS: Exception.
+        throw new Exception(_m('Unable to locate signer public key.'));
     }
 
 
@@ -92,7 +93,6 @@ class MagicEnvelope
             'sig' => $signature_alg->sign($armored_text),
             'alg' => $signature_alg->getName()
         );
-
     }
 
     public function toXML($env) {
@@ -110,7 +110,6 @@ class MagicEnvelope
         return $string;
     }
 
-
     public function unfold($env)
     {
         $dom = new DOMDocument();
@@ -218,5 +217,4 @@ class MagicEnvelope
             'sig' => preg_replace('/\s/', '', $sig_element->nodeValue),
         );
     }
-
 }
index 9814cab9f18d99fe4ff34e4811a82c22fa1baae0..5e0ab46a5b842657afd760b04226141f36e15e44 100644 (file)
@@ -221,5 +221,4 @@ class OStatusQueueHandler extends QueueHandler
 
         return $feed;
     }
-
 }
index 1fd29ae301b9203595016b4210550260507efde8..965d042668b461c7b97a18751d2e9601efa41b8c 100644 (file)
@@ -22,7 +22,6 @@
  * @package FeedSub
  * @author Brion Vibber <brion@status.net>
  */
-
 class PushInQueueHandler extends QueueHandler
 {
     function transport()
index 631ebc7d86b350db77bda77f2b1d9473940c4c2d..963da650840ecf869fe1bc868779f3ad67d1508a 100644 (file)
@@ -89,8 +89,8 @@ class Salmon
                 $magickey->generate($user->id);
             }
         } else {
-            // @todo i18n FIXME: added i18n and use sprintf when using parameters.
-            throw new Exception("Salmon invalid actor for signing.");
+            // TRANS: Exception.
+            throw new Exception(_m('Salmon invalid actor for signing.'));
         }
 
         try {
@@ -101,7 +101,6 @@ class Salmon
         return $magic_env->toXML($env);
     }
 
-
     public function verifyMagicEnv($text)
     {
         $magic_env = new MagicEnvelope();
index 5fdb11abe40be4d91b6af9e5616cab7f887d6ee2..41bdb489284a75072682c3351f7f748995682711 100644 (file)
@@ -38,10 +38,12 @@ class SalmonAction extends Action
         parent::prepare($args);
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
+            // TRANS: Client error. POST is a HTTP command. It should not be translated.
             $this->clientError(_m('This method requires a POST.'));
         }
 
         if (empty($_SERVER['CONTENT_TYPE']) || $_SERVER['CONTENT_TYPE'] != 'application/magic-envelope+xml') {
+            // TRANS: Client error. Do not translate "application/magic-envelope+xml"
             $this->clientError(_m('Salmon requires "application/magic-envelope+xml".'));
         }
 
@@ -51,6 +53,7 @@ class SalmonAction extends Action
         $salmon = new Salmon;
         if (!$salmon->verifyMagicEnv($xml)) {
             common_log(LOG_DEBUG, "Salmon signature verification failed.");
+            // TRANS: Client error.
             $this->clientError(_m('Salmon signature verification failed.'));
         } else {
             $magic_env = new MagicEnvelope();
@@ -62,6 +65,7 @@ class SalmonAction extends Action
         if ($dom->documentElement->namespaceURI != Activity::ATOM ||
             $dom->documentElement->localName != 'entry') {
             common_log(LOG_DEBUG, "Got invalid Salmon post: $xml");
+            // TRANS: Client error.
             $this->clientError(_m('Salmon post must be an Atom entry.'));
         }
 
@@ -110,6 +114,7 @@ class SalmonAction extends Action
                 $this->handleUpdateProfile();
                 break;
             default:
+                // TRANS: Client exception.
                 throw new ClientException(_m("Unrecognized activity type."));
             }
             Event::handle('EndHandleSalmon', array($this->activity));
@@ -118,41 +123,49 @@ class SalmonAction extends Action
 
     function handlePost()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand posts."));
     }
 
     function handleFollow()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand follows."));
     }
 
     function handleUnfollow()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand unfollows."));
     }
 
     function handleFavorite()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand favorites."));
     }
 
     function handleUnfavorite()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand unfavorites."));
     }
 
     function handleShare()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand share events."));
     }
 
     function handleJoin()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand joins."));
     }
 
     function handleLeave()
     {
+        // TRANS: Client exception.
         throw new ClientException(_m("This target doesn't understand leave events."));
     }
 
@@ -180,7 +193,8 @@ class SalmonAction extends Action
         if (empty($actor->id)) {
             common_log(LOG_ERR, "broken actor: " . var_export($actor, true));
             common_log(LOG_ERR, "activity with no actor: " . var_export($this->activity, true));
-            throw new Exception("Received a salmon slap from unidentified actor.");
+            // TRANS: Exception.
+            throw new Exception(_m('Received a salmon slap from unidentified actor.'));
         }
 
         return Ostatus_profile::ensureActivityObjectProfile($actor);
index 145cd64cb4e92ddb42d5fd77b8e8b6a81c1ab562..c8cffed9cde255fd14decbb0d68c2353fcfee748 100644 (file)
@@ -27,7 +27,6 @@
  * @link      http://status.net/
  */
 
-
 class XRD
 {
     const XML_NS = 'http://www.w3.org/2000/xmlns/';
@@ -61,11 +60,13 @@ class XRD
         error_reporting($old);
 
         if (!$ok) {
-            throw new Exception("Invalid XML.");
+            // TRANS: Exception.
+            throw new Exception(_m('Invalid XML.'));
         }
         $xrd_element = $dom->getElementsByTagName('XRD')->item(0);
         if (!$xrd_element) {
-            throw new Exception("Invalid XML, missing XRD root.");
+            // TRANS: Exception.
+            throw new Exception(_m('Invalid XML, missing XRD root.'));
         }
 
         // Check for host-meta host
index 91bb87cc2306c5880ab2f845c834d11bf54ad202..c8b5beff379732d7bee653324071558e9035ffd2 100644 (file)
@@ -103,5 +103,4 @@ class XrdAction extends Action
         header('Content-type: application/xrd+xml');
         print $xrd->toXML();
     }
-
 }
index 97d593eadd61c68b2dc6c908b47fc2fc2fb1683f..86c1e0acad7e0f58ec0849c2be7a09e43376038a 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,316 +16,724 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: OStatusPlugin.php:210 OStatusPlugin.php:913 actions/ostatusinit.php:99
+#. TRANS: Link description for link to subscribe to a remote user.
+#. TRANS: Link text for a user to subscribe to an OStatus user.
+#: OStatusPlugin.php:227 OStatusPlugin.php:937
 msgid "Subscribe"
 msgstr ""
 
-#: OStatusPlugin.php:228 OStatusPlugin.php:635 actions/ostatussub.php:105
-#: actions/ostatusinit.php:96
+#. TRANS: Link description for link to join a remote group.
+#: OStatusPlugin.php:246 OStatusPlugin.php:655 actions/ostatussub.php:107
 msgid "Join"
 msgstr ""
 
-#: OStatusPlugin.php:451
+#. TRANSLATE: %s is a domain.
+#: OStatusPlugin.php:459
 #, php-format
 msgid "Sent from %s via OStatus"
 msgstr ""
 
-#: OStatusPlugin.php:503
+#. TRANS: Exception.
+#: OStatusPlugin.php:531
 msgid "Could not set up remote subscription."
 msgstr ""
 
-#: OStatusPlugin.php:619
-msgid "Could not set up remote group membership."
+#: OStatusPlugin.php:605
+msgid "Unfollow"
 msgstr ""
 
-#: OStatusPlugin.php:636
+#. TRANS: Success message for unsubscribe from user attempt through OStatus.
+#. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name.
+#: OStatusPlugin.php:608
 #, php-format
-msgid "%s has joined group %s."
+msgid "%1$s stopped following %2$s."
+msgstr ""
+
+#: OStatusPlugin.php:636
+msgid "Could not set up remote group membership."
 msgstr ""
 
-#: OStatusPlugin.php:644
+#. TRANS: Exception.
+#: OStatusPlugin.php:667
 msgid "Failed joining remote group."
 msgstr ""
 
-#: OStatusPlugin.php:684
+#: OStatusPlugin.php:707
 msgid "Leave"
 msgstr ""
 
-#: OStatusPlugin.php:685
+#: OStatusPlugin.php:785
+msgid "Disfavor"
+msgstr ""
+
+#. TRANS: Success message for remove a favorite notice through OStatus.
+#. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice.
+#: OStatusPlugin.php:788
 #, php-format
-msgid "%s has left group %s."
+msgid "%1$s marked notice %2$s as no longer a favorite."
 msgstr ""
 
-#: OStatusPlugin.php:844
+#. TRANS: Link text for link to remote subscribe.
+#: OStatusPlugin.php:864
 msgid "Remote"
 msgstr ""
 
-#: OStatusPlugin.php:883
+#. TRANS: Title for activity.
+#: OStatusPlugin.php:904
 msgid "Profile update"
 msgstr ""
 
-#: OStatusPlugin.php:884
+#. TRANS: Ping text for remote profile update through OStatus.
+#. TRANS: %s is user that updated their profile.
+#: OStatusPlugin.php:907
 #, php-format
 msgid "%s has updated their profile page."
 msgstr ""
 
-#: OStatusPlugin.php:928
+#. TRANS: Plugin description.
+#: OStatusPlugin.php:952
 msgid ""
 "Follow people across social networks that implement <a href=\"http://ostatus."
 "org/\">OStatus</a>."
 msgstr ""
 
-#: classes/Ostatus_profile.php:566
+#: classes/FeedSub.php:248
+msgid "Attempting to start PuSH subscription for feed with no hub."
+msgstr ""
+
+#: classes/FeedSub.php:278
+msgid "Attempting to end PuSH subscription for feed with no hub."
+msgstr ""
+
+#. TRANS: Server exception.
+#: classes/Ostatus_profile.php:188
+#, php-format
+msgid "Invalid ostatus_profile state: both group and profile IDs set for %s."
+msgstr ""
+
+#. TRANS: Server exception.
+#: classes/Ostatus_profile.php:191
+#, php-format
+msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s."
+msgstr ""
+
+#. TRANS: Server exception.
+#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type.
+#: classes/Ostatus_profile.php:281
+#, php-format
+msgid "Invalid actor passed to %1$s: %2$s."
+msgstr ""
+
+#. TRANS: Server exception.
+#: classes/Ostatus_profile.php:374
+msgid ""
+"Invalid type passed to Ostatus_profile::notify. It must be XML string or "
+"Activity entry."
+msgstr ""
+
+#: classes/Ostatus_profile.php:404
+msgid "Unknown feed format."
+msgstr ""
+
+#: classes/Ostatus_profile.php:427
+msgid "RSS feed without a channel."
+msgstr ""
+
+#. TRANS: Client exception.
+#: classes/Ostatus_profile.php:472
+msgid "Can't handle that kind of post."
+msgstr ""
+
+#. TRANS: Client exception. %s is a source URL.
+#: classes/Ostatus_profile.php:555
+#, php-format
+msgid "No content for notice %s."
+msgstr ""
+
+#. TRANS: Shown when a notice is longer than supported and/or when attachments are present.
+#: classes/Ostatus_profile.php:588
 msgid "Show more"
 msgstr ""
 
-#: classes/Ostatus_profile.php:1004
+#. TRANS: Exception. %s is a profile URL.
+#: classes/Ostatus_profile.php:781
+#, php-format
+msgid "Could not reach profile page %s."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:839
+#, php-format
+msgid "Could not find a feed URL for profile page %s."
+msgstr ""
+
+#: classes/Ostatus_profile.php:976
+msgid "Can't find enough profile information to make a feed."
+msgstr ""
+
+#: classes/Ostatus_profile.php:1035
+#, php-format
+msgid "Invalid avatar URL %s."
+msgstr ""
+
+#: classes/Ostatus_profile.php:1045
+#, php-format
+msgid "Tried to update avatar for unsaved remote profile %s."
+msgstr ""
+
+#: classes/Ostatus_profile.php:1053
 #, php-format
-msgid "Invalid avatar URL %s"
+msgid "Unable to fetch avatar from %s."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:1275
+msgid "Local user can't be referenced as remote."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:1280
+msgid "Local group can't be referenced as remote."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:1332 classes/Ostatus_profile.php:1343
+msgid "Can't save local profile."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:1351
+msgid "Can't save OStatus profile."
+msgstr ""
+
+#. TRANS: Exception.
+#: classes/Ostatus_profile.php:1610 classes/Ostatus_profile.php:1638
+msgid "Not a valid webfinger address."
+msgstr ""
+
+#. TRANS: Exception. %s is a webfinger address.
+#: classes/Ostatus_profile.php:1720
+#, php-format
+msgid "Couldn't save profile for \"%s\"."
+msgstr ""
+
+#. TRANS: Exception. %s is a webfinger address.
+#: classes/Ostatus_profile.php:1739
+#, php-format
+msgid "Couldn't save ostatus_profile for \"%s\"."
+msgstr ""
+
+#. TRANS: Exception. %s is a webfinger address.
+#: classes/Ostatus_profile.php:1747
+#, php-format
+msgid "Couldn't find a valid profile for \"%s\"."
+msgstr ""
+
+#: classes/Ostatus_profile.php:1789
+msgid "Could not store HTML content of long post as file."
 msgstr ""
 
-#: classes/Ostatus_profile.php:1014
+#. TRANS: Client exception. %s is a HTTP status code.
+#: classes/HubSub.php:208
 #, php-format
-msgid "Tried to update avatar for unsaved remote profile %s"
+msgid "Hub subscriber verification returned HTTP %s."
 msgstr ""
 
-#: classes/Ostatus_profile.php:1022
+#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response.
+#: classes/HubSub.php:355
 #, php-format
-msgid "Unable to fetch avatar from %s"
+msgid "Callback returned status: %1$s. Body: %2$s"
 msgstr ""
 
-#: lib/salmonaction.php:41
+#. TRANS: Client error. POST is a HTTP command. It should not be translated.
+#: lib/salmonaction.php:42
 msgid "This method requires a POST."
 msgstr ""
 
-#: lib/salmonaction.php:45
-msgid "Salmon requires application/magic-envelope+xml"
+#. TRANS: Client error. Do not translate "application/magic-envelope+xml"
+#: lib/salmonaction.php:47
+msgid "Salmon requires \"application/magic-envelope+xml\"."
 msgstr ""
 
-#: lib/salmonaction.php:55
+#. TRANS: Client error.
+#: lib/salmonaction.php:57
 msgid "Salmon signature verification failed."
 msgstr ""
 
-#: lib/salmonaction.php:67
+#. TRANS: Client error.
+#: lib/salmonaction.php:69
 msgid "Salmon post must be an Atom entry."
 msgstr ""
 
-#: lib/salmonaction.php:115
+#. TRANS: Client exception.
+#: lib/salmonaction.php:118
 msgid "Unrecognized activity type."
 msgstr ""
 
-#: lib/salmonaction.php:123
+#. TRANS: Client exception.
+#: lib/salmonaction.php:127
 msgid "This target doesn't understand posts."
 msgstr ""
 
-#: lib/salmonaction.php:128
+#. TRANS: Client exception.
+#: lib/salmonaction.php:133
 msgid "This target doesn't understand follows."
 msgstr ""
 
-#: lib/salmonaction.php:133
+#. TRANS: Client exception.
+#: lib/salmonaction.php:139
 msgid "This target doesn't understand unfollows."
 msgstr ""
 
-#: lib/salmonaction.php:138
+#. TRANS: Client exception.
+#: lib/salmonaction.php:145
 msgid "This target doesn't understand favorites."
 msgstr ""
 
-#: lib/salmonaction.php:143
+#. TRANS: Client exception.
+#: lib/salmonaction.php:151
 msgid "This target doesn't understand unfavorites."
 msgstr ""
 
-#: lib/salmonaction.php:148
+#. TRANS: Client exception.
+#: lib/salmonaction.php:157
 msgid "This target doesn't understand share events."
 msgstr ""
 
-#: lib/salmonaction.php:153
+#. TRANS: Client exception.
+#: lib/salmonaction.php:163
 msgid "This target doesn't understand joins."
 msgstr ""
 
-#: lib/salmonaction.php:158
+#. TRANS: Client exception.
+#: lib/salmonaction.php:169
 msgid "This target doesn't understand leave events."
 msgstr ""
 
+#. TRANS: Exception.
+#: lib/salmonaction.php:197
+msgid "Received a salmon slap from unidentified actor."
+msgstr ""
+
+#. TRANS: Exception.
+#: lib/discovery.php:110
+#, php-format
+msgid "Unable to find services for %s."
+msgstr ""
+
+#. TRANS: Exception.
+#: lib/xrd.php:64
+msgid "Invalid XML."
+msgstr ""
+
+#. TRANS: Exception.
+#: lib/xrd.php:69
+msgid "Invalid XML, missing XRD root."
+msgstr ""
+
+#. TRANS: Exception.
+#: lib/magicenvelope.php:80
+msgid "Unable to locate signer public key."
+msgstr ""
+
+#. TRANS: Exception.
+#: lib/salmon.php:93
+msgid "Salmon invalid actor for signing."
+msgstr ""
+
 #: tests/gettext-speedtest.php:57
 msgid "Feeds"
 msgstr ""
 
-#: actions/ostatusgroup.php:75
+#. TRANS: Client exception.
+#: actions/pushhub.php:66
+msgid "Publishing outside feeds not supported."
+msgstr ""
+
+#. TRANS: Client exception. %s is a mode.
+#: actions/pushhub.php:69
+#, php-format
+msgid "Unrecognized mode \"%s\"."
+msgstr ""
+
+#. TRANS: Client exception. %s is a topic.
+#: actions/pushhub.php:89
+#, php-format
+msgid ""
+"Unsupported hub.topic %s this hub only serves local user and group Atom "
+"feeds."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/pushhub.php:95
+#, php-format
+msgid "Invalid hub.verify \"%s\". It must be sync or async."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/pushhub.php:101
+#, php-format
+msgid "Invalid hub.lease \"%s\". It must be empty or positive integer."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/pushhub.php:109
+#, php-format
+msgid "Invalid hub.secret \"%s\". It must be under 200 bytes."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/pushhub.php:161
+#, php-format
+msgid "Invalid hub.topic \"%s\". User doesn't exist."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/pushhub.php:170
+#, php-format
+msgid "Invalid hub.topic \"%s\". Group doesn't exist."
+msgstr ""
+
+#. TRANS: Client exception.
+#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL.
+#: actions/pushhub.php:195
+#, php-format
+msgid "Invalid URL passed for %1$s: \"%2$s\""
+msgstr ""
+
+#: actions/userxrd.php:47 actions/ownerxrd.php:37 actions/usersalmon.php:43
+msgid "No such user."
+msgstr ""
+
+#. TRANS: Client error.
+#: actions/usersalmon.php:37 actions/groupsalmon.php:40
+msgid "No ID."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/usersalmon.php:81
+msgid "In reply to unknown notice."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/usersalmon.php:86
+msgid "In reply to a notice not by this user and not mentioning this user."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/usersalmon.php:163
+msgid "Could not save new favorite."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/usersalmon.php:195
+msgid "Can't favorite/unfavorite without an object."
+msgstr ""
+
+#. TRANS: Client exception.
+#: actions/usersalmon.php:207
+msgid "Can't handle that kind of object for liking/faving."
+msgstr ""
+
+#. TRANS: Client exception. %s is an object ID.
+#: actions/usersalmon.php:214
+#, php-format
+msgid "Notice with ID %s unknown."
+msgstr ""
+
+#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID.
+#: actions/usersalmon.php:219
+#, php-format
+msgid "Notice with ID %1$s not posted by %2$s."
+msgstr ""
+
+#. TRANS: Field label.
+#: actions/ostatusgroup.php:76
 msgid "Join group"
 msgstr ""
 
-#: actions/ostatusgroup.php:77
-msgid "OStatus group's address, like http://example.net/group/nickname"
+#. TRANS: Tooltip for field label "Join group".
+#: actions/ostatusgroup.php:79
+msgid "OStatus group's address, like http://example.net/group/nickname."
 msgstr ""
 
-#: actions/ostatusgroup.php:81 actions/ostatussub.php:71
+#. TRANS: Button text.
+#: actions/ostatusgroup.php:84 actions/ostatussub.php:73
+msgctxt "BUTTON"
 msgid "Continue"
 msgstr ""
 
-#: actions/ostatusgroup.php:100
+#: actions/ostatusgroup.php:103
 msgid "You are already a member of this group."
 msgstr ""
 
 #. TRANS: OStatus remote group subscription dialog error.
-#: actions/ostatusgroup.php:135
+#: actions/ostatusgroup.php:138
 msgid "Already a member!"
 msgstr ""
 
 #. TRANS: OStatus remote group subscription dialog error.
-#: actions/ostatusgroup.php:146
+#: actions/ostatusgroup.php:149
 msgid "Remote group join failed!"
 msgstr ""
 
 #. TRANS: OStatus remote group subscription dialog error.
-#: actions/ostatusgroup.php:150
+#: actions/ostatusgroup.php:153
 msgid "Remote group join aborted!"
 msgstr ""
 
 #. TRANS: Page title for OStatus remote group join form
-#: actions/ostatusgroup.php:163
+#: actions/ostatusgroup.php:165
 msgid "Confirm joining remote group"
 msgstr ""
 
-#: actions/ostatusgroup.php:174
+#. TRANS: Instructions.
+#: actions/ostatusgroup.php:176
 msgid ""
 "You can subscribe to groups from other supported sites. Paste the group's "
 "profile URI below:"
 msgstr ""
 
-#: actions/groupsalmon.php:51
+#. TRANS: Client error.
+#: actions/groupsalmon.php:47
+msgid "No such group."
+msgstr ""
+
+#. TRANS: Client error.
+#: actions/groupsalmon.php:53
 msgid "Can't accept remote posts for a remote group."
 msgstr ""
 
-#: actions/groupsalmon.php:124
+#. TRANS: Client error.
+#: actions/groupsalmon.php:127
 msgid "Can't read profile to set up group membership."
 msgstr ""
 
-#: actions/groupsalmon.php:127 actions/groupsalmon.php:170
+#. TRANS: Client error.
+#: actions/groupsalmon.php:131 actions/groupsalmon.php:174
 msgid "Groups can't join groups."
 msgstr ""
 
-#: actions/groupsalmon.php:154
+#: actions/groupsalmon.php:144
+msgid "You have been blocked from that group by the admin."
+msgstr ""
+
+#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname.
+#: actions/groupsalmon.php:159
 #, php-format
 msgid "Could not join remote user %1$s to group %2$s."
 msgstr ""
 
-#: actions/groupsalmon.php:167
+#: actions/groupsalmon.php:171
 msgid "Can't read profile to cancel group membership."
 msgstr ""
 
-#: actions/groupsalmon.php:183
+#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname.
+#: actions/groupsalmon.php:188
 #, php-format
 msgid "Could not remove remote user %1$s from group %2$s."
 msgstr ""
 
-#: actions/ostatussub.php:65
+#. TRANS: Field label for a field that takes an OStatus user address.
+#: actions/ostatussub.php:66
 msgid "Subscribe to"
 msgstr ""
 
-#: actions/ostatussub.php:67
+#. TRANS: Tooltip for field label "Subscribe to".
+#: actions/ostatussub.php:69
 msgid ""
 "OStatus user's address, like nickname@example.com or http://example.net/"
 "nickname"
 msgstr ""
 
-#: actions/ostatussub.php:106
+#. TRANS: Button text.
+#. TRANS: Tooltip for button "Join".
+#: actions/ostatussub.php:110
+msgctxt "BUTTON"
 msgid "Join this group"
 msgstr ""
 
-#. TRANS: Page title for OStatus remote subscription form
-#: actions/ostatussub.php:108 actions/ostatussub.php:400
+#. TRANS: Button text.
+#: actions/ostatussub.php:113
+msgctxt "BUTTON"
 msgid "Confirm"
 msgstr ""
 
-#: actions/ostatussub.php:109
+#. TRANS: Tooltip for button "Confirm".
+#: actions/ostatussub.php:115
 msgid "Subscribe to this user"
 msgstr ""
 
-#: actions/ostatussub.php:130
+#: actions/ostatussub.php:136
 msgid "You are already subscribed to this user."
 msgstr ""
 
-#: actions/ostatussub.php:247 actions/ostatussub.php:253
-#: actions/ostatussub.php:272
+#: actions/ostatussub.php:165
+msgid "Photo"
+msgstr ""
+
+#: actions/ostatussub.php:176
+msgid "Nickname"
+msgstr ""
+
+#: actions/ostatussub.php:197
+msgid "Location"
+msgstr ""
+
+#: actions/ostatussub.php:206
+msgid "URL"
+msgstr ""
+
+#: actions/ostatussub.php:218
+msgid "Note"
+msgstr ""
+
+#. TRANS: Error text.
+#: actions/ostatussub.php:254 actions/ostatussub.php:261
+#: actions/ostatussub.php:286
 msgid ""
 "Sorry, we could not reach that address. Please make sure that the OStatus "
-"address is like nickname@example.com or http://example.net/nickname"
+"address is like nickname@example.com or http://example.net/nickname."
 msgstr ""
 
-#: actions/ostatussub.php:256 actions/ostatussub.php:259
-#: actions/ostatussub.php:262 actions/ostatussub.php:265
-#: actions/ostatussub.php:268
+#. TRANS: Error text.
+#: actions/ostatussub.php:265 actions/ostatussub.php:269
+#: actions/ostatussub.php:273 actions/ostatussub.php:277
+#: actions/ostatussub.php:281
 msgid ""
 "Sorry, we could not reach that feed. Please try that OStatus address again "
 "later."
 msgstr ""
 
 #. TRANS: OStatus remote subscription dialog error.
-#: actions/ostatussub.php:301
+#: actions/ostatussub.php:315
 msgid "Already subscribed!"
 msgstr ""
 
 #. TRANS: OStatus remote subscription dialog error.
-#: actions/ostatussub.php:306
+#: actions/ostatussub.php:320
 msgid "Remote subscription failed!"
 msgstr ""
 
-#: actions/ostatussub.php:380 actions/ostatusinit.php:81
+#: actions/ostatussub.php:367 actions/ostatusinit.php:63
+msgid "There was a problem with your session token. Try again, please."
+msgstr ""
+
+#. TRANS: Form title.
+#: actions/ostatussub.php:395 actions/ostatusinit.php:82
 msgid "Subscribe to user"
 msgstr ""
 
-#: actions/ostatussub.php:411
+#. TRANS: Page title for OStatus remote subscription form
+#: actions/ostatussub.php:415
+msgid "Confirm"
+msgstr ""
+
+#. TRANS: Instructions.
+#: actions/ostatussub.php:427
 msgid ""
 "You can subscribe to users from other supported sites. Paste their address "
 "or profile URI below:"
 msgstr ""
 
+#. TRANS: Client error.
 #: actions/ostatusinit.php:41
 msgid "You can use the local subscription!"
 msgstr ""
 
-#: actions/ostatusinit.php:63
-msgid "There was a problem with your session token. Try again, please."
-msgstr ""
-
-#: actions/ostatusinit.php:95
+#. TRANS: Form legend.
+#: actions/ostatusinit.php:97
 #, php-format
 msgid "Join group %s"
 msgstr ""
 
-#: actions/ostatusinit.php:98
+#. TRANS: Button text.
+#: actions/ostatusinit.php:99
+msgctxt "BUTTON"
+msgid "Join"
+msgstr ""
+
+#. TRANS: Form legend.
+#: actions/ostatusinit.php:102
 #, php-format
 msgid "Subscribe to %s"
 msgstr ""
 
-#: actions/ostatusinit.php:111
+#. TRANS: Button text.
+#: actions/ostatusinit.php:104
+msgctxt "BUTTON"
+msgid "Subscribe"
+msgstr ""
+
+#. TRANS: Field label.
+#: actions/ostatusinit.php:117
 msgid "User nickname"
 msgstr ""
 
-#: actions/ostatusinit.php:112
-msgid "Nickname of the user you want to follow"
+#: actions/ostatusinit.php:118
+msgid "Nickname of the user you want to follow."
 msgstr ""
 
-#: actions/ostatusinit.php:116
+#. TRANS: Field label.
+#: actions/ostatusinit.php:123
 msgid "Profile Account"
 msgstr ""
 
-#: actions/ostatusinit.php:117
-msgid "Your account id (i.e. user@identi.ca)"
+#. TRANS: Tooltip for field label "Profile Account".
+#: actions/ostatusinit.php:125
+msgid "Your account id (e.g. user@identi.ca)."
 msgstr ""
 
-#: actions/ostatusinit.php:138
+#. TRANS: Client error.
+#: actions/ostatusinit.php:147
 msgid "Must provide a remote profile."
 msgstr ""
 
-#: actions/ostatusinit.php:149
+#. TRANS: Client error.
+#: actions/ostatusinit.php:159
 msgid "Couldn't look up OStatus account profile."
 msgstr ""
 
-#: actions/ostatusinit.php:161
+#. TRANS: Client error.
+#: actions/ostatusinit.php:172
 msgid "Couldn't confirm remote profile address."
 msgstr ""
 
-#: actions/ostatusinit.php:202
+#. TRANS: Page title.
+#: actions/ostatusinit.php:217
 msgid "OStatus Connect"
 msgstr ""
+
+#: actions/pushcallback.php:48
+msgid "Empty or invalid feed id."
+msgstr ""
+
+#. TRANS: Server exception. %s is a feed ID.
+#: actions/pushcallback.php:54
+#, php-format
+msgid "Unknown PuSH feed id %s"
+msgstr ""
+
+#. TRANS: Client exception. %s is an invalid feed name.
+#: actions/pushcallback.php:93
+#, php-format
+msgid "Bad hub.topic feed \"%s\"."
+msgstr ""
+
+#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given.
+#: actions/pushcallback.php:98
+#, php-format
+msgid "Bad hub.verify_token %1$s for %2$s."
+msgstr ""
+
+#. TRANS: Client exception. %s is an invalid topic.
+#: actions/pushcallback.php:105
+#, php-format
+msgid "Unexpected subscribe request for %s."
+msgstr ""
+
+#. TRANS: Client exception. %s is an invalid topic.
+#: actions/pushcallback.php:110
+#, php-format
+msgid "Unexpected unsubscribe request for %s."
+msgstr ""
index c2c9a5d97b5c05276a58e263590c74b42dc4718f..64c60a8a4cd76d2f5d619d72a2aa40af04bde905 100644 (file)
@@ -4,6 +4,8 @@ if (php_sapi_name() != 'cli') {
     die('not for web');
 }
 
+define('TIMEOUT', 60); // ssslllloowwwww salmon if queues are off
+
 define('INSTALLDIR', dirname(dirname(dirname(dirname(__FILE__)))));
 set_include_path(INSTALLDIR . '/extlib' . PATH_SEPARATOR . get_include_path());
 
@@ -188,7 +190,7 @@ class SNTestClient extends TestBase
     {
         $url = $this->basepath . '/' . $path;
 
-        $http = new HTTP_Request2($url, 'POST');
+        $http = new HTTP_Request2($url, 'POST', array('timeout' => TIMEOUT));
         if ($auth) {
             $http->setAuth($this->username, $this->password, HTTP_Request2::AUTH_BASIC);
         }
@@ -215,7 +217,7 @@ class SNTestClient extends TestBase
     protected function web($path, $form, $params=array())
     {
         $url = $this->basepath . '/' . $path;
-        $http = new HTTP_Request2($url, 'GET');
+        $http = new HTTP_Request2($url, 'GET', array('timeout' => TIMEOUT));
         $response = $http->send();
 
         $dom = $this->checkWeb($url, 'GET', $response);
index 6756f19930f1f07041fc146cd04d79ec3b7e2494..611f5e5c7b1e54a1a4fde8bc795679b1fb1a9a99 100644 (file)
@@ -57,8 +57,7 @@ class OpenExternalLinkTargetPlugin extends Plugin
                             'author' => 'Sarven Capadisli',
                             'homepage' => 'http://status.net/wiki/Plugin:OpenExternalLinkTarget',
                             'rawdescription' =>
-                            _m('Opens external links (i.e., with rel=external) on a new window or tab'));
+                            _m('Opens external links (e.g., with rel=external) on a new window or tab.'));
         return true;
     }
 }
-
index f9bd4af10e398cbe4d3f1ccd30b5f68a4bf31c43..540b8cae53dc037e2e2972d91b78e5f65e1af86d 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,5 +17,5 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: OpenExternalLinkTargetPlugin.php:60
-msgid "Opens external links (i.e., with rel=external) on a new window or tab"
+msgid "Opens external links (e.g., with rel=external) on a new window or tab."
 msgstr ""
index 70908422e50a1900ee0e58ff983d66fc173d5b8b..9330e1905a8ac40e5bcf49aa5c801eb307720e99 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: openidsettings.php:59
+#: openidsettings.php:59 openidadminpanel.php:65
 msgid "OpenID settings"
 msgstr ""
 
@@ -27,204 +27,311 @@ msgid ""
 "account. Manage your associated OpenIDs from here."
 msgstr ""
 
-#: openidsettings.php:99
+#: openidsettings.php:101
 msgid "Add OpenID"
 msgstr ""
 
-#: openidsettings.php:102
+#: openidsettings.php:104
 msgid ""
 "If you want to add an OpenID to your account, enter it in the box below and "
 "click \"Add\"."
 msgstr ""
 
-#: openidsettings.php:107 openidlogin.php:119
+#. TRANS: OpenID plugin logon form field label.
+#: openidsettings.php:109 openidlogin.php:159
 msgid "OpenID URL"
 msgstr ""
 
-#: openidsettings.php:117
+#: openidsettings.php:119
 msgid "Add"
 msgstr ""
 
-#: openidsettings.php:129
+#: openidsettings.php:131
 msgid "Remove OpenID"
 msgstr ""
 
-#: openidsettings.php:134
+#: openidsettings.php:136
 msgid ""
 "Removing your only OpenID would make it impossible to log in! If you need to "
 "remove it, add another OpenID first."
 msgstr ""
 
-#: openidsettings.php:149
+#: openidsettings.php:151
 msgid ""
 "You can remove an OpenID from your account by clicking the button marked "
 "\"Remove\"."
 msgstr ""
 
-#: openidsettings.php:172 openidsettings.php:213
+#: openidsettings.php:174 openidsettings.php:215
 msgid "Remove"
 msgstr ""
 
-#: openidsettings.php:186
+#: openidsettings.php:188
 msgid "OpenID Trusted Sites"
 msgstr ""
 
-#: openidsettings.php:189
+#: openidsettings.php:191
 msgid ""
 "The following sites are allowed to access your identity and log you in. You "
 "can remove a site from this list to deny it access to your OpenID."
 msgstr ""
 
-#: openidsettings.php:231 finishopenidlogin.php:38 openidlogin.php:39
+#. TRANS: Message given when there is a problem with the user's session token.
+#: openidsettings.php:233 finishopenidlogin.php:40 openidlogin.php:49
 msgid "There was a problem with your session token. Try again, please."
 msgstr ""
 
-#: openidsettings.php:247 finishopenidlogin.php:51
+#: openidsettings.php:240
+msgid "Can't add new providers."
+msgstr ""
+
+#: openidsettings.php:253
 msgid "Something weird happened."
 msgstr ""
 
-#: openidsettings.php:271
+#: openidsettings.php:277
 msgid "No such OpenID trustroot."
 msgstr ""
 
-#: openidsettings.php:275
+#: openidsettings.php:281
 msgid "Trustroots removed"
 msgstr ""
 
-#: openidsettings.php:298
+#: openidsettings.php:304
 msgid "No such OpenID."
 msgstr ""
 
-#: openidsettings.php:303
+#: openidsettings.php:309
 msgid "That OpenID does not belong to you."
 msgstr ""
 
-#: openidsettings.php:307
+#: openidsettings.php:313
 msgid "OpenID removed."
 msgstr ""
 
-#: openid.php:137
+#: openidadminpanel.php:54 OpenIDPlugin.php:623
+msgid "OpenID"
+msgstr ""
+
+#: openidadminpanel.php:147
+msgid "Invalid provider URL. Max length is 255 characters."
+msgstr ""
+
+#: openidadminpanel.php:153
+msgid "Invalid team name. Max length is 255 characters."
+msgstr ""
+
+#: openidadminpanel.php:210
+msgid "Trusted provider"
+msgstr ""
+
+#: openidadminpanel.php:212
+msgid ""
+"By default, users are allowed to authenticate with any OpenID provider. If "
+"you are using your own OpenID service for shared sign-in, you can restrict "
+"access to only your own users here."
+msgstr ""
+
+#: openidadminpanel.php:220
+msgid "Provider URL"
+msgstr ""
+
+#: openidadminpanel.php:221
+msgid ""
+"All OpenID logins will be sent to this URL; other providers may not be used."
+msgstr ""
+
+#: openidadminpanel.php:228
+msgid "Append a username to base URL"
+msgstr ""
+
+#: openidadminpanel.php:230
+msgid ""
+"Login form will show the base URL and prompt for a username to add at the "
+"end. Use when OpenID provider URL should be the profile page for individual "
+"users."
+msgstr ""
+
+#: openidadminpanel.php:238
+msgid "Required team"
+msgstr ""
+
+#: openidadminpanel.php:239
+msgid "Only allow logins from users in the given team (Launchpad extension)."
+msgstr ""
+
+#: openidadminpanel.php:251
+msgid "Options"
+msgstr ""
+
+#: openidadminpanel.php:258
+msgid "Enable OpenID-only mode"
+msgstr ""
+
+#: openidadminpanel.php:260
+msgid ""
+"Require all users to login via OpenID. WARNING: disables password "
+"authentication for all users!"
+msgstr ""
+
+#: openidadminpanel.php:278
+msgid "Save OpenID settings"
+msgstr ""
+
+#. TRANS: OpenID plugin server error.
+#: openid.php:138
 msgid "Cannot instantiate OpenID consumer object."
 msgstr ""
 
-#: openid.php:147
+#. TRANS: OpenID plugin message. Given when an OpenID is not valid.
+#: openid.php:150
 msgid "Not a valid OpenID."
 msgstr ""
 
-#: openid.php:149
+#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails.
+#. TRANS: %s is the failure message.
+#: openid.php:155
 #, php-format
 msgid "OpenID failure: %s"
 msgstr ""
 
-#: openid.php:176
+#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected.
+#. TRANS: %s is the failure message.
+#: openid.php:205
 #, php-format
 msgid "Could not redirect to server: %s"
 msgstr ""
 
-#: openid.php:194
-#, php-format
-msgid "Could not create OpenID form: %s"
-msgstr ""
-
-#: openid.php:210
+#. TRANS: OpenID plugin user instructions.
+#: openid.php:244
 msgid ""
 "This form should automatically submit itself. If not, click the submit "
 "button to go to your OpenID provider."
 msgstr ""
 
-#: openid.php:242
+#. TRANS: OpenID plugin server error.
+#: openid.php:280
 msgid "Error saving the profile."
 msgstr ""
 
-#: openid.php:253
+#. TRANS: OpenID plugin server error.
+#: openid.php:292
 msgid "Error saving the user."
 msgstr ""
 
-#: openid.php:282
+#. TRANS: OpenID plugin client exception (403).
+#: openid.php:322
 msgid "Unauthorized URL used for OpenID login."
 msgstr ""
 
-#: openid.php:302
+#. TRANS: Title
+#: openid.php:370
 msgid "OpenID Login Submission"
 msgstr ""
 
-#: openid.php:312
+#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider.
+#: openid.php:381
 msgid "Requesting authorization from your login provider..."
 msgstr ""
 
-#: openid.php:315
+#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider.
+#: openid.php:385
 msgid ""
 "If you are not redirected to your login provider in a few seconds, try "
 "pushing the button below."
 msgstr ""
 
 #. TRANS: Tooltip for main menu option "Login"
-#: OpenIDPlugin.php:204
+#: OpenIDPlugin.php:221
 msgctxt "TOOLTIP"
 msgid "Login to the site"
 msgstr ""
 
-#: OpenIDPlugin.php:207
+#. TRANS: Main menu option when not logged in to log in
+#: OpenIDPlugin.php:224
 msgctxt "MENU"
 msgid "Login"
 msgstr ""
 
 #. TRANS: Tooltip for main menu option "Help"
-#: OpenIDPlugin.php:212
+#: OpenIDPlugin.php:229
 msgctxt "TOOLTIP"
 msgid "Help me!"
 msgstr ""
 
-#: OpenIDPlugin.php:215
+#. TRANS: Main menu option for help on the StatusNet site
+#: OpenIDPlugin.php:232
 msgctxt "MENU"
 msgid "Help"
 msgstr ""
 
 #. TRANS: Tooltip for main menu option "Search"
-#: OpenIDPlugin.php:221
+#: OpenIDPlugin.php:238
 msgctxt "TOOLTIP"
 msgid "Search for people or text"
 msgstr ""
 
-#: OpenIDPlugin.php:224
+#. TRANS: Main menu option when logged in or when the StatusNet instance is not private
+#: OpenIDPlugin.php:241
 msgctxt "MENU"
 msgid "Search"
 msgstr ""
 
-#: OpenIDPlugin.php:283 OpenIDPlugin.php:319
+#. TRANS: OpenID plugin menu item on site logon page.
+#. TRANS: OpenID plugin menu item on user settings page.
+#: OpenIDPlugin.php:301 OpenIDPlugin.php:339
+msgctxt "MENU"
 msgid "OpenID"
 msgstr ""
 
-#: OpenIDPlugin.php:284
+#. TRANS: OpenID plugin tooltip for logon menu item.
+#: OpenIDPlugin.php:303
 msgid "Login or register with OpenID"
 msgstr ""
 
-#: OpenIDPlugin.php:320
+#. TRANS: OpenID plugin tooltip for user settings menu item.
+#: OpenIDPlugin.php:341
 msgid "Add or remove OpenIDs"
 msgstr ""
 
-#: OpenIDPlugin.php:595
+#: OpenIDPlugin.php:624
+msgid "OpenID configuration"
+msgstr ""
+
+#. TRANS: OpenID plugin description.
+#: OpenIDPlugin.php:649
 msgid "Use <a href=\"http://openid.net/\">OpenID</a> to login to the site."
 msgstr ""
 
-#: openidserver.php:106
+#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403).
+#: openidserver.php:118
 #, php-format
 msgid "You are not authorized to use the identity %s."
 msgstr ""
 
-#: openidserver.php:126
+#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500).
+#: openidserver.php:139
 msgid "Just an OpenID provider. Nothing to see here, move along..."
 msgstr ""
 
-#: finishopenidlogin.php:34 openidlogin.php:30
+#. TRANS: Client error message trying to log on with OpenID while already logged on.
+#: finishopenidlogin.php:35 openidlogin.php:31
 msgid "Already logged in."
 msgstr ""
 
-#: finishopenidlogin.php:43
+#. TRANS: Message given if user does not agree with the site's license.
+#: finishopenidlogin.php:46
 msgid "You can't register if you don't agree to the license."
 msgstr ""
 
-#: finishopenidlogin.php:65
+#. TRANS: Messag given on an unknown error.
+#: finishopenidlogin.php:55
+msgid "An unknown error has occured."
+msgstr ""
+
+#. TRANS: Instructions given after a first successful logon using OpenID.
+#. TRANS: %s is the site name.
+#: finishopenidlogin.php:71
 #, php-format
 msgid ""
 "This is the first time you've logged into %s so we must connect your OpenID "
@@ -232,130 +339,183 @@ msgid ""
 "your existing account, if you have one."
 msgstr ""
 
-#: finishopenidlogin.php:71
+#. TRANS: Title
+#: finishopenidlogin.php:78
 msgid "OpenID Account Setup"
 msgstr ""
 
-#: finishopenidlogin.php:101
+#: finishopenidlogin.php:108
 msgid "Create new account"
 msgstr ""
 
-#: finishopenidlogin.php:103
+#: finishopenidlogin.php:110
 msgid "Create a new user with this nickname."
 msgstr ""
 
-#: finishopenidlogin.php:106
+#: finishopenidlogin.php:113
 msgid "New nickname"
 msgstr ""
 
-#: finishopenidlogin.php:108
+#: finishopenidlogin.php:115
 msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
 msgstr ""
 
-#: finishopenidlogin.php:130
+#. TRANS: Button label in form in which to create a new user on the site for an OpenID.
+#: finishopenidlogin.php:140
+msgctxt "BUTTON"
 msgid "Create"
 msgstr ""
 
-#: finishopenidlogin.php:135
+#. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
+#: finishopenidlogin.php:146
 msgid "Connect existing account"
 msgstr ""
 
-#: finishopenidlogin.php:137
+#. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site.
+#: finishopenidlogin.php:149
 msgid ""
 "If you already have an account, login with your username and password to "
 "connect it to your OpenID."
 msgstr ""
 
-#: finishopenidlogin.php:140
+#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
+#: finishopenidlogin.php:153
 msgid "Existing nickname"
 msgstr ""
 
-#: finishopenidlogin.php:143
+#. TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
+#: finishopenidlogin.php:157
 msgid "Password"
 msgstr ""
 
-#: finishopenidlogin.php:146
+#. TRANS: Button label in form in which to connect an OpenID to an existing user on the site.
+#: finishopenidlogin.php:161
+msgctxt "BUTTON"
 msgid "Connect"
 msgstr ""
 
-#: finishopenidlogin.php:158 finishaddopenid.php:88
+#. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
+#: finishopenidlogin.php:174 finishaddopenid.php:90
 msgid "OpenID authentication cancelled."
 msgstr ""
 
-#: finishopenidlogin.php:162 finishaddopenid.php:92
+#. TRANS: OpenID authentication failed; display the error message. %s is the error message.
+#. TRANS: OpenID authentication failed; display the error message.
+#. TRANS: %s is the error message.
+#: finishopenidlogin.php:178 finishaddopenid.php:95
 #, php-format
 msgid "OpenID authentication failed: %s"
 msgstr ""
 
-#: finishopenidlogin.php:227 finishopenidlogin.php:236
+#: finishopenidlogin.php:198 finishaddopenid.php:111
+msgid ""
+"OpenID authentication aborted: you are not allowed to login to this site."
+msgstr ""
+
+#. TRANS: OpenID plugin message. No new user registration is allowed on the site.
+#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided.
+#: finishopenidlogin.php:250 finishopenidlogin.php:260
 msgid "Registration not allowed."
 msgstr ""
 
-#: finishopenidlogin.php:243
+#. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid.
+#: finishopenidlogin.php:268
 msgid "Not a valid invitation code."
 msgstr ""
 
-#: finishopenidlogin.php:253
+#. TRANS: OpenID plugin message. The entered new user name did not conform to the requirements.
+#: finishopenidlogin.php:279
 msgid "Nickname must have only lowercase letters and numbers and no spaces."
 msgstr ""
 
-#: finishopenidlogin.php:258
+#. TRANS: OpenID plugin message. The entered new user name is blacklisted.
+#: finishopenidlogin.php:285
 msgid "Nickname not allowed."
 msgstr ""
 
-#: finishopenidlogin.php:263
+#. TRANS: OpenID plugin message. The entered new user name is already used.
+#: finishopenidlogin.php:291
 msgid "Nickname already in use. Try another one."
 msgstr ""
 
-#: finishopenidlogin.php:270 finishopenidlogin.php:350
+#. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved.
+#. TRANS: OpenID plugin server error. A stored OpenID cannot be found.
+#: finishopenidlogin.php:299 finishopenidlogin.php:386
 msgid "Stored OpenID not found."
 msgstr ""
 
-#: finishopenidlogin.php:279
+#. TRANS: OpenID plugin server error.
+#: finishopenidlogin.php:309
 msgid "Creating new account for OpenID that already has a user."
 msgstr ""
 
-#: finishopenidlogin.php:339
+#. TRANS: OpenID plugin message.
+#: finishopenidlogin.php:374
 msgid "Invalid username or password."
 msgstr ""
 
-#: finishopenidlogin.php:357
+#. TRANS: OpenID plugin server error. The user or user profile could not be saved.
+#: finishopenidlogin.php:394
 msgid "Error connecting user to OpenID."
 msgstr ""
 
-#: openidlogin.php:68
+#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings.
+#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
+#: openidlogin.php:80
 #, php-format
 msgid ""
 "For security reasons, please re-login with your [OpenID](%%doc.openid%%) "
 "before changing your settings."
 msgstr ""
 
-#: openidlogin.php:72
+#. TRANS: OpenID plugin message.
+#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)".
+#: openidlogin.php:86
 #, php-format
 msgid "Login with an [OpenID](%%doc.openid%%) account."
 msgstr ""
 
-#: openidlogin.php:97 finishaddopenid.php:170
+#. TRANS: OpenID plugin message. Title.
+#. TRANS: Title after getting the status of the OpenID authorisation request.
+#: openidlogin.php:120 finishaddopenid.php:187
 msgid "OpenID Login"
 msgstr ""
 
-#: openidlogin.php:114
+#. TRANS: OpenID plugin logon form legend.
+#: openidlogin.php:138
 msgid "OpenID login"
 msgstr ""
 
-#: openidlogin.php:121
+#: openidlogin.php:146
+msgid "OpenID provider"
+msgstr ""
+
+#: openidlogin.php:154
+msgid "Enter your username."
+msgstr ""
+
+#: openidlogin.php:155
+msgid "You will be sent to the provider's site for authentication."
+msgstr ""
+
+#. TRANS: OpenID plugin logon form field instructions.
+#: openidlogin.php:162
 msgid "Your OpenID URL"
 msgstr ""
 
-#: openidlogin.php:124
+#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie.
+#: openidlogin.php:167
 msgid "Remember me"
 msgstr ""
 
-#: openidlogin.php:125
+#. TRANS: OpenID plugin logon form field instructions.
+#: openidlogin.php:169
 msgid "Automatically login in the future; not for shared computers!"
 msgstr ""
 
-#: openidlogin.php:129
+#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form.
+#: openidlogin.php:174
+msgctxt "BUTTON"
 msgid "Login"
 msgstr ""
 
@@ -383,22 +543,27 @@ msgstr ""
 msgid "Cancel"
 msgstr ""
 
-#: finishaddopenid.php:67
+#. TRANS: Client error message
+#: finishaddopenid.php:68
 msgid "Not logged in."
 msgstr ""
 
-#: finishaddopenid.php:112
+#. TRANS: message in case a user tries to add an OpenID that is already connected to them.
+#: finishaddopenid.php:122
 msgid "You already have this OpenID!"
 msgstr ""
 
-#: finishaddopenid.php:114
+#. TRANS: message in case a user tries to add an OpenID that is already used by another user.
+#: finishaddopenid.php:125
 msgid "Someone else already has this OpenID."
 msgstr ""
 
-#: finishaddopenid.php:126
+#. TRANS: message in case the OpenID object cannot be connected to the user.
+#: finishaddopenid.php:138
 msgid "Error connecting user."
 msgstr ""
 
-#: finishaddopenid.php:131
+#. TRANS: message in case the user or the user profile cannot be saved in StatusNet.
+#: finishaddopenid.php:145
 msgid "Error updating profile"
 msgstr ""
diff --git a/plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalytics/PiwikAnalyticsPlugin.php
new file mode 100644 (file)
index 0000000..777fd9c
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to use Piwik Analytics
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Tobias Diekershoff <tobias.diekershoff@gmx.net>
+ * @copyright 2008 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to use Piwik Analytics (based on the Google Analytics plugin by Evan)
+ *
+ * This plugin will spoot out the correct JavaScript spell to invoke
+ * Piwik Analytics on a page.
+ *
+ * To use this plugin add the following to your config.php
+ *
+ *  addPlugin('PiwikAnalytics', array('piwikroot' => 'example.com/piwik/',
+ *                                    'piwikId' => 'id'));
+ *
+ * Replace 'example.com/piwik/' with the URL to your Piwik installation and
+ * make sure you don't forget the final /.
+ * Replace 'id' with the ID your statusnet installation has in your Piwik
+ * analytics setup - for example '8'.
+ *
+ */
+class PiwikAnalyticsPlugin extends Plugin
+{
+    /** the base of your Piwik installation */
+    public $piwikroot = null;
+    /** the Piwik Id of your statusnet installation */
+    public $piwikId   = null;
+
+    /**
+     * constructor
+     *
+     * @param string $root Piwik root URL
+     * @param string $id   Piwik ID of this app
+     */
+    function __construct($root=null, $id=null)
+    {
+        $this->piwikroot = $root;
+        $this->piwikId   = $id;
+        parent::__construct();
+    }
+
+    /**
+     * Called when all scripts have been shown
+     *
+     * @param Action $action Current action
+     *
+     * @return boolean ignored
+     */
+    function onEndShowScripts($action)
+    {
+        $piwikCode1 = <<<ENDOFPIWIK
+var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$this->piwikroot}" : "http://{$this->piwikroot}");
+document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+ENDOFPIWIK;
+        $piwikCode2 = <<<ENDOFPIWIK
+try {
+    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {$this->piwikId});
+    piwikTracker.trackPageView();
+    piwikTracker.enableLinkTracking();
+} catch( err ) {}
+ENDOFPIWIK;
+
+        $action->inlineScript($piwikCode1);
+        $action->inlineScript($piwikCode2);
+        return true;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'PiwikAnalytics',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Tobias Diekershoff, Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:Piwik',
+                            'rawdescription' =>
+                            _m('Use <a href="http://piwik.org/">Piwik</a> Open Source web analytics software.'));
+        return true;
+    }
+}
diff --git a/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot b/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot
new file mode 100644 (file)
index 0000000..ff63aac
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: PiwikAnalyticsPlugin.php:105
+msgid ""
+"Use <a href=\"http://piwik.org/\">Piwik</a> Open Source web analytics "
+"software."
+msgstr ""
diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalyticsPlugin.php
deleted file mode 100644 (file)
index b353d72..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to use Piwik Analytics
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @author    Tobias Diekershoff <tobias.diekershoff@gmx.net>
- * @copyright 2008 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to use Piwik Analytics (based on the Google Analytics plugin by Evan)
- *
- * This plugin will spoot out the correct JavaScript spell to invoke
- * Piwik Analytics on a page.
- *
- * To use this plugin add the following to your config.php
- *
- *  addPlugin('PiwikAnalytics', array('piwikroot' => 'example.com/piwik/',
- *                                    'piwikId' => 'id'));
- *
- * Replace 'example.com/piwik/' with the URL to your Piwik installation and
- * make sure you don't forget the final /.
- * Replace 'id' with the ID your statusnet installation has in your Piwik
- * analytics setup - for example '8'.
- *
- */
-
-class PiwikAnalyticsPlugin extends Plugin
-{
-    /** the base of your Piwik installation */
-    public $piwikroot = null;
-    /** the Piwik Id of your statusnet installation */
-    public $piwikId   = null;
-
-    /**
-     * constructor
-     *
-     * @param string $root Piwik root URL
-     * @param string $id   Piwik ID of this app
-     */
-
-    function __construct($root=null, $id=null)
-    {
-        $this->piwikroot = $root;
-        $this->piwikId   = $id;
-        parent::__construct();
-    }
-
-    /**
-     * Called when all scripts have been shown
-     *
-     * @param Action $action Current action
-     *
-     * @return boolean ignored
-     */
-
-    function onEndShowScripts($action)
-    {
-        $piwikCode1 = <<<ENDOFPIWIK
-var pkBaseURL = (("https:" == document.location.protocol) ? "https://{$this->piwikroot}" : "http://{$this->piwikroot}");
-document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
-ENDOFPIWIK;
-        $piwikCode2 = <<<ENDOFPIWIK
-try {
-    var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", {$this->piwikId});
-    piwikTracker.trackPageView();
-    piwikTracker.enableLinkTracking();
-} catch( err ) {}
-ENDOFPIWIK;
-
-        $action->inlineScript($piwikCode1);
-        $action->inlineScript($piwikCode2);
-        return true;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'PiwikAnalytics',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Tobias Diekershoff, Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:Piwik',
-                            'rawdescription' =>
-                            _m('Use <a href="http://piwik.org/">Piwik</a> Open Source Web analytics software.'));
-        return true;
-    }
-
-}
index b7107d4c1740f218bfe41fa1a631b87f9a4e77f6..93c9a585de1f088088e181c05449cc79e4f75654 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index fb4eff73894c0791aa37d6de96379a051ba58782..f2e2fcbafe0ab0082edddcc7f2cb9f555aed1ef4 100644 (file)
@@ -47,6 +47,7 @@ class PoweredByStatusNetPlugin extends Plugin
     {
         $action->text(' ');
         $action->elementStart('span', 'poweredby');
+        // TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text.
         $action->raw(sprintf(_m('powered by %s'),
                      sprintf('<a href="http://status.net/">%s</a>',
                              _m('StatusNet'))));
@@ -62,7 +63,7 @@ class PoweredByStatusNetPlugin extends Plugin
                             'author' => 'Sarven Capadisli',
                             'homepage' => 'http://status.net/wiki/Plugin:PoweredByStatusNet',
                             'rawdescription' =>
-                            _m('Outputs powered by <a href="http://status.net/">StatusNet</a> after site name.'));
+                            _m('Outputs "powered by <a href="http://status.net/">StatusNet</a>" after site name.'));
         return true;
     }
 }
index bc0e814f2cee1c109ed43e56ef80adf65e76884a..dc2b85db1e4fc138a242894aed52534a7aa0f3b0 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,17 +16,18 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: PoweredByStatusNetPlugin.php:50
+#. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text.
+#: PoweredByStatusNetPlugin.php:51
 #, php-format
 msgid "powered by %s"
 msgstr ""
 
-#: PoweredByStatusNetPlugin.php:52
+#: PoweredByStatusNetPlugin.php:53
 msgid "StatusNet"
 msgstr ""
 
-#: PoweredByStatusNetPlugin.php:65
+#: PoweredByStatusNetPlugin.php:66
 msgid ""
-"Outputs powered by <a href=\"http://status.net/\">StatusNet</a> after site "
-"name."
+"Outputs \"powered by <a href=\"http://status.net/\">StatusNet</a>\" after "
+"site name."
 msgstr ""
index a888f80e4a6f63a620328702acaa7c011fe94051..5d75e0c85dc0144474804716b7fda8baddfd1457 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index e37eed16a3dc5508a3cafa7273319680a4fa0f1e..c7d7a40e3bb0a7e973464a6f5158d0ce73e7f6e5 100644 (file)
@@ -47,7 +47,6 @@ if (!defined('STATUSNET')) {
  **/
 class LoggingAggregatorAction extends Action
 {
-
     var $challenge = null;
     var $url       = null;
 
@@ -58,7 +57,6 @@ class LoggingAggregatorAction extends Action
      *
      * @return boolean false if user doesn't exist
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -79,22 +77,20 @@ class LoggingAggregatorAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
 
         if (empty($this->url)) {
-            $this->showError('Hey, you have to provide a url parameter.');
+            $this->showError(_('A URL parameter is required.'));
             return;
         }
 
         if (!empty($this->challenge)) {
 
             // must be a GET
-
             if ($_SERVER['REQUEST_METHOD'] != 'GET') {
-                $this->showError('This resource requires an HTTP GET.');
+                $this->showError(_m('This resource requires an HTTP GET.'));
                 return;
             }
 
@@ -104,9 +100,8 @@ class LoggingAggregatorAction extends Action
         } else {
 
             // must be a POST
-
             if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-                $this->showError('This resource requires an HTTP POST.');
+                $this->showError(_m('This resource requires an HTTP POST.'));
                 return;
             }
 
@@ -128,7 +123,6 @@ class LoggingAggregatorAction extends Action
      *
      * @return void
      */
-
     function showError($msg)
     {
         header('HTTP/1.1 400 Bad Request');
@@ -136,5 +130,4 @@ class LoggingAggregatorAction extends Action
         echo "<?xml version='1.0'?>\n";
         echo "<notifyResult success='false' msg='$msg' />\n";
     }
-
-}
\ No newline at end of file
+}
index 9e7b53680381c43930ebb781a6643ff3ea400bba..1f0eab47e8049c343a7e07fee221354af5928a75 100644 (file)
@@ -235,6 +235,4 @@ class RSSCloudNotifier
             }
         }
     }
-
 }
-
index c1951cdbf856b31931ae83d6cb82fcf9c61b1e20..bba0be515d4e068959656e023e784b6c7cfde18c 100644 (file)
@@ -247,10 +247,9 @@ class RSSCloudPlugin extends Plugin
                             'rawdescription' =>
                             _m('The RSSCloud plugin enables your StatusNet instance to publish ' .
                                'real-time updates for profile RSS feeds using the ' .
-                               '<a href="http://rsscloud.org/">RSSCloud protocol</a>".'));
+                               '<a href="http://rsscloud.org/">RSSCloud protocol</a>.'));
 
         return true;
     }
 
 }
-
index ef11eda2e78ae3be1fd8a09e59f19471011fae49..8a09977489b3d463d41f0b14d1568470ae532b81 100644 (file)
@@ -38,4 +38,3 @@ class RSSCloudQueueHandler extends QueueHandler
         return $notifier->notify($profile);
     }
 }
-
index 03052953486e9da683c030855da8182ce00b2508..e9c0eab5f881e6a4ed6046806e9fdcd5ce34c17c 100644 (file)
@@ -41,7 +41,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  **/
-
 class RSSCloudRequestNotifyAction extends Action
 {
     /**
@@ -51,7 +50,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return boolean false if user doesn't exist
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -84,13 +82,12 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-            $this->showResult(false, 'Request must be POST.');
+            $this->showResult(false, _m('Request must be POST.'));
             return;
         }
 
@@ -107,7 +104,7 @@ class RSSCloudRequestNotifyAction extends Action
         if (empty($this->protocol)) {
             $missing[] = 'protocol';
         } else if (strtolower($this->protocol) != 'http-post') {
-            $msg = 'Only http-post notifications are supported at this time.';
+            $msg = _m('Only http-post notifications are supported at this time.');
             $this->showResult(false, $msg);
             return;
         }
@@ -117,15 +114,15 @@ class RSSCloudRequestNotifyAction extends Action
         }
 
         if (!empty($missing)) {
-            $msg = 'The following parameters were missing from the request body: ' .
-                implode(', ', $missing) . '.';
+            // TRANS: %s is a comma separated list of parameters.
+            $msg = sprintf(_m('The following parameters were missing from the request body: %s.'),implode(', ', $missing));
             $this->showResult(false, $msg);
             return;
         }
 
         if (empty($this->feeds)) {
-            $msg = 'You must provide at least one valid profile feed url ' .
-              '(url1, url2, url3 ... urlN).';
+            $msg = _m('You must provide at least one valid profile feed url ' .
+              '(url1, url2, url3 ... urlN).');
             $this->showResult(false, $msg);
             return;
         }
@@ -133,7 +130,6 @@ class RSSCloudRequestNotifyAction extends Action
         // We have to validate everything before saving anything.
         // We only return one success or failure no matter how
         // many feeds the subscriber is trying to subscribe to
-
         foreach ($this->feeds as $feed) {
 
             if (!$this->validateFeed($feed)) {
@@ -142,18 +138,17 @@ class RSSCloudRequestNotifyAction extends Action
                 common_log(LOG_WARNING,
                            "RSSCloud plugin - $nh tried to subscribe to invalid feed: $feed");
 
-                $msg = 'Feed subscription failed - Not a valid feed.';
+                $msg = _m('Feed subscription failed: Not a valid feed.');
                 $this->showResult(false, $msg);
                 return;
             }
 
             if (!$this->testNotificationHandler($feed)) {
-                $msg = 'Feed subscription failed - ' .
-                'notification handler doesn\'t respond correctly.';
+                $msg = _m('Feed subscription failed - ' .
+                'notification handler doesn\'t respond correctly.');
                 $this->showResult(false, $msg);
                 return;
             }
-
         }
 
         foreach ($this->feeds as $feed) {
@@ -163,9 +158,8 @@ class RSSCloudRequestNotifyAction extends Action
         // XXX: What to do about deleting stale subscriptions?
         // 25 hours seems harsh. WordPress doesn't ever remove
         // subscriptions.
-
-        $msg = 'Thanks for the subscription. ' .
-          'When the feed(s) update(s) we\'ll notify you.';
+        $msg = _m('Thanks for the subscription. ' .
+          'When the feed(s) update(s), you will be notified.');
 
         $this->showResult(true, $msg);
     }
@@ -178,7 +172,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return void
      */
-
     function validateFeed($feed)
     {
         $user = $this->userFromFeed($feed);
@@ -196,7 +189,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return array $feeds the list of feeds
      */
-
     function getFeeds()
     {
         $feeds = array();
@@ -218,7 +210,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return boolean success result
      */
-
     function testNotificationHandler($feed)
     {
         $notifyUrl = $this->getNotifyUrl();
@@ -226,9 +217,7 @@ class RSSCloudRequestNotifyAction extends Action
         $notifier = new RSSCloudNotifier();
 
         if (isset($this->domain)) {
-
             // 'domain' param set, so we have to use GET and send a challenge
-
             common_log(LOG_INFO,
                        'RSSCloud plugin - Testing notification handler with challenge: ' .
                        $notifyUrl);
@@ -248,7 +237,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return string notification handler url
      */
-
     function getNotifyUrl()
     {
         if (isset($this->domain)) {
@@ -267,12 +255,10 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return boolean success
      */
-
     function userFromFeed($feed)
     {
         // We only do canonical RSS2 profile feeds (specified by ID), e.g.:
         // http://www.example.com/api/statuses/user_timeline/2.rss
-
         $path  = common_path('api/statuses/user_timeline/');
         $valid = '%^' . $path . '(?<id>.*)\.rss$%';
 
@@ -293,7 +279,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return boolean success result
      */
-
     function saveSubscription($feed)
     {
         $user = $this->userFromFeed($feed);
@@ -334,7 +319,6 @@ class RSSCloudRequestNotifyAction extends Action
      *
      * @return boolean success result
      */
-
     function showResult($success, $msg)
     {
         $this->startXML();
@@ -343,6 +327,4 @@ class RSSCloudRequestNotifyAction extends Action
                                   'msg'     => $msg));
         $this->endXML();
     }
-
 }
-
index 396c604e71ebdba0d4ee0e399d88fe292140f969..595af884468ac4aad7d441fe6dff8fd22dc25a96 100644 (file)
@@ -75,5 +75,4 @@ class RSSCloudSubscription extends Memcached_DataObject {
 
         return false;
     }
-
 }
index 4078cc749d79c088a3ecd54cc65a830e59359123..d4fb04df7d1886ca9434106e8d40748f868df581 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,9 +16,52 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: RSSCloudPlugin.php:260
+#: RSSCloudRequestNotify.php:90
+msgid "Request must be POST."
+msgstr ""
+
+#: RSSCloudRequestNotify.php:107
+msgid "Only http-post notifications are supported at this time."
+msgstr ""
+
+#. TRANS: %s is a comma separated list of parameters.
+#: RSSCloudRequestNotify.php:118
+#, php-format
+msgid "The following parameters were missing from the request body: %s."
+msgstr ""
+
+#: RSSCloudRequestNotify.php:124
+msgid ""
+"You must provide at least one valid profile feed url (url1, url2, url3 ... "
+"urlN)."
+msgstr ""
+
+#: RSSCloudRequestNotify.php:141
+msgid "Feed subscription failed: Not a valid feed."
+msgstr ""
+
+#: RSSCloudRequestNotify.php:147
+msgid ""
+"Feed subscription failed - notification handler doesn't respond correctly."
+msgstr ""
+
+#: RSSCloudRequestNotify.php:161
+msgid ""
+"Thanks for the subscription. When the feed(s) update(s), you will be "
+"notified."
+msgstr ""
+
+#: LoggingAggregator.php:93
+msgid "This resource requires an HTTP GET."
+msgstr ""
+
+#: LoggingAggregator.php:104
+msgid "This resource requires an HTTP POST."
+msgstr ""
+
+#: RSSCloudPlugin.php:248
 msgid ""
 "The RSSCloud plugin enables your StatusNet instance to publish real-time "
 "updates for profile RSS feeds using the <a href=\"http://rsscloud.org/"
-"\">RSSCloud protocol</a>\"."
+"\">RSSCloud protocol</a>."
 msgstr ""
index 7cc34c56863dcf1702e036857fbe678a48b30124..0c46a33e0b0cea702326c436fce4283bf8525cad 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
- * Plugin to show reCaptcha when a user registers 
+ * Plugin to show reCaptcha when a user registers
  *
  * PHP version 5
  *
@@ -61,14 +61,14 @@ class RecaptchaPlugin extends Plugin
     function onEndRegistrationFormData($action)
     {
         $action->elementStart('li');
-        $action->raw('<label for="recaptcha">Captcha</label>');
+        $action->raw('<label for="recaptcha">'._m('Captcha').'</label>');
 
         // AJAX API will fill this div out.
         // We're calling that instead of the regular one so we stay compatible
         // with application/xml+xhtml output as for mobile.
         $action->element('div', array('id' => 'recaptcha'));
         $action->elementEnd('li');
-        
+
         $action->recaptchaPluginNeedsOutput = true;
         return true;
     }
@@ -83,7 +83,7 @@ class RecaptchaPlugin extends Plugin
                 $url = "http://api.recaptcha.net/js/recaptcha_ajax.js";
             }
             $action->script($url);
-            
+
             // And when we're ready, fill out the captcha!
             $key = json_encode($this->public_key);
             $action->inlinescript("\$(function(){Recaptcha.create($key, 'recaptcha');});");
@@ -100,9 +100,9 @@ class RecaptchaPlugin extends Plugin
 
         if (!$resp->is_valid) {
             if($this->display_errors) {
-                $action->showForm ("(reCAPTCHA error: " . $resp->error . ")");
+                $action->showForm(sprintf(_("(reCAPTCHA error: %s)", $resp->error)));
             }
-            $action->showForm("Captcha does not match!");
+            $action->showForm(_m("Captcha does not match!"));
             return false;
         }
     }
index 6611ff604ae195147ceedfbe075e384897521606..c59820bfa45b5db278334ecebe3f948d2a4608f9 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,7 +16,15 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: RecaptchaPlugin.php:97
+#: RecaptchaPlugin.php:64
+msgid "Captcha"
+msgstr ""
+
+#: RecaptchaPlugin.php:105
+msgid "Captcha does not match!"
+msgstr ""
+
+#: RecaptchaPlugin.php:117
 msgid ""
 "Uses <a href=\"http://recaptcha.org/\">Recaptcha</a> service to add a  "
 "captcha to the registration page."
index 05709b7807b2cc408d34168409b3cfb2d05ec3ee..b6e9a902653f5a49380bd7cc3540e0a3efc0ce3d 100644 (file)
@@ -113,7 +113,6 @@ class RegisterThrottlePlugin extends Plugin
      * @return boolean hook value
      *
      */
-
     function onStartRegistrationTry($action)
     {
         $ipaddress = $this->_getIpAddress();
@@ -134,7 +133,7 @@ class RegisterThrottlePlugin extends Plugin
                 $now     = time();
                 $this->debug("Comparing {$regtime} to {$now}");
                 if ($now - $regtime < $seconds) {
-                    throw new Exception(_("Too many registrations. Take a break and try again later."));
+                    throw new Exception(_m("Too many registrations. Take a break and try again later."));
                 }
             }
         }
@@ -197,7 +196,7 @@ class RegisterThrottlePlugin extends Plugin
                             'author' => 'Evan Prodromou',
                             'homepage' => 'http://status.net/wiki/Plugin:RegisterThrottle',
                             'description' =>
-                            _m('Throttles excessive registration from a single IP.'));
+                            _m('Throttles excessive registration from a single IP address.'));
         return true;
     }
 
index 7e61d089e7b072dbb1409aa02b13415ed2169fe5..5c7396b9b06ddb2e8935452b41a410f3378ec99d 100644 (file)
@@ -42,7 +42,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  * @link     http://status.net/
  */
-
 class Registration_ip extends Memcached_DataObject
 {
     public $__table = 'registration_ip';     // table name
@@ -59,7 +58,6 @@ class Registration_ip extends Memcached_DataObject
      * @return User_greeting_count object found, or null for no hits
      *
      */
-
     function staticGet($k, $v=null)
     {
         return Memcached_DataObject::staticGet('Registration_ip', $k, $v);
@@ -70,7 +68,6 @@ class Registration_ip extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@@ -86,7 +83,6 @@ class Registration_ip extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keys()
     {
         return array('user_id' => 'K');
@@ -100,7 +96,6 @@ class Registration_ip extends Memcached_DataObject
      *
      * @return array key definitions
      */
-
     function keyTypes()
     {
         return $this->keys();
@@ -116,7 +111,6 @@ class Registration_ip extends Memcached_DataObject
      *
      * @return array magic three-false array that stops auto-incrementing.
      */
-
     function sequenceKey()
     {
         return array(false, false, false);
index 834f5fd4adf64e86aa1e0265a6ecffa226ad3bff..08eaadc2cd8c10c869cc929c9df2472d77ebf833 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,14 +16,18 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: RegisterThrottlePlugin.php:122 RegisterThrottlePlugin.php:161
+#: RegisterThrottlePlugin.php:121 RegisterThrottlePlugin.php:160
 msgid "Cannot find IP address."
 msgstr ""
 
-#: RegisterThrottlePlugin.php:167
+#: RegisterThrottlePlugin.php:136
+msgid "Too many registrations. Take a break and try again later."
+msgstr ""
+
+#: RegisterThrottlePlugin.php:166
 msgid "Cannot find user after successful registration."
 msgstr ""
 
-#: RegisterThrottlePlugin.php:200
-msgid "Throttles excessive registration from a single IP."
+#: RegisterThrottlePlugin.php:199
+msgid "Throttles excessive registration from a single IP address."
 msgstr ""
index af75b96e0b12002c313232f24c72cbccf116f6b0..719dba89cda520a7337b1bf8cc54c9c1f0e4f28b 100644 (file)
@@ -170,4 +170,3 @@ class RequireValidatedEmailPlugin extends Plugin
         return true;
     }
 }
-
index c8953a1fa36f29bcbd487f1d39e4b48eb3908cea..d6e58ea4d5ec4ee120345897dbf5e0a70a8356ff 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,15 +16,15 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: RequireValidatedEmailPlugin.php:57
+#: RequireValidatedEmailPlugin.php:72
 msgid "You must validate your email address before posting."
 msgstr ""
 
-#: RequireValidatedEmailPlugin.php:75
+#: RequireValidatedEmailPlugin.php:90
 msgid "You must provide an email address to register."
 msgstr ""
 
-#: RequireValidatedEmailPlugin.php:128
+#: RequireValidatedEmailPlugin.php:169
 msgid ""
 "The Require Validated Email plugin disables posting for accounts that do not "
 "have a validated email address."
index 6fa18c464c72777e94d97fc9c5d733f76e944498..e1b3daf7621d6c67ef46efd6617356ec4e853d9f 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 913741226b4302cd2c63bc09f439659fe9a89d68..ef69121a9986459b39840025917eb79d6e3d24e1 100644 (file)
@@ -101,7 +101,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
  * @link      http://status.net/
  */
-
 class SamplePlugin extends Plugin
 {
     /**
@@ -129,7 +128,6 @@ class SamplePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function initialize()
     {
         return true;
@@ -143,7 +141,6 @@ class SamplePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function cleanup()
     {
         return true;
@@ -168,7 +165,6 @@ class SamplePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function onCheckSchema()
     {
         $schema = Schema::get();
@@ -201,7 +197,6 @@ class SamplePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function onAutoload($cls)
     {
         $dir = dirname(__FILE__);
@@ -231,7 +226,6 @@ class SamplePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function onRouterInitialized($m)
     {
         $m->connect('main/hello',
@@ -256,7 +250,6 @@ class SamplePlugin extends Plugin
      *
      * @see Action
      */
-
     function onEndPrimaryNav($action)
     {
         // common_local_url() gets the correct URL for the action name
@@ -278,4 +271,3 @@ class SamplePlugin extends Plugin
         return true;
     }
 }
-
index fc0cbd28ff72a9e3b88d816efb5f57821e10d9a7..38d68c91ed35a473041874bc32d0c15cfa14048d 100644 (file)
@@ -70,7 +70,6 @@ class User_greeting_count extends Memcached_DataObject
      * @return User_greeting_count object found, or null for no hits
      *
      */
-
     function staticGet($k, $v=null)
     {
         return Memcached_DataObject::staticGet('User_greeting_count', $k, $v);
@@ -84,7 +83,6 @@ class User_greeting_count extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@@ -100,7 +98,6 @@ class User_greeting_count extends Memcached_DataObject
      *
      * @return array list of key field names
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -118,7 +115,6 @@ class User_greeting_count extends Memcached_DataObject
      *         'K' for primary key: for compound keys, add an entry for each component;
      *         'U' for unique keys: compound keys are not well supported here.
      */
-
     function keyTypes()
     {
         return array('user_id' => 'K');
@@ -134,7 +130,6 @@ class User_greeting_count extends Memcached_DataObject
      *
      * @return array magic three-false array that stops auto-incrementing.
      */
-
     function sequenceKey()
     {
         return array(false, false, false);
@@ -150,7 +145,6 @@ class User_greeting_count extends Memcached_DataObject
      *
      * @return User_greeting_count instance for this user, with count already incremented.
      */
-
     static function inc($user_id)
     {
         $gc = User_greeting_count::staticGet('user_id', $user_id);
@@ -165,12 +159,12 @@ class User_greeting_count extends Memcached_DataObject
             $result = $gc->insert();
 
             if (!$result) {
-                throw Exception(sprintf(_m("Could not save new greeting count for %d"),
+                // TRANS: Exception thrown when the user greeting count could not be saved in the database.
+                // TRANS: %d is a user ID (number).
+                throw Exception(sprintf(_m("Could not save new greeting count for %d."),
                                         $user_id));
             }
-
         } else {
-
             $orig = clone($gc);
 
             $gc->greeting_count++;
@@ -178,7 +172,9 @@ class User_greeting_count extends Memcached_DataObject
             $result = $gc->update($orig);
 
             if (!$result) {
-                throw Exception(sprintf(_m("Could not increment greeting count for %d"),
+                // TRANS: Exception thrown when the user greeting count could not be saved in the database.
+                // TRANS: %d is a user ID (number).
+                throw Exception(sprintf(_m("Could not increment greeting count for %d."),
                                         $user_id));
             }
         }
index dfbd0ad4f256ffa578a2a7cdde65a0e2cd4580de..a793ac6de2c98948a13c7268c7cad6312c85a446 100644 (file)
@@ -46,7 +46,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  * @link     http://status.net/
  */
-
 class HelloAction extends Action
 {
     var $user = null;
@@ -67,7 +66,6 @@ class HelloAction extends Action
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -93,7 +91,6 @@ class HelloAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
@@ -108,13 +105,12 @@ class HelloAction extends Action
      *
      * @return string Title of the page
      */
-
     function title()
     {
         if (empty($this->user)) {
             return _m('Hello');
         } else {
-            return sprintf(_m('Hello, %s'), $this->user->nickname);
+            return sprintf(_m('Hello, %s!'), $this->user->nickname);
         }
     }
 
@@ -130,7 +126,6 @@ class HelloAction extends Action
      *
      * @return void
      */
-
     function showContent()
     {
         if (empty($this->user)) {
@@ -162,7 +157,6 @@ class HelloAction extends Action
      *
      * @return boolean is read only action?
      */
-
     function isReadOnly($args)
     {
         return false;
index bd21dd3c4ce0158fff8910bc638221ee2a28892a..4f1bf587f974c3a158fac3ccd9004271cdc6161c 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,38 +17,47 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: User_greeting_count.php:163
+#. TRANS: Exception thrown when the user greeting count could not be saved in the database.
+#. TRANS: %d is a user ID (number).
+#: User_greeting_count.php:164
 #, php-format
-msgid "Could not save new greeting count for %d"
+msgid "Could not save new greeting count for %d."
 msgstr ""
 
-#: User_greeting_count.php:176
+#. TRANS: Exception thrown when the user greeting count could not be saved in the database.
+#. TRANS: %d is a user ID (number).
+#: User_greeting_count.php:177
 #, php-format
-msgid "Could not increment greeting count for %d"
+msgid "Could not increment greeting count for %d."
 msgstr ""
 
-#: SamplePlugin.php:266 hello.php:115
+#: SamplePlugin.php:259 hello.php:111
 msgid "Hello"
 msgstr ""
 
-#: SamplePlugin.php:266
+#: SamplePlugin.php:259
 msgid "A warm greeting"
 msgstr ""
 
-#: SamplePlugin.php:277
+#: SamplePlugin.php:270
 msgid "A sample plugin to show basics of development for new hackers."
 msgstr ""
 
-#: hello.php:117 hello.php:141
+#: hello.php:113
 #, php-format
-msgid "Hello, %s"
+msgid "Hello, %s!"
 msgstr ""
 
-#: hello.php:138
+#: hello.php:133
 msgid "Hello, stranger!"
 msgstr ""
 
-#: hello.php:143
+#: hello.php:136
+#, php-format
+msgid "Hello, %s"
+msgstr ""
+
+#: hello.php:138
 #, php-format
 msgid "I have greeted you %d time."
 msgid_plural "I have greeted you %d times."
index e3c241d538bd5f79422094166aafac8e6f4309e9..f1e0abf0c257681d2c135c1f38c1c13933f160a4 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/plugins/Spotify/SpotifyPlugin.php b/plugins/Spotify/SpotifyPlugin.php
new file mode 100644 (file)
index 0000000..e7a5a53
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+  *
+ * Plugin to create pretty Spotify URLs
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Nick Holliday <n.g.holliday@gmail.com>
+ * @copyright Nick Holliday
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ *
+ * @see      Event
+ */
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+define('SPOTIFYPLUGIN_VERSION', '0.1');
+
+/**
+ * Plugin to create pretty Spotify URLs
+ *
+ * The Spotify API is called before the notice is saved to gather artist and track information.
+ *
+ * @category  Plugin
+ * @package   StatusNet
+ * @author    Nick Holliday <n.g.holliday@gmail.com>
+ * @copyright Nick Holliday
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ *
+ * @see       Event
+ */
+
+class SpotifyPlugin extends Plugin
+{
+
+    function __construct()
+    {
+        parent::__construct();
+    }
+
+    function onStartNoticeSave($notice)
+    {
+        $notice->rendered = preg_replace_callback('/spotify:[a-z]{5,6}:[a-z0-9]{22}/i',
+                                                  "renderSpotifyURILink",
+                                                  $notice->rendered);
+
+        $notice->rendered = preg_replace_callback('/<a href="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" title="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" rel="external">http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}<\/a>/i',
+                                                  "renderSpotifyHTTPLink",
+                                                  $notice->rendered);
+
+        return true;
+    }
+
+    function userAgent()
+    {
+        return 'SpotifyPlugin/'.SPOTIFYPLUGIN_VERSION .
+               ' StatusNet/' . STATUSNET_VERSION;
+    }
+}
+
+function doSpotifyLookup($uri, $isArtist)
+{
+    $request = HTTPClient::start();
+    $response = $request->get('http://ws.spotify.com/lookup/1/?uri=' . $uri);
+    if ($response->isOk()) {
+        $xml = simplexml_load_string($response->getBody());
+
+        if($isArtist)
+            return $xml->name;
+        else
+            return $xml->artist->name . ' - ' . $xml->name;
+    }
+}
+
+function renderSpotifyURILink($match)
+{
+    $isArtist = false;
+    if(preg_match('/artist/', $match[0]) > 0) $isArtist = true;
+
+    $name = doSpotifyLookup($match[0], $isArtist);
+    return "<a href=\"{$match[0]}\">" . $name . "</a>";
+}
+
+function renderSpotifyHTTPLink($match)
+{
+    $match[0] = preg_replace('/<a href="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" title="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" rel="external">http:\/\/open.spotify.com\//i', 'spotify:', $match[0]);
+    $match[0] = preg_replace('/<\/a>/', '', $match[0]);
+    $match[0] = preg_replace('/\//', ':', $match[0]);
+
+    $isArtist = false;
+    if(preg_match('/artist/', $match[0]) > 0) $isArtist = true;
+
+    $name = doSpotifyLookup($match[0], $isArtist);
+    return "<a href=\"{$match[0]}\">" . $name . "</a>";
+}
diff --git a/plugins/SpotifyPlugin.php b/plugins/SpotifyPlugin.php
deleted file mode 100644 (file)
index e7a5a53..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
-  *
- * Plugin to create pretty Spotify URLs
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Nick Holliday <n.g.holliday@gmail.com>
- * @copyright Nick Holliday
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- *
- * @see      Event
- */
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-define('SPOTIFYPLUGIN_VERSION', '0.1');
-
-/**
- * Plugin to create pretty Spotify URLs
- *
- * The Spotify API is called before the notice is saved to gather artist and track information.
- *
- * @category  Plugin
- * @package   StatusNet
- * @author    Nick Holliday <n.g.holliday@gmail.com>
- * @copyright Nick Holliday
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- *
- * @see       Event
- */
-
-class SpotifyPlugin extends Plugin
-{
-
-    function __construct()
-    {
-        parent::__construct();
-    }
-
-    function onStartNoticeSave($notice)
-    {
-        $notice->rendered = preg_replace_callback('/spotify:[a-z]{5,6}:[a-z0-9]{22}/i',
-                                                  "renderSpotifyURILink",
-                                                  $notice->rendered);
-
-        $notice->rendered = preg_replace_callback('/<a href="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" title="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" rel="external">http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}<\/a>/i',
-                                                  "renderSpotifyHTTPLink",
-                                                  $notice->rendered);
-
-        return true;
-    }
-
-    function userAgent()
-    {
-        return 'SpotifyPlugin/'.SPOTIFYPLUGIN_VERSION .
-               ' StatusNet/' . STATUSNET_VERSION;
-    }
-}
-
-function doSpotifyLookup($uri, $isArtist)
-{
-    $request = HTTPClient::start();
-    $response = $request->get('http://ws.spotify.com/lookup/1/?uri=' . $uri);
-    if ($response->isOk()) {
-        $xml = simplexml_load_string($response->getBody());
-
-        if($isArtist)
-            return $xml->name;
-        else
-            return $xml->artist->name . ' - ' . $xml->name;
-    }
-}
-
-function renderSpotifyURILink($match)
-{
-    $isArtist = false;
-    if(preg_match('/artist/', $match[0]) > 0) $isArtist = true;
-
-    $name = doSpotifyLookup($match[0], $isArtist);
-    return "<a href=\"{$match[0]}\">" . $name . "</a>";
-}
-
-function renderSpotifyHTTPLink($match)
-{
-    $match[0] = preg_replace('/<a href="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" title="http:\/\/open.spotify.com\/[a-z]{5,6}\/[a-z0-9]{22}" rel="external">http:\/\/open.spotify.com\//i', 'spotify:', $match[0]);
-    $match[0] = preg_replace('/<\/a>/', '', $match[0]);
-    $match[0] = preg_replace('/\//', ':', $match[0]);
-
-    $isArtist = false;
-    if(preg_match('/artist/', $match[0]) > 0) $isArtist = true;
-
-    $name = doSpotifyLookup($match[0], $isArtist);
-    return "<a href=\"{$match[0]}\">" . $name . "</a>";
-}
index 80c6c5a88f824b8bf210d1865e8454f56294b7da..578ef6607c5fc846d3156f5f25ab15652425a28f 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+
 /**
  * @package SubMirrorPlugin
  * @maintainer Brion Vibber <brion@status.net>
  */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-
 class SubMirrorPlugin extends Plugin
 {
     /**
index 5acdf1dfe498c97d43eef019e00a21c3e095049f..8c3a9740f3cd3528dd051ae596c621b362717070 100644 (file)
@@ -45,7 +45,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class AddMirrorAction extends BaseMirrorAction
 {
     var $feedurl;
@@ -57,7 +56,6 @@ class AddMirrorAction extends BaseMirrorAction
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
index be6942efa7ca3a263a85954dfdf0f10d644ecd04..3e3431103f1a0b030e699b06c50af5d2f7c56297 100644 (file)
@@ -45,7 +45,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 abstract class BaseMirrorAction extends Action
 {
     var $user;
@@ -58,7 +57,6 @@ abstract class BaseMirrorAction extends Action
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -107,24 +105,22 @@ abstract class BaseMirrorAction extends Action
     }
 
     /**
-     * @fixme none of this belongs in end classes
+     * @todo FIXME: none of this belongs in end classes
      * this stuff belongs in shared code!
      */
     function sharedBoilerplate()
     {
         // Only allow POST requests
-
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-            $this->clientError(_('This action only accepts POST requests.'));
+            $this->clientError(_m('This action only accepts POST requests.'));
             return false;
         }
 
         // CSRF protection
-
         $token = $this->trimmed('token');
 
         if (!$token || $token != common_session_token()) {
-            $this->clientError(_('There was a problem with your session token.'.
+            $this->clientError(_m('There was a problem with your session token.'.
                                  ' Try again, please.'));
             return false;
         }
@@ -134,7 +130,7 @@ abstract class BaseMirrorAction extends Action
         $this->user = common_current_user();
 
         if (empty($this->user)) {
-            $this->clientError(_('Not logged in.'));
+            $this->clientError(_m('Not logged in.'));
             return false;
         }
         return true;
@@ -149,7 +145,6 @@ abstract class BaseMirrorAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         // Throws exception on error
@@ -158,7 +153,7 @@ abstract class BaseMirrorAction extends Action
         if ($this->boolean('ajax')) {
             $this->startHTML('text/xml;charset=utf-8');
             $this->elementStart('head');
-            $this->element('title', null, _('Subscribed'));
+            $this->element('title', null, _m('Subscribed'));
             $this->elementEnd('head');
             $this->elementStart('body');
             $unsubscribe = new EditMirrorForm($this, $this->profile);
index c7fdab0d67d4552898a51bddc786d20f878a5dee..0f8b037325adf2ed1a95769ba7bd0bd3996f3c90 100644 (file)
@@ -45,7 +45,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class EditMirrorAction extends BaseMirrorAction
 {
 
@@ -56,7 +55,6 @@ class EditMirrorAction extends BaseMirrorAction
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -93,7 +91,8 @@ class EditMirrorAction extends BaseMirrorAction
     {
         $mirror = SubMirror::getMirror($this->user, $this->profile);
         if (!$mirror) {
-            $this->clientError(_m('Requested edit of missing mirror'));
+            // TRANS: Client error thrown when a mirror request is made and no result is retrieved.
+            $this->clientError(_m('Requested edit of missing mirror.'));
         }
 
         if ($this->delete) {
index 5463a8dc0c7cbb4094cdef729d25d724956aeec4..a828b26feb68b07399662f83904f399af1a0cd8b 100644 (file)
@@ -36,9 +36,9 @@ class MirrorSettingsAction extends AccountSettingsAction
      *
      * @return string Page title
      */
-
     function title()
     {
+        // TRANS: Title.
         return _m('Feed mirror settings');
     }
 
@@ -50,6 +50,7 @@ class MirrorSettingsAction extends AccountSettingsAction
 
     function getInstructions()
     {
+        // TRANS: Instructions.
         return _m('You can mirror updates from many RSS and Atom feeds ' .
                   'into your StatusNet timeline!');
     }
@@ -61,13 +62,12 @@ class MirrorSettingsAction extends AccountSettingsAction
      *
      * @return void
      */
-
     function showContent()
     {
         $user = common_current_user();
 
         $this->showAddFeedForm();
-        
+
         $mirror = new SubMirror();
         $mirror->subscriber = $user->id;
         if ($mirror->find()) {
@@ -99,7 +99,6 @@ class MirrorSettingsAction extends AccountSettingsAction
      *
      * @return void
      */
-
     function handlePost()
     {
     }
index bd8fc80a5fbc0fb3a46c6398a4e005c2b369d580..b39af918d5ddb2e073199c07a373ab190e77de75 100644 (file)
@@ -79,7 +79,7 @@ class SubMirror extends Memcached_DataObject
     /**
      * Temporary hack to set up the compound index, since we can't do
      * it yet through regular Schema interface. (Coming for 1.0...)
-     * 
+     *
      * @param Schema $schema
      * @return void
      */
@@ -145,7 +145,7 @@ class SubMirror extends Memcached_DataObject
         $mirror->created = common_sql_now();
         $mirror->modified = common_sql_now();
         $mirror->insert();
-        
+
         return $mirror;
     }
 
@@ -173,7 +173,7 @@ class SubMirror extends Memcached_DataObject
      * This retains attribution within the site, and other nice things,
      * but currently ends up looking like 'RT @foobar bla bla' when
      * bridged out over OStatus or TwitterBridge.
-     * 
+     *
      * @param Notice $notice
      * @return mixed Notice on successful repeat, true if already repeated, false on failure
      */
@@ -192,7 +192,7 @@ class SubMirror extends Memcached_DataObject
      * Mirror a notice by emitting a new notice with the same contents.
      * Kind of dirty, but if pulling an external data feed into an account
      * that may be what you want.
-     * 
+     *
      * @param Notice $notice
      * @return mixed Notice on successful repeat, true if already repeated, false on failure
      */
@@ -216,7 +216,7 @@ class SubMirror extends Memcached_DataObject
 
     /**
      * Get the mirroring setting for a pair of profiles, if existing.
-     * 
+     *
      * @param Profile $subscriber
      * @param Profile $subscribed
      * @return mixed Profile or empty
index 0a798c9eaf9f10d8bc9ec81d67aca99b81614652..e1d50c272c80954959fd1471b0ee52df5e687f8b 100644 (file)
@@ -28,7 +28,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
 
 class AddMirrorForm extends Form
 {
-
     /**
      * Name of the form
      *
@@ -36,7 +35,6 @@ class AddMirrorForm extends Form
      *
      * @return void
      */
-
     function formLegend()
     {
     }
@@ -49,7 +47,6 @@ class AddMirrorForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart('fieldset');
@@ -64,7 +61,7 @@ class AddMirrorForm extends Form
         $this->unli();
 
         $this->li();
-        $this->out->submit('addmirror-save', _m('Add feed'));
+        $this->out->submit('addmirror-save', _m('BUTTON','Add feed'));
         $this->unli();
         $this->out->elementEnd('ul');
         $this->out->elementEnd('fieldset');
@@ -94,7 +91,6 @@ class AddMirrorForm extends Form
      *
      * @return void
      */
-
     function formActions()
     {
     }
@@ -107,7 +103,6 @@ class AddMirrorForm extends Form
      *
      * @return string ID of the form
      */
-
     function id()
     {
         return 'add-mirror-form';
@@ -121,7 +116,6 @@ class AddMirrorForm extends Form
      *
      * @return string URL to post to
      */
-
     function action()
     {
         return common_local_url('addmirror');
@@ -132,10 +126,8 @@ class AddMirrorForm extends Form
      *
      * @return string the form's class
      */
-
     function formClass()
     {
         return 'form_settings';
     }
-
 }
index 8236da3896532b44213d2f1ca3d3e83dd24dbb1c..c1f60f9c2c4384b29fb7a0afa216c98a9eb0dd27 100644 (file)
@@ -45,7 +45,6 @@ class EditMirrorForm extends Form
      *
      * @return void
      */
-
     function formLegend()
     {
     }
@@ -58,7 +57,6 @@ class EditMirrorForm extends Form
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart('fieldset');
@@ -81,6 +79,7 @@ class EditMirrorForm extends Form
         $this->out->elementEnd('div');
         $this->out->elementStart('div');
         if ($feed) {
+            // XXX: Why the hard coded space?
             $this->out->text(_m('LABEL', 'Remote feed:') . ' ');
             //$this->out->element('a', array('href' => $feed), $feed);
             $this->out->element('input', array('value' => $feed, 'readonly' => 'readonly', 'style' => 'width: 100%'));
@@ -111,7 +110,7 @@ class EditMirrorForm extends Form
         }
         $this->out->elementEnd('fieldset');
 
-        
+
         $this->out->elementStart('div');
         $this->out->submit($this->id() . '-save', _m('Save'));
         $this->out->element('input', array('type' => 'submit',
@@ -155,7 +154,6 @@ class EditMirrorForm extends Form
      *
      * @return string ID of the form
      */
-
     function id()
     {
         return 'edit-mirror-form-' . $this->profile->id;
@@ -169,7 +167,6 @@ class EditMirrorForm extends Form
      *
      * @return string URL to post to
      */
-
     function action()
     {
         return common_local_url('editmirror');
@@ -180,10 +177,8 @@ class EditMirrorForm extends Form
      *
      * @return string the form's class
      */
-
     function formClass()
     {
         return 'form_settings';
     }
-
 }
index c1a6f65e3817572e9c503ed2a204b11cf5f5caf1..550986b444ce1a4be3646252c00a0f87d8836e9f 100644 (file)
@@ -23,7 +23,6 @@
  * @package SubMirror
  * @author Brion Vibber <brion@status.net>
  */
-
 class MirrorQueueHandler extends QueueHandler
 {
     function transport()
diff --git a/plugins/SubMirror/locale/SubMirror.pot b/plugins/SubMirror/locale/SubMirror.pot
new file mode 100644 (file)
index 0000000..a2953b9
--- /dev/null
@@ -0,0 +1,130 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: SubMirrorPlugin.php:90
+msgid "Pull feeds into your timeline!"
+msgstr ""
+
+#. TRANS: SubMirror plugin menu item on user settings page.
+#: SubMirrorPlugin.php:109
+msgctxt "MENU"
+msgid "Mirroring"
+msgstr ""
+
+#. TRANS: SubMirror plugin tooltip for user settings menu item.
+#: SubMirrorPlugin.php:111
+msgid "Configure mirroring of posts from other feeds"
+msgstr ""
+
+#: lib/editmirrorform.php:83
+msgctxt "LABEL"
+msgid "Remote feed:"
+msgstr ""
+
+#: lib/editmirrorform.php:87
+msgctxt "LABEL"
+msgid "Local user"
+msgstr ""
+
+#: lib/editmirrorform.php:93
+msgid "Mirroring style"
+msgstr ""
+
+#: lib/editmirrorform.php:95
+msgid ""
+"Repeat: reference the original user's post (sometimes shows as 'RT @blah')"
+msgstr ""
+
+#: lib/editmirrorform.php:96
+msgid "Repost the content under my account"
+msgstr ""
+
+#: lib/editmirrorform.php:115
+msgid "Save"
+msgstr ""
+
+#: lib/editmirrorform.php:117
+msgid "Stop mirroring"
+msgstr ""
+
+#: lib/addmirrorform.php:59
+msgid "Web page or feed URL:"
+msgstr ""
+
+#: lib/addmirrorform.php:64
+msgctxt "BUTTON"
+msgid "Add feed"
+msgstr ""
+
+#: actions/basemirror.php:71
+msgid "Invalid feed URL."
+msgstr ""
+
+#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed.
+#: actions/basemirror.php:83
+msgid "Invalid profile for mirroring."
+msgstr ""
+
+#: actions/basemirror.php:101
+msgid "Can't mirror a StatusNet group at this time."
+msgstr ""
+
+#: actions/basemirror.php:115
+msgid "This action only accepts POST requests."
+msgstr ""
+
+#: actions/basemirror.php:123
+msgid "There was a problem with your session token. Try again, please."
+msgstr ""
+
+#: actions/basemirror.php:133
+msgid "Not logged in."
+msgstr ""
+
+#: actions/basemirror.php:156
+msgid "Subscribed"
+msgstr ""
+
+#: actions/editmirror.php:68
+msgid "Requested invalid profile to edit."
+msgstr ""
+
+#: actions/editmirror.php:86
+msgid "Bad form data."
+msgstr ""
+
+#. TRANS: Client error thrown when a mirror request is made and no result is retrieved.
+#: actions/editmirror.php:95
+msgid "Requested edit of missing mirror."
+msgstr ""
+
+#: actions/addmirror.php:72
+msgid "Could not subscribe to feed."
+msgstr ""
+
+#. TRANS: Title.
+#: actions/mirrorsettings.php:42
+msgid "Feed mirror settings"
+msgstr ""
+
+#. TRANS: Instructions.
+#: actions/mirrorsettings.php:54
+msgid ""
+"You can mirror updates from many RSS and Atom feeds into your StatusNet "
+"timeline!"
+msgstr ""
diff --git a/plugins/SubscriptionThrottle/SubscriptionThrottlePlugin.php b/plugins/SubscriptionThrottle/SubscriptionThrottlePlugin.php
new file mode 100644 (file)
index 0000000..1141133
--- /dev/null
@@ -0,0 +1,175 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2010, StatusNet, Inc.
+ *
+ * Plugin to throttle subscriptions by a user
+ *
+ * PHP version 5
+ *
+ * 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  Throttle
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * Subscription throttle
+ *
+ * @category  Throttle
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2010 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
+ * @link      http://status.net/
+ */
+
+class SubscriptionThrottlePlugin extends Plugin
+{
+    public $subLimits = array(86400 => 100,
+                              3600 => 50);
+
+    public $groupLimits = array(86400 => 50,
+                                3600 => 25);
+
+    /**
+     * Filter subscriptions to see if they're coming too fast.
+     *
+     * @param User $user  The user subscribing
+     * @param User $other The user being subscribed to
+     *
+     * @return boolean hook value
+     */
+
+    function onStartSubscribe($user, $other)
+    {
+        foreach ($this->subLimits as $seconds => $limit) {
+            $sub = $this->_getNthSub($user, $limit);
+
+            if (!empty($sub)) {
+                $subtime = strtotime($sub->created);
+                $now     = time();
+                if ($now - $subtime < $seconds) {
+                    throw new Exception(_("Too many subscriptions. Take a break and try again later."));
+                }
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Filter group joins to see if they're coming too fast.
+     *
+     * @param Group $group The group being joined
+     * @param User  $user  The user joining
+     *
+     * @return boolean hook value
+     */
+
+    function onStartJoinGroup($group, $user)
+    {
+        foreach ($this->groupLimits as $seconds => $limit) {
+            $mem = $this->_getNthMem($user, $limit);
+            if (!empty($mem)) {
+
+                $jointime = strtotime($mem->created);
+                $now      = time();
+                if ($now - $jointime < $seconds) {
+                    throw new Exception(_("Too many memberships. Take a break and try again later."));
+                }
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Get the Nth most recent subscription for this user
+     *
+     * @param User    $user The user to get subscriptions for
+     * @param integer $n    How far to count back
+     *
+     * @return Subscription a subscription or null
+     */
+
+    private function _getNthSub($user, $n)
+    {
+        $sub = new Subscription();
+
+        $sub->subscriber = $user->id;
+        $sub->orderBy('created DESC');
+        $sub->limit($n - 1, 1);
+
+        if ($sub->find(true)) {
+            return $sub;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Get the Nth most recent group membership for this user
+     *
+     * @param User    $user The user to get memberships for
+     * @param integer $n    How far to count back
+     *
+     * @return Group_member a membership or null
+     */
+
+    private function _getNthMem($user, $n)
+    {
+        $mem = new Group_member();
+
+        $mem->profile_id = $user->id;
+        $mem->orderBy('created DESC');
+        $mem->limit($n - 1, 1);
+
+        if ($mem->find(true)) {
+            return $mem;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Return plugin version data for display
+     *
+     * @param array &$versions Array of version arrays
+     *
+     * @return boolean hook value
+     */
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'SubscriptionThrottle',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:SubscriptionThrottle',
+                            'rawdescription' =>
+                            _m('Configurable limits for subscriptions and group memberships.'));
+        return true;
+    }
+}
+
diff --git a/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot b/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot
new file mode 100644 (file)
index 0000000..98b8073
--- /dev/null
@@ -0,0 +1,21 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: SubscriptionThrottlePlugin.php:171
+msgid "Configurable limits for subscriptions and group memberships."
+msgstr ""
diff --git a/plugins/SubscriptionThrottlePlugin.php b/plugins/SubscriptionThrottlePlugin.php
deleted file mode 100644 (file)
index 1141133..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2010, StatusNet, Inc.
- *
- * Plugin to throttle subscriptions by a user
- *
- * PHP version 5
- *
- * 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  Throttle
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2010 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * Subscription throttle
- *
- * @category  Throttle
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2010 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
- * @link      http://status.net/
- */
-
-class SubscriptionThrottlePlugin extends Plugin
-{
-    public $subLimits = array(86400 => 100,
-                              3600 => 50);
-
-    public $groupLimits = array(86400 => 50,
-                                3600 => 25);
-
-    /**
-     * Filter subscriptions to see if they're coming too fast.
-     *
-     * @param User $user  The user subscribing
-     * @param User $other The user being subscribed to
-     *
-     * @return boolean hook value
-     */
-
-    function onStartSubscribe($user, $other)
-    {
-        foreach ($this->subLimits as $seconds => $limit) {
-            $sub = $this->_getNthSub($user, $limit);
-
-            if (!empty($sub)) {
-                $subtime = strtotime($sub->created);
-                $now     = time();
-                if ($now - $subtime < $seconds) {
-                    throw new Exception(_("Too many subscriptions. Take a break and try again later."));
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Filter group joins to see if they're coming too fast.
-     *
-     * @param Group $group The group being joined
-     * @param User  $user  The user joining
-     *
-     * @return boolean hook value
-     */
-
-    function onStartJoinGroup($group, $user)
-    {
-        foreach ($this->groupLimits as $seconds => $limit) {
-            $mem = $this->_getNthMem($user, $limit);
-            if (!empty($mem)) {
-
-                $jointime = strtotime($mem->created);
-                $now      = time();
-                if ($now - $jointime < $seconds) {
-                    throw new Exception(_("Too many memberships. Take a break and try again later."));
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Get the Nth most recent subscription for this user
-     *
-     * @param User    $user The user to get subscriptions for
-     * @param integer $n    How far to count back
-     *
-     * @return Subscription a subscription or null
-     */
-
-    private function _getNthSub($user, $n)
-    {
-        $sub = new Subscription();
-
-        $sub->subscriber = $user->id;
-        $sub->orderBy('created DESC');
-        $sub->limit($n - 1, 1);
-
-        if ($sub->find(true)) {
-            return $sub;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Get the Nth most recent group membership for this user
-     *
-     * @param User    $user The user to get memberships for
-     * @param integer $n    How far to count back
-     *
-     * @return Group_member a membership or null
-     */
-
-    private function _getNthMem($user, $n)
-    {
-        $mem = new Group_member();
-
-        $mem->profile_id = $user->id;
-        $mem->orderBy('created DESC');
-        $mem->limit($n - 1, 1);
-
-        if ($mem->find(true)) {
-            return $mem;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Return plugin version data for display
-     *
-     * @param array &$versions Array of version arrays
-     *
-     * @return boolean hook value
-     */
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'SubscriptionThrottle',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:SubscriptionThrottle',
-                            'rawdescription' =>
-                            _m('Configurable limits for subscriptions and group memberships.'));
-        return true;
-    }
-}
-
index 46e329d8a4fc29c31a4dac642d9b9885af5e2791..dd8a97276748a916e137ea0936ad96a775ddf027 100644 (file)
@@ -51,7 +51,7 @@ class TabFocusPlugin extends Plugin
                             'author' => 'Craig Andrews and Paul Irish',
                             'homepage' => 'http://status.net/wiki/Plugin:TabFocus',
                             'rawdescription' =>
-                            _m('TabFocus changes the notice form behavior so that, while in the text area, pressing the tab key focuses the "Send" button, matching the behavor of Twitter.'));
+                            _m('TabFocus changes the notice form behavior so that, while in the text area, pressing the tab key focuses the "Send" button, matching the behavior of Twitter.'));
         return true;
     }
 }
index 3b0e3c261b0a593a0c32ab82fe03e6ccb253c523..582daf2530fcee84895962abdcb1ac91afaa178a 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -19,6 +19,6 @@ msgstr ""
 #: TabFocusPlugin.php:54
 msgid ""
 "TabFocus changes the notice form behavior so that, while in the text area, "
-"pressing the tab key focuses the \"Send\" button, matching the behavor of "
+"pressing the tab key focuses the \"Send\" button, matching the behavior of "
 "Twitter."
 msgstr ""
diff --git a/plugins/Template/TemplatePlugin.php b/plugins/Template/TemplatePlugin.php
new file mode 100644 (file)
index 0000000..80625c5
--- /dev/null
@@ -0,0 +1,357 @@
+<?php
+/**
+ * Plugin to render old skool templates
+ *
+ * Captures rendered parts from the output buffer, passes them through a template file: tpl/index.html
+ * Adds an API method at index.php/template/update which lets you overwrite the template file
+ * Requires username/password and a single POST parameter called "template"
+ * The method is disabled unless the user is #1, the first user of the system
+ *
+ * @category  Plugin
+ * @package   StatusNet
+ * @author    Brian Hendrickson <brian@megapump.com>
+ * @copyright 2009 Megapump, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://megapump.com/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+define('TEMPLATEPLUGIN_VERSION', '0.1');
+
+class TemplatePlugin extends Plugin {
+
+  var $blocks = array();
+
+  function __construct() {
+    parent::__construct();
+  }
+
+  // capture the RouterInitialized event
+  // and connect a new API method
+  // for updating the template
+  function onRouterInitialized( $m ) {
+    $m->connect( 'template/update', array(
+      'action'      => 'template',
+    ));
+  }
+
+  // <%styles%>
+  // <%scripts%>
+  // <%search%>
+  // <%feeds%>
+  // <%description%>
+  // <%head%>
+  function onStartShowHead( &$act ) {
+    $this->clear_xmlWriter($act);
+    $act->extraHead();
+    $this->blocks['head'] = $act->xw->flush();
+    $act->showStylesheets();
+    $this->blocks['styles'] = $act->xw->flush();
+    $act->showScripts();
+    $this->blocks['scripts'] = $act->xw->flush();
+    $act->showFeeds();
+    $this->blocks['feeds'] = $act->xw->flush();
+    $act->showOpenSearch();
+    $this->blocks['search'] = $act->xw->flush();
+    $act->showDescription();
+    $this->blocks['description'] = $act->xw->flush();
+    return false;
+  }
+
+  // <%bodytext%>
+  function onStartShowContentBlock( &$act ) {
+    $this->clear_xmlWriter($act);
+    return true;
+  }
+  function onEndShowContentBlock( &$act ) {
+    $this->blocks['bodytext'] = $act->xw->flush();
+  }
+
+  // <%localnav%>
+  function onStartShowLocalNavBlock( &$act ) {
+    $this->clear_xmlWriter($act);
+    return true;
+  }
+  function onEndShowLocalNavBlock( &$act ) {
+    $this->blocks['localnav'] = $act->xw->flush();
+  }
+
+  // <%export%>
+  function onStartShowExportData( &$act ) {
+    $this->clear_xmlWriter($act);
+    return true;
+  }
+  function onEndShowExportData( &$act ) {
+    $this->blocks['export'] = $act->xw->flush();
+  }
+
+  // <%subscriptions%>
+  // <%subscribers%>
+  // <%groups%>
+  // <%statistics%>
+  // <%cloud%>
+  // <%groupmembers%>
+  // <%groupstatistics%>
+  // <%groupcloud%>
+  // <%popular%>
+  // <%groupsbyposts%>
+  // <%featuredusers%>
+  // <%groupsbymembers%>
+  function onStartShowSections( &$act ) {
+    global $action;
+    $this->clear_xmlWriter($act);
+    switch ($action) {
+      case "showstream":
+        $act->showSubscriptions();
+        $this->blocks['subscriptions'] = $act->xw->flush();
+        $act->showSubscribers();
+        $this->blocks['subscribers'] = $act->xw->flush();
+        $act->showGroups();
+        $this->blocks['groups'] = $act->xw->flush();
+        $act->showStatistics();
+        $this->blocks['statistics'] = $act->xw->flush();
+        $cloud = new PersonalTagCloudSection($act, $act->user);
+        $cloud->show();
+        $this->blocks['cloud'] = $act->xw->flush();
+        break;
+      case "showgroup":
+        $act->showMembers();
+        $this->blocks['groupmembers'] = $act->xw->flush();
+        $act->showStatistics();
+        $this->blocks['groupstatistics'] = $act->xw->flush();
+        $cloud = new GroupTagCloudSection($act, $act->group);
+        $cloud->show();
+        $this->blocks['groupcloud'] = $act->xw->flush();
+        break;
+      case "public":
+        $pop = new PopularNoticeSection($act);
+        $pop->show();
+        $this->blocks['popular'] = $act->xw->flush();
+        $gbp = new GroupsByPostsSection($act);
+        $gbp->show();
+        $this->blocks['groupsbyposts'] = $act->xw->flush();
+        $feat = new FeaturedUsersSection($act);
+        $feat->show();
+        $this->blocks['featuredusers'] = $act->xw->flush();
+        break;
+      case "groups":
+        $gbp = new GroupsByPostsSection($act);
+        $gbp->show();
+        $this->blocks['groupsbyposts'] = $act->xw->flush();
+        $gbm = new GroupsByMembersSection($act);
+        $gbm->show();
+        $this->blocks['groupsbymembers'] = $act->xw->flush();
+        break;
+    }
+    return false;
+  }
+
+  // <%logo%>
+  // <%nav%>
+  // <%notice%>
+  // <%noticeform%>
+  function onStartShowHeader( &$act ) {
+    $this->clear_xmlWriter($act);
+    $act->showLogo();
+    $this->blocks['logo'] = $act->xw->flush();
+    $act->showPrimaryNav();
+    $this->blocks['nav'] = $act->xw->flush();
+    $act->showSiteNotice();
+    $this->blocks['notice'] = $act->xw->flush();
+    if (common_logged_in()) {
+        $act->showNoticeForm();
+    } else {
+        $act->showAnonymousMessage();
+    }
+    $this->blocks['noticeform'] = $act->xw->flush();
+    return false;
+  }
+
+  // <%secondarynav%>
+  // <%licenses%>
+  function onStartShowFooter( &$act ) {
+    $this->clear_xmlWriter($act);
+    $act->showSecondaryNav();
+    $this->blocks['secondarynav'] = $act->xw->flush();
+    $act->showLicenses();
+    $this->blocks['licenses'] = $act->xw->flush();
+    return false;
+  }
+
+  // capture the EndHTML event
+  // and include the template
+  function onEndEndHTML($act) {
+
+    global $action, $tags;
+
+    // set the action and title values
+    $vars = array(
+      'action'=>$action,
+      'title'=>$act->title(). " - ". common_config('site', 'name')
+    );
+
+    // use the PHP template
+    // unless statusnet config:
+    //   $config['template']['mode'] = 'html';
+    if (!(common_config('template', 'mode') == 'html')) {
+      $tpl_file = $this->templateFolder() . '/index.php';
+      $tags = array_merge($vars,$this->blocks);
+      include $tpl_file;
+      return;
+    }
+
+    $tpl_file = $this->templateFolder() . '/index.html';
+
+    // read the static template
+    $output = file_get_contents( $tpl_file );
+
+    $tags = array();
+
+    // get a list of the <%tags%> in the template
+    $pattern='/<%([a-z]+)%>/';
+
+    if ( 1 <= preg_match_all( $pattern, $output, $found ))
+      $tags[] = $found;
+
+    // for each found tag, set its value from the rendered blocks
+    foreach( $tags[0][1] as $pos=>$tag ) {
+      if (isset($this->blocks[$tag]))
+        $vars[$tag] = $this->blocks[$tag];
+
+      // didn't find a block for the tag
+      elseif (!isset($vars[$tag]))
+        $vars[$tag] = '';
+    }
+
+    // replace the tags in the template
+    foreach( $vars as $key=>$val )
+      $output = str_replace( '<%'.$key.'%>', $val, $output );
+
+    echo $output;
+
+    return true;
+
+  }
+  function templateFolder() {
+    return 'tpl';
+  }
+
+  // catching the StartShowHTML event to halt the rendering
+  function onStartShowHTML( &$act ) {
+    $this->clear_xmlWriter($act);
+    return true;
+  }
+
+  // clear the xmlWriter
+  function clear_xmlWriter( &$act ) {
+    $act->xw->openMemory();
+    $act->xw->setIndent(true);
+  }
+
+}
+
+/**
+ * Action for updating the template remotely
+ *
+ * "template/update" -- a POST method that requires a single
+ * parameter "template", containing the new template code
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Brian Hendrickson <brian@megapump.com>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://megapump.com/
+ *
+ */
+
+class TemplateAction extends Action
+{
+
+  function prepare($args) {
+    parent::prepare($args);
+    return true;
+  }
+
+  function handle($args) {
+
+    parent::handle($args);
+
+    if (!isset($_SERVER['PHP_AUTH_USER'])) {
+
+      // not authenticated, show login form
+      header('WWW-Authenticate: Basic realm="StatusNet API"');
+
+      // cancelled the browser login form
+      $this->clientError(_('Authentication error!'), $code = 401);
+
+    } else {
+
+      $nick = $_SERVER['PHP_AUTH_USER'];
+      $pass = $_SERVER['PHP_AUTH_PW'];
+
+      // check username and password
+      $user = common_check_user($nick,$pass);
+
+      if ($user) {
+
+        // verify that user is admin
+        if (!($user->id == 1))
+          $this->clientError(_('Only User #1 can update the template.'), $code = 401);
+
+        // open the old template
+        $tpl_file = $this->templateFolder() . '/index.html';
+        $fp = fopen( $tpl_file, 'w+' );
+
+        // overwrite with the new template
+        fwrite($fp, $this->arg('template'));
+        fclose($fp);
+
+        header('HTTP/1.1 200 OK');
+        header('Content-type: text/plain');
+        print "Template Updated!";
+
+      } else {
+
+        // bad username and password
+        $this->clientError(_('Authentication error!'), $code = 401);
+
+      }
+
+    }
+  }
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'Template',
+                            'version' => TEMPLATEPLUGIN_VERSION,
+                            'author' => 'Brian Hendrickson',
+                            'homepage' => 'http://status.net/wiki/Plugin:Template',
+                            'rawdescription' =>
+                            _m('Use an HTML template for Web output.'));
+        return true;
+    }
+
+}
+
+/**
+ * Function for retrieving a statusnet display section
+ *
+ * requires one parameter, the name of the section
+ * section names are listed in the comments of the TemplatePlugin class
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Brian Hendrickson <brian@megapump.com>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://megapump.com/
+ *
+ */
+
+function section($tagname) {
+  global $tags;
+  if (isset($tags[$tagname]))
+    return $tags[$tagname];
+}
+
diff --git a/plugins/TemplatePlugin.php b/plugins/TemplatePlugin.php
deleted file mode 100644 (file)
index 80625c5..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<?php
-/**
- * Plugin to render old skool templates
- *
- * Captures rendered parts from the output buffer, passes them through a template file: tpl/index.html
- * Adds an API method at index.php/template/update which lets you overwrite the template file
- * Requires username/password and a single POST parameter called "template"
- * The method is disabled unless the user is #1, the first user of the system
- *
- * @category  Plugin
- * @package   StatusNet
- * @author    Brian Hendrickson <brian@megapump.com>
- * @copyright 2009 Megapump, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://megapump.com/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-define('TEMPLATEPLUGIN_VERSION', '0.1');
-
-class TemplatePlugin extends Plugin {
-
-  var $blocks = array();
-
-  function __construct() {
-    parent::__construct();
-  }
-
-  // capture the RouterInitialized event
-  // and connect a new API method
-  // for updating the template
-  function onRouterInitialized( $m ) {
-    $m->connect( 'template/update', array(
-      'action'      => 'template',
-    ));
-  }
-
-  // <%styles%>
-  // <%scripts%>
-  // <%search%>
-  // <%feeds%>
-  // <%description%>
-  // <%head%>
-  function onStartShowHead( &$act ) {
-    $this->clear_xmlWriter($act);
-    $act->extraHead();
-    $this->blocks['head'] = $act->xw->flush();
-    $act->showStylesheets();
-    $this->blocks['styles'] = $act->xw->flush();
-    $act->showScripts();
-    $this->blocks['scripts'] = $act->xw->flush();
-    $act->showFeeds();
-    $this->blocks['feeds'] = $act->xw->flush();
-    $act->showOpenSearch();
-    $this->blocks['search'] = $act->xw->flush();
-    $act->showDescription();
-    $this->blocks['description'] = $act->xw->flush();
-    return false;
-  }
-
-  // <%bodytext%>
-  function onStartShowContentBlock( &$act ) {
-    $this->clear_xmlWriter($act);
-    return true;
-  }
-  function onEndShowContentBlock( &$act ) {
-    $this->blocks['bodytext'] = $act->xw->flush();
-  }
-
-  // <%localnav%>
-  function onStartShowLocalNavBlock( &$act ) {
-    $this->clear_xmlWriter($act);
-    return true;
-  }
-  function onEndShowLocalNavBlock( &$act ) {
-    $this->blocks['localnav'] = $act->xw->flush();
-  }
-
-  // <%export%>
-  function onStartShowExportData( &$act ) {
-    $this->clear_xmlWriter($act);
-    return true;
-  }
-  function onEndShowExportData( &$act ) {
-    $this->blocks['export'] = $act->xw->flush();
-  }
-
-  // <%subscriptions%>
-  // <%subscribers%>
-  // <%groups%>
-  // <%statistics%>
-  // <%cloud%>
-  // <%groupmembers%>
-  // <%groupstatistics%>
-  // <%groupcloud%>
-  // <%popular%>
-  // <%groupsbyposts%>
-  // <%featuredusers%>
-  // <%groupsbymembers%>
-  function onStartShowSections( &$act ) {
-    global $action;
-    $this->clear_xmlWriter($act);
-    switch ($action) {
-      case "showstream":
-        $act->showSubscriptions();
-        $this->blocks['subscriptions'] = $act->xw->flush();
-        $act->showSubscribers();
-        $this->blocks['subscribers'] = $act->xw->flush();
-        $act->showGroups();
-        $this->blocks['groups'] = $act->xw->flush();
-        $act->showStatistics();
-        $this->blocks['statistics'] = $act->xw->flush();
-        $cloud = new PersonalTagCloudSection($act, $act->user);
-        $cloud->show();
-        $this->blocks['cloud'] = $act->xw->flush();
-        break;
-      case "showgroup":
-        $act->showMembers();
-        $this->blocks['groupmembers'] = $act->xw->flush();
-        $act->showStatistics();
-        $this->blocks['groupstatistics'] = $act->xw->flush();
-        $cloud = new GroupTagCloudSection($act, $act->group);
-        $cloud->show();
-        $this->blocks['groupcloud'] = $act->xw->flush();
-        break;
-      case "public":
-        $pop = new PopularNoticeSection($act);
-        $pop->show();
-        $this->blocks['popular'] = $act->xw->flush();
-        $gbp = new GroupsByPostsSection($act);
-        $gbp->show();
-        $this->blocks['groupsbyposts'] = $act->xw->flush();
-        $feat = new FeaturedUsersSection($act);
-        $feat->show();
-        $this->blocks['featuredusers'] = $act->xw->flush();
-        break;
-      case "groups":
-        $gbp = new GroupsByPostsSection($act);
-        $gbp->show();
-        $this->blocks['groupsbyposts'] = $act->xw->flush();
-        $gbm = new GroupsByMembersSection($act);
-        $gbm->show();
-        $this->blocks['groupsbymembers'] = $act->xw->flush();
-        break;
-    }
-    return false;
-  }
-
-  // <%logo%>
-  // <%nav%>
-  // <%notice%>
-  // <%noticeform%>
-  function onStartShowHeader( &$act ) {
-    $this->clear_xmlWriter($act);
-    $act->showLogo();
-    $this->blocks['logo'] = $act->xw->flush();
-    $act->showPrimaryNav();
-    $this->blocks['nav'] = $act->xw->flush();
-    $act->showSiteNotice();
-    $this->blocks['notice'] = $act->xw->flush();
-    if (common_logged_in()) {
-        $act->showNoticeForm();
-    } else {
-        $act->showAnonymousMessage();
-    }
-    $this->blocks['noticeform'] = $act->xw->flush();
-    return false;
-  }
-
-  // <%secondarynav%>
-  // <%licenses%>
-  function onStartShowFooter( &$act ) {
-    $this->clear_xmlWriter($act);
-    $act->showSecondaryNav();
-    $this->blocks['secondarynav'] = $act->xw->flush();
-    $act->showLicenses();
-    $this->blocks['licenses'] = $act->xw->flush();
-    return false;
-  }
-
-  // capture the EndHTML event
-  // and include the template
-  function onEndEndHTML($act) {
-
-    global $action, $tags;
-
-    // set the action and title values
-    $vars = array(
-      'action'=>$action,
-      'title'=>$act->title(). " - ". common_config('site', 'name')
-    );
-
-    // use the PHP template
-    // unless statusnet config:
-    //   $config['template']['mode'] = 'html';
-    if (!(common_config('template', 'mode') == 'html')) {
-      $tpl_file = $this->templateFolder() . '/index.php';
-      $tags = array_merge($vars,$this->blocks);
-      include $tpl_file;
-      return;
-    }
-
-    $tpl_file = $this->templateFolder() . '/index.html';
-
-    // read the static template
-    $output = file_get_contents( $tpl_file );
-
-    $tags = array();
-
-    // get a list of the <%tags%> in the template
-    $pattern='/<%([a-z]+)%>/';
-
-    if ( 1 <= preg_match_all( $pattern, $output, $found ))
-      $tags[] = $found;
-
-    // for each found tag, set its value from the rendered blocks
-    foreach( $tags[0][1] as $pos=>$tag ) {
-      if (isset($this->blocks[$tag]))
-        $vars[$tag] = $this->blocks[$tag];
-
-      // didn't find a block for the tag
-      elseif (!isset($vars[$tag]))
-        $vars[$tag] = '';
-    }
-
-    // replace the tags in the template
-    foreach( $vars as $key=>$val )
-      $output = str_replace( '<%'.$key.'%>', $val, $output );
-
-    echo $output;
-
-    return true;
-
-  }
-  function templateFolder() {
-    return 'tpl';
-  }
-
-  // catching the StartShowHTML event to halt the rendering
-  function onStartShowHTML( &$act ) {
-    $this->clear_xmlWriter($act);
-    return true;
-  }
-
-  // clear the xmlWriter
-  function clear_xmlWriter( &$act ) {
-    $act->xw->openMemory();
-    $act->xw->setIndent(true);
-  }
-
-}
-
-/**
- * Action for updating the template remotely
- *
- * "template/update" -- a POST method that requires a single
- * parameter "template", containing the new template code
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Brian Hendrickson <brian@megapump.com>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://megapump.com/
- *
- */
-
-class TemplateAction extends Action
-{
-
-  function prepare($args) {
-    parent::prepare($args);
-    return true;
-  }
-
-  function handle($args) {
-
-    parent::handle($args);
-
-    if (!isset($_SERVER['PHP_AUTH_USER'])) {
-
-      // not authenticated, show login form
-      header('WWW-Authenticate: Basic realm="StatusNet API"');
-
-      // cancelled the browser login form
-      $this->clientError(_('Authentication error!'), $code = 401);
-
-    } else {
-
-      $nick = $_SERVER['PHP_AUTH_USER'];
-      $pass = $_SERVER['PHP_AUTH_PW'];
-
-      // check username and password
-      $user = common_check_user($nick,$pass);
-
-      if ($user) {
-
-        // verify that user is admin
-        if (!($user->id == 1))
-          $this->clientError(_('Only User #1 can update the template.'), $code = 401);
-
-        // open the old template
-        $tpl_file = $this->templateFolder() . '/index.html';
-        $fp = fopen( $tpl_file, 'w+' );
-
-        // overwrite with the new template
-        fwrite($fp, $this->arg('template'));
-        fclose($fp);
-
-        header('HTTP/1.1 200 OK');
-        header('Content-type: text/plain');
-        print "Template Updated!";
-
-      } else {
-
-        // bad username and password
-        $this->clientError(_('Authentication error!'), $code = 401);
-
-      }
-
-    }
-  }
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'Template',
-                            'version' => TEMPLATEPLUGIN_VERSION,
-                            'author' => 'Brian Hendrickson',
-                            'homepage' => 'http://status.net/wiki/Plugin:Template',
-                            'rawdescription' =>
-                            _m('Use an HTML template for Web output.'));
-        return true;
-    }
-
-}
-
-/**
- * Function for retrieving a statusnet display section
- *
- * requires one parameter, the name of the section
- * section names are listed in the comments of the TemplatePlugin class
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Brian Hendrickson <brian@megapump.com>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://megapump.com/
- *
- */
-
-function section($tagname) {
-  global $tags;
-  if (isset($tags[$tagname]))
-    return $tags[$tagname];
-}
-
index 10f59a1e867393d62d88071a8a1d1f8bf4428a88..dae56b6a48f36ac55ca42a80911960f569111f96 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index ca16f60591de8ef42b7cc17a14a5bfb6a6648123..2ec4b71608e7f28dc681e14e7f06106807971772 100644 (file)
@@ -48,7 +48,6 @@ if (!defined('STATUSNET')) {
  */
 class TinyMCEPlugin extends Plugin
 {
-
     var $html;
 
     function onEndShowScripts($action)
@@ -74,7 +73,7 @@ class TinyMCEPlugin extends Plugin
             'author' => 'Evan Prodromou',
             'homepage' => 'http://status.net/wiki/Plugin:TinyMCE',
             'rawdescription' =>
-            _m('Use TinyMCE library to allow rich text editing in the browser'));
+            _m('Use TinyMCE library to allow rich text editing in the browser.'));
         return true;
     }
 
@@ -108,7 +107,7 @@ class TinyMCEPlugin extends Plugin
     /**
      * Hook for new-notice form processing to take our HTML goodies;
      * won't affect API posting etc.
-     * 
+     *
      * @param NewNoticeAction $action
      * @param User $user
      * @param string $content
@@ -159,9 +158,9 @@ class TinyMCEPlugin extends Plugin
 
     /**
      * Format the attachment placeholder img with the final version.
-     * 
+     *
      * @param DOMElement $img
-     * @param MediaFile $media 
+     * @param MediaFile $media
      */
     private function formatAttachment($img, $media)
     {
@@ -321,5 +320,4 @@ END_OF_SCRIPT;
 
         return $scr;
     }
-
 }
diff --git a/plugins/TinyMCE/locale/TinyMCE.pot b/plugins/TinyMCE/locale/TinyMCE.pot
new file mode 100644 (file)
index 0000000..bd2377e
--- /dev/null
@@ -0,0 +1,21 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: TinyMCEPlugin.php:76
+msgid "Use TinyMCE library to allow rich text editing in the browser."
+msgstr ""
index 34b82ef83a7c8dd08b6f4655bee8fb4d613bbc63..097d4486f91c4d9d214ce2ef6118860237fa8221 100644 (file)
@@ -45,17 +45,14 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php';
  * @link     http://status.net/
  * @link     http://twitter.com/
  */
-
 class TwitterBridgePlugin extends Plugin
 {
-
     const VERSION = STATUSNET_VERSION;
     public $adminImportControl = false; // Should the 'import' checkbox be exposed in the admin panel?
 
     /**
      * Initializer for the plugin.
      */
-
     function initialize()
     {
         // Allow the key and secret to be passed in
@@ -86,7 +83,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return boolean result
      */
-
     static function hasKeys()
     {
         $ckey    = common_config('twitter', 'consumer_key');
@@ -113,7 +109,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onRouterInitialized($m)
     {
         $m->connect('admin/twitter', array('action' => 'twitteradminpanel'));
@@ -310,7 +305,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onPluginVersion(&$versions)
     {
         $versions[] = array(
@@ -319,8 +313,8 @@ class TwitterBridgePlugin extends Plugin
             'author' => 'Zach Copley, Julien C',
             'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge',
             'rawdescription' => _m(
-                'The Twitter "bridge" plugin allows you to integrate ' .
-                'your StatusNet instance with ' .
+                'The Twitter "bridge" plugin allows integration ' .
+                'of a StatusNet instance with ' .
                 '<a href="http://twitter.com/">Twitter</a>.'
             )
         );
@@ -374,7 +368,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
     function onCheckSchema()
     {
         $schema = Schema::get();
@@ -416,7 +409,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return boolean hook value
      */
-
     function onStartDeleteOwnNotice(User $user, Notice $notice)
     {
         $n2s = Notice_to_status::staticGet('notice_id', $notice->id);
@@ -452,7 +444,6 @@ class TwitterBridgePlugin extends Plugin
      * @param Notice $notice being favored
      * @return hook return value
      */
-
     function onEndFavorNotice(Profile $profile, Notice $notice)
     {
         $flink = Foreign_link::getByUserID($profile->id,
@@ -489,7 +480,6 @@ class TwitterBridgePlugin extends Plugin
      *
      * @return hook return value
      */
-
     function onEndDisfavorNotice(Profile $profile, Notice $notice)
     {
         $flink = Foreign_link::getByUserID($profile->id,
index 2a5f1fd60581f132ae13addaeeb2ca17a3c6fe61..a8337862c833c4e25097e6c8145d5d6f5d9c0f84 100644 (file)
@@ -48,7 +48,6 @@ require_once INSTALLDIR . '/classes/Memcached_DataObject.php';
  *
  * @see      DB_DataObject
  */
-
 class Twitter_synch_status extends Memcached_DataObject
 {
     public $__table = 'twitter_synch_status'; // table name
@@ -67,7 +66,6 @@ class Twitter_synch_status extends Memcached_DataObject
      * @return Twitter_synch_status object found, or null for no hits
      *
      */
-
     function staticGet($k, $v=null)
     {
         throw new Exception("Use pkeyGet() for this class.");
@@ -81,7 +79,6 @@ class Twitter_synch_status extends Memcached_DataObject
      * @return Twitter_synch_status object found, or null for no hits
      *
      */
-
     function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Twitter_synch_status', $kv);
@@ -95,7 +92,6 @@ class Twitter_synch_status extends Memcached_DataObject
      *
      * @return array array of column definitions
      */
-
     function table()
     {
         return array('foreign_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL,
@@ -115,7 +111,6 @@ class Twitter_synch_status extends Memcached_DataObject
      *
      * @return array list of key field names
      */
-
     function keys()
     {
         return array_keys($this->keyTypes());
@@ -133,7 +128,6 @@ class Twitter_synch_status extends Memcached_DataObject
      *         'K' for primary key: for compound keys, add an entry for each component;
      *         'U' for unique keys: compound keys are not well supported here.
      */
-
     function keyTypes()
     {
         return array('foreign_id' => 'K',
@@ -150,7 +144,6 @@ class Twitter_synch_status extends Memcached_DataObject
      *
      * @return array magic three-false array that stops auto-incrementing.
      */
-
     function sequenceKey()
     {
         return array(false, false, false);
@@ -174,7 +167,6 @@ class Twitter_synch_status extends Memcached_DataObject
                                    'timeline' => $timeline));
 
         if (empty($tss)) {
-
             $tss = new Twitter_synch_status();
 
             $tss->foreign_id = $foreign_id;
@@ -186,9 +178,7 @@ class Twitter_synch_status extends Memcached_DataObject
             $tss->insert();
 
             return true;
-
         } else {
-
             $orig = clone($tss);
 
             $tss->last_id  = $last_id;
index 02546a02cad93538d11ecb3d4ffb5d14c3952aa9..38a8b89ebb815acbd6147bba088f242c58a63dc2 100755 (executable)
@@ -45,7 +45,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class SyncTwitterFriendsDaemon extends ParallelizingDaemon
 {
     /**
@@ -59,7 +58,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon
      * @return void
      *
      **/
-
     function __construct($id = null, $interval = 60,
                          $max_children = 2, $debug = null)
     {
@@ -71,7 +69,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon
      *
      * @return string Name of the daemon.
      */
-
     function name()
     {
         return ('synctwitterfriends.' . $this->_id);
@@ -110,12 +107,10 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon
     }
 
     function childTask($flink) {
-
         // Each child ps needs its own DB connection
 
         // Note: DataObject::getDatabaseConnection() creates
         // a new connection if there isn't one already
-
         $conn = &$flink->getDatabaseConnection();
 
         $this->subscribeTwitterFriends($flink);
@@ -127,7 +122,6 @@ class SyncTwitterFriendsDaemon extends ParallelizingDaemon
 
         // XXX: Couldn't find a less brutal way to blow
         // away a cached connection
-
         global $_DB_DATAOBJECT;
         unset($_DB_DATAOBJECT['CONNECTIONS']);
     }
@@ -277,4 +271,3 @@ if (have_option('d') || have_option('debug')) {
 
 $syncer = new SyncTwitterFriendsDaemon($id, 60, 2, $debug);
 $syncer->runOnce();
-
index 181be3dcf3827a7dc812db7ae0b7cdef4af5b763..590fa2954d1ac467c65d2f23a97917a9b1ef59e6 100755 (executable)
@@ -62,7 +62,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitteroauthclient.php';
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class TwitterStatusFetcher extends ParallelizingDaemon
 {
     /**
@@ -87,7 +86,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
      *
      * @return string Name of the daemon.
      */
-
     function name()
     {
         return ('twitterstatusfetcher.'.$this->_id);
@@ -99,7 +97,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
      *
      * @return array flinks an array of Foreign_link objects
      */
-
     function getObjects()
     {
         global $_DB_DATAOBJECT;
@@ -133,12 +130,10 @@ class TwitterStatusFetcher extends ParallelizingDaemon
     }
 
     function childTask($flink) {
-
         // Each child ps needs its own DB connection
 
         // Note: DataObject::getDatabaseConnection() creates
         // a new connection if there isn't one already
-
         $conn = &$flink->getDatabaseConnection();
 
         $this->getTimeline($flink);
@@ -150,7 +145,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
 
         // XXX: Couldn't find a less brutal way to blow
         // away a cached connection
-
         global $_DB_DATAOBJECT;
         unset($_DB_DATAOBJECT['CONNECTIONS']);
     }
@@ -201,9 +195,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         // Reverse to preserve order
 
         foreach (array_reverse($timeline) as $status) {
-
             // Hacktastic: filter out stuff coming from this StatusNet
-
             $source = mb_strtolower(common_config('integration', 'source'));
 
             if (preg_match("/$source/", mb_strtolower($status->source))) {
@@ -214,7 +206,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
 
             // Don't save it if the user is protected
             // FIXME: save it but treat it as private
-
             if ($status->user->protected) {
                 continue;
             }
@@ -232,7 +223,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         }
 
         // Okay, record the time we synced with Twitter for posterity
-
         $flink->last_noticesync = common_sql_now();
         $flink->update();
     }
@@ -250,7 +240,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         $statusUri = $this->makeStatusURI($status->user->screen_name, $status->id);
 
         // check to see if we've already imported the status
-
         $n2s = Notice_to_status::staticGet('status_id', $status->id);
 
         if (!empty($n2s)) {
@@ -263,7 +252,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         }
 
         // If it's a retweet, save it as a repeat!
-
         if (!empty($status->retweeted_status)) {
             common_log(LOG_INFO, "Status {$status->id} is a retweet of {$status->retweeted_status->id}.");
             $original = $this->saveStatus($status->retweeted_status);
@@ -273,7 +261,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
                 $author = $original->getProfile();
                 // TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
                 // TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
-                $content = sprintf(_('RT @%1$s %2$s'),
+                $content = sprintf(_m('RT @%1$s %2$s'),
                                    $author->nickname,
                                    $original->content);
 
@@ -365,7 +353,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
      *
      * @return string URI
      */
-
     function makeStatusURI($username, $id)
     {
         return 'http://twitter.com/'
@@ -383,7 +370,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
      *
      * @return mixed value the first Profile with that url, or null
      */
-
     function getProfileByUrl($nickname, $profileurl)
     {
         $profile = new Profile();
@@ -407,7 +393,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
      *
      * @return mixed value a matching Notice or null
      */
-
     function checkDupe($profile, $statusUri)
     {
         $notice = new Notice();
@@ -426,7 +411,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
     function ensureProfile($user)
     {
         // check to see if there's already a profile for this user
-
         $profileurl = 'http://twitter.com/' . $user->screen_name;
         $profile = $this->getProfileByUrl($user->screen_name, $profileurl);
 
@@ -440,7 +424,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
             return $profile;
 
         } else {
-
             common_debug($this->name() . ' - Adding profile and remote profile ' .
                          "for Twitter user: $profileurl.");
 
@@ -472,7 +455,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
             $remote_pro = Remote_profile::staticGet('uri', $profileurl);
 
             if (empty($remote_pro)) {
-
                 $remote_pro = new Remote_profile();
 
                 $remote_pro->id = $id;
@@ -619,7 +601,6 @@ class TwitterStatusFetcher extends ParallelizingDaemon
         $avatar = $profile->getAvatar($sizes[$size]);
 
         // Delete the avatar, if present
-
         if ($avatar) {
             $avatar->delete();
         }
@@ -644,10 +625,8 @@ class TwitterStatusFetcher extends ParallelizingDaemon
             $avatar->height = 48;
             break;
         default:
-
             // Note: Twitter's big avatars are a different size than
             // StatusNet's (StatusNet's = 96)
-
             $avatar->width  = 73;
             $avatar->height = 73;
         }
@@ -840,4 +819,3 @@ if (have_option('d') || have_option('debug')) {
 
 $fetcher = new TwitterStatusFetcher($id, 60, 2, $debug);
 $fetcher->runOnce();
-
index c7ac8053ca3b9a393e16c6011fbb3d2f77d35e16..48c0a7a98783cb392007d63caf479187cbe79796 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-04-29 23:39+0000\n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,16 +16,16 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: twitter.php:342
+#: twitter.php:350
 msgid "Your Twitter bridge has been disabled."
 msgstr ""
 
-#: twitter.php:346
+#: twitter.php:354
 #, php-format
 msgid ""
 "Hi, %1$s. We're sorry to inform you that your link to Twitter has been "
 "disabled. We no longer seem to have permission to update your Twitter "
-"status. (Did you revoke %3$s's access?)\n"
+"status. Did you maybe revoke %3$s's access?\n"
 "\n"
 "You can re-enable your Twitter bridge by visiting your Twitter settings "
 "page:\n"
@@ -33,19 +33,19 @@ msgid ""
 "\t%2$s\n"
 "\n"
 "Regards,\n"
-"%3$s\n"
+"%3$s"
 msgstr ""
 
-#: TwitterBridgePlugin.php:155 TwitterBridgePlugin.php:178
-#: TwitterBridgePlugin.php:291 twitteradminpanel.php:54
+#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174
+#: TwitterBridgePlugin.php:291 twitteradminpanel.php:52
 msgid "Twitter"
 msgstr ""
 
-#: TwitterBridgePlugin.php:156
+#: TwitterBridgePlugin.php:152
 msgid "Login or register using Twitter"
 msgstr ""
 
-#: TwitterBridgePlugin.php:179
+#: TwitterBridgePlugin.php:175
 msgid "Twitter integration options"
 msgstr ""
 
@@ -53,21 +53,21 @@ msgstr ""
 msgid "Twitter bridge configuration"
 msgstr ""
 
-#: TwitterBridgePlugin.php:317
+#: TwitterBridgePlugin.php:316
 msgid ""
-"The Twitter \"bridge\" plugin allows you to integrate your StatusNet "
-"instance with <a href=\"http://twitter.com/\">Twitter</a>."
+"The Twitter \"bridge\" plugin allows integration of a StatusNet instance "
+"with <a href=\"http://twitter.com/\">Twitter</a>."
 msgstr ""
 
-#: twitteradminpanel.php:65
+#: twitteradminpanel.php:62
 msgid "Twitter bridge settings"
 msgstr ""
 
-#: twitteradminpanel.php:148
+#: twitteradminpanel.php:145
 msgid "Invalid consumer key. Max length is 255 characters."
 msgstr ""
 
-#: twitteradminpanel.php:154
+#: twitteradminpanel.php:151
 msgid "Invalid consumer secret. Max length is 255 characters."
 msgstr ""
 
@@ -91,6 +91,10 @@ msgstr ""
 msgid "Consumer secret assigned by Twitter"
 msgstr ""
 
+#: twitteradminpanel.php:233
+msgid "Note: a global consumer key and secret are set."
+msgstr ""
+
 #: twitteradminpanel.php:240
 msgid "Integration source"
 msgstr ""
@@ -111,15 +115,54 @@ msgstr ""
 msgid "Allow users to login with their Twitter credentials"
 msgstr ""
 
-#: twitteradminpanel.php:268
+#: twitteradminpanel.php:269
 msgid "Enable Twitter import"
 msgstr ""
 
-#: twitteradminpanel.php:270
-msgid "Allow users to import their Twitter friends' timelines"
+#: twitteradminpanel.php:271
+msgid ""
+"Allow users to import their Twitter friends' timelines. Requires daemons to "
+"be manually configured."
+msgstr ""
+
+#: twitteradminpanel.php:288 twittersettings.php:200
+msgid "Save"
+msgstr ""
+
+#: twitteradminpanel.php:288
+msgid "Save Twitter settings"
+msgstr ""
+
+#: twitterlogin.php:56
+msgid "Already logged in."
+msgstr ""
+
+#: twitterlogin.php:64
+msgid "Twitter Login"
+msgstr ""
+
+#: twitterlogin.php:69
+msgid "Login with your Twitter account"
+msgstr ""
+
+#: twitterlogin.php:87
+msgid "Sign in with Twitter"
+msgstr ""
+
+#: twitterauthorization.php:120 twittersettings.php:226
+msgid "There was a problem with your session token. Try again, please."
+msgstr ""
+
+#: twitterauthorization.php:126
+msgid "You can't register if you don't agree to the license."
+msgstr ""
+
+#: twitterauthorization.php:135
+msgid "Something weird happened."
 msgstr ""
 
 #: twitterauthorization.php:181 twitterauthorization.php:229
+#: twitterauthorization.php:300
 msgid "Couldn't link your Twitter account."
 msgstr ""
 
@@ -127,99 +170,197 @@ msgstr ""
 msgid "Couldn't link your Twitter account: oauth_token mismatch."
 msgstr ""
 
-#: twittersettings.php:59
+#: twitterauthorization.php:312
+#, php-format
+msgid ""
+"This is the first time you've logged into %s so we must connect your Twitter "
+"account to a local account. You can either create a new account, or connect "
+"with your existing account, if you have one."
+msgstr ""
+
+#: twitterauthorization.php:318
+msgid "Twitter Account Setup"
+msgstr ""
+
+#: twitterauthorization.php:351
+msgid "Connection options"
+msgstr ""
+
+#: twitterauthorization.php:360
+#, php-format
+msgid ""
+"My text and files are available under %s except this private data: password, "
+"email address, IM address, and phone number."
+msgstr ""
+
+#: twitterauthorization.php:381
+msgid "Create new account"
+msgstr ""
+
+#: twitterauthorization.php:383
+msgid "Create a new user with this nickname."
+msgstr ""
+
+#: twitterauthorization.php:386
+msgid "New nickname"
+msgstr ""
+
+#: twitterauthorization.php:388
+msgid "1-64 lowercase letters or numbers, no punctuation or spaces"
+msgstr ""
+
+#: twitterauthorization.php:391
+msgid "Create"
+msgstr ""
+
+#: twitterauthorization.php:396
+msgid "Connect existing account"
+msgstr ""
+
+#: twitterauthorization.php:398
+msgid ""
+"If you already have an account, login with your username and password to "
+"connect it to your Twitter account."
+msgstr ""
+
+#: twitterauthorization.php:401
+msgid "Existing nickname"
+msgstr ""
+
+#: twitterauthorization.php:404
+msgid "Password"
+msgstr ""
+
+#: twitterauthorization.php:407
+msgid "Connect"
+msgstr ""
+
+#: twitterauthorization.php:423 twitterauthorization.php:432
+msgid "Registration not allowed."
+msgstr ""
+
+#: twitterauthorization.php:439
+msgid "Not a valid invitation code."
+msgstr ""
+
+#: twitterauthorization.php:449
+msgid "Nickname must have only lowercase letters and numbers and no spaces."
+msgstr ""
+
+#: twitterauthorization.php:454
+msgid "Nickname not allowed."
+msgstr ""
+
+#: twitterauthorization.php:459
+msgid "Nickname already in use. Try another one."
+msgstr ""
+
+#: twitterauthorization.php:474
+msgid "Error registering user."
+msgstr ""
+
+#: twitterauthorization.php:485 twitterauthorization.php:523
+#: twitterauthorization.php:543
+msgid "Error connecting user to Twitter."
+msgstr ""
+
+#: twitterauthorization.php:505
+msgid "Invalid username or password."
+msgstr ""
+
+#: twittersettings.php:58
 msgid "Twitter settings"
 msgstr ""
 
-#: twittersettings.php:70
+#: twittersettings.php:69
 msgid ""
 "Connect your Twitter account to share your updates with your Twitter friends "
 "and vice-versa."
 msgstr ""
 
-#: twittersettings.php:118
+#: twittersettings.php:116
 msgid "Twitter account"
 msgstr ""
 
-#: twittersettings.php:123
+#: twittersettings.php:121
 msgid "Connected Twitter account"
 msgstr ""
 
-#: twittersettings.php:128
+#: twittersettings.php:126
 msgid "Disconnect my account from Twitter"
 msgstr ""
 
-#: twittersettings.php:133
+#: twittersettings.php:132
 msgid "Disconnecting your Twitter could make it impossible to log in! Please "
 msgstr ""
 
-#: twittersettings.php:137
+#: twittersettings.php:136
 msgid "set a password"
 msgstr ""
 
-#: twittersettings.php:139
+#: twittersettings.php:138
 msgid " first."
 msgstr ""
 
-#: twittersettings.php:143
+#. TRANS: %1$s is the current website name.
+#: twittersettings.php:142
 #, php-format
 msgid ""
 "Keep your %1$s account but disconnect from Twitter. You can use your %1$s "
 "password to log in."
 msgstr ""
 
-#: twittersettings.php:151
+#: twittersettings.php:150
 msgid "Disconnect"
 msgstr ""
 
-#: twittersettings.php:158
+#: twittersettings.php:157
 msgid "Preferences"
 msgstr ""
 
-#: twittersettings.php:162
+#: twittersettings.php:161
 msgid "Automatically send my notices to Twitter."
 msgstr ""
 
-#: twittersettings.php:169
+#: twittersettings.php:168
 msgid "Send local \"@\" replies to Twitter."
 msgstr ""
 
-#: twittersettings.php:176
+#: twittersettings.php:175
 msgid "Subscribe to my Twitter friends here."
 msgstr ""
 
-#: twittersettings.php:185
-msgid "Import my Friends Timeline."
+#: twittersettings.php:184
+msgid "Import my friends timeline."
 msgstr ""
 
-#: twittersettings.php:201
-msgid "Save"
-msgstr ""
-
-#: twittersettings.php:203
+#: twittersettings.php:202
 msgid "Add"
 msgstr ""
 
-#: twittersettings.php:228
-msgid "There was a problem with your session token. Try again, please."
-msgstr ""
-
-#: twittersettings.php:238
+#: twittersettings.php:236
 msgid "Unexpected form submission."
 msgstr ""
 
-#: twittersettings.php:257
+#: twittersettings.php:254
 msgid "Couldn't remove Twitter user."
 msgstr ""
 
-#: twittersettings.php:261
+#: twittersettings.php:258
 msgid "Twitter account disconnected."
 msgstr ""
 
-#: twittersettings.php:282 twittersettings.php:292
+#: twittersettings.php:278 twittersettings.php:288
 msgid "Couldn't save Twitter preferences."
 msgstr ""
 
-#: twittersettings.php:296
+#: twittersettings.php:292
 msgid "Twitter preferences saved."
 msgstr ""
+
+#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'.
+#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice.
+#: daemons/twitterstatusfetcher.php:264
+#, php-format
+msgid "RT @%1$s %2$s"
+msgstr ""
index 90b0f0f14f4966300fd06f16922e3a5e267818a7..f913e4aeae87bc148dca6935851cd59b1305a3db 100644 (file)
@@ -30,7 +30,6 @@ function add_twitter_user($twitter_id, $screen_name)
     // Clear out any bad old foreign_users with the new user's legit URL
     // This can happen when users move around or fakester accounts get
     // repoed, and things like that.
-
     $luser = Foreign_user::getForeignUser($twitter_id, TWITTER_SERVICE);
 
     if (!empty($luser)) {
@@ -69,7 +68,6 @@ function save_twitter_user($twitter_id, $screen_name)
 {
     // Check to see whether the Twitter user is already in the system,
     // and update its screen name and uri if so.
-
     $fuser = Foreign_user::getForeignUser($twitter_id, TWITTER_SERVICE);
 
     if (!empty($fuser)) {
@@ -87,9 +85,7 @@ function save_twitter_user($twitter_id, $screen_name)
         }
 
     } else {
-
         // Kill any old, invalid records for this screen name
-
         $fuser = Foreign_user::getByNickname($screen_name, TWITTER_SERVICE);
 
         if (!empty($fuser)) {
@@ -110,13 +106,11 @@ function save_twitter_user($twitter_id, $screen_name)
 }
 
 function is_twitter_bound($notice, $flink) {
-
     // Check to see if notice should go to Twitter
     if (!empty($flink) && ($flink->noticesync & FOREIGN_NOTICE_SEND)) {
 
         // If it's not a Twitter-style reply, or if the user WANTS to send replies,
         // or if it's in reply to a twitter notice
-
         if (!preg_match('/^@[a-zA-Z0-9_]{1,15}\b/u', $notice->content) ||
             ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) ||
             is_twitter_notice($notice->reply_to)) {
@@ -140,7 +134,6 @@ function broadcast_twitter($notice)
                                        TWITTER_SERVICE);
 
     // Don't bother with basic auth, since it's no longer allowed
-
     if (!empty($flink) && TwitterOAuthClient::isPackedToken($flink->credentials)) {
         if (!empty($notice->repeat_of) && is_twitter_notice($notice->repeat_of)) {
             $retweet = retweet_notice($flink, Notice::staticGet('id', $notice->repeat_of));
@@ -229,7 +222,6 @@ function broadcast_oauth($notice, $flink) {
 
         // This could represent a failure posting,
         // or the Twitter API might just be behaving flakey.
-
         $errmsg = sprintf('Twitter bridge - No data returned by Twitter API when ' .
                           'trying to post notice %d for User %s (user id %d).',
                           $notice->id,
@@ -242,7 +234,6 @@ function broadcast_oauth($notice, $flink) {
     }
 
     // Notice crossed the great divide
-
     $msg = sprintf('Twitter bridge - posted notice %d to Twitter using ' .
                    'OAuth for User %s (user id %d).',
                    $notice->id,
@@ -327,11 +318,9 @@ function remove_twitter_link($flink)
     // Notify the user that her Twitter bridge is down
 
     if (isset($user->email)) {
-
         $result = mail_twitter_bridge_removed($user);
 
         if (!$result) {
-
             $msg = 'Unable to send email to notify ' .
               "$user->nickname (user id: $user->id) " .
               'that their Twitter bridge link was ' .
@@ -340,7 +329,6 @@ function remove_twitter_link($flink)
             common_log(LOG_WARNING, $msg);
         }
     }
-
 }
 
 /**
@@ -353,7 +341,6 @@ function remove_twitter_link($flink)
  *
  * @return boolean success flag
  */
-
 function mail_twitter_bridge_removed($user)
 {
     $profile = $user->getProfile();
@@ -366,11 +353,11 @@ function mail_twitter_bridge_removed($user)
 
     $body = sprintf(_m('Hi, %1$s. We\'re sorry to inform you that your ' .
         'link to Twitter has been disabled. We no longer seem to have ' .
-    'permission to update your Twitter status. (Did you revoke ' .
-    '%3$s\'s access?)' . "\n\n" .
+    'permission to update your Twitter status. Did you maybe revoke ' .
+    '%3$s\'s access?' . "\n\n" .
     'You can re-enable your Twitter bridge by visiting your ' .
     "Twitter settings page:\n\n\t%2\$s\n\n" .
-        "Regards,\n%3\$s\n"),
+        "Regards,\n%3\$s"),
         $profile->getBestName(),
         common_local_url('twittersettings'),
         common_config('site', 'name'));
@@ -378,4 +365,3 @@ function mail_twitter_bridge_removed($user)
     common_switch_locale();
     return mail_to_user($user, $subject, $body);
 }
-
index 69f8da078a194b8aea3ec08768747dc7c40b26ec..d05a2c6b3eef8d61f94e5ee586eb654651a6867a 100644 (file)
@@ -40,7 +40,6 @@ if (!defined('STATUSNET')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class TwitteradminpanelAction extends AdminPanelAction
 {
     /**
@@ -48,7 +47,6 @@ class TwitteradminpanelAction extends AdminPanelAction
      *
      * @return string page title
      */
-
     function title()
     {
         return _m('Twitter');
@@ -59,7 +57,6 @@ class TwitteradminpanelAction extends AdminPanelAction
      *
      * @return string instructions
      */
-
     function getInstructions()
     {
         return _m('Twitter bridge settings');
@@ -70,7 +67,6 @@ class TwitteradminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function showForm()
     {
         $form = new TwitterAdminPanelForm($this);
@@ -83,7 +79,6 @@ class TwitteradminpanelAction extends AdminPanelAction
      *
      * @return void
      */
-
     function saveSettings()
     {
         static $settings = array(
@@ -173,7 +168,6 @@ class TwitterAdminPanelForm extends AdminForm
      *
      * @return int ID of the form
      */
-
     function id()
     {
         return 'twitteradminpanel';
@@ -184,7 +178,6 @@ class TwitterAdminPanelForm extends AdminForm
      *
      * @return string class of the form
      */
-
     function formClass()
     {
         return 'form_settings';
@@ -195,7 +188,6 @@ class TwitterAdminPanelForm extends AdminForm
      *
      * @return string URL of the action
      */
-
     function action()
     {
         return common_local_url('twitteradminpanel');
@@ -206,7 +198,6 @@ class TwitterAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formData()
     {
         $this->out->elementStart(
@@ -239,7 +230,7 @@ class TwitterAdminPanelForm extends AdminForm
 
         if (!empty($globalConsumerKey) && !empty($globalConsumerSec)) {
             $this->li();
-            $this->out->element('p', 'form_guide', _('Note: a global consumer key and secret are set.'));
+            $this->out->element('p', 'form_guide', _m('Note: a global consumer key and secret are set.'));
             $this->unli();
         }
 
@@ -292,9 +283,8 @@ class TwitterAdminPanelForm extends AdminForm
      *
      * @return void
      */
-
     function formActions()
     {
-        $this->out->submit('submit', _('Save'), 'submit', null, _('Save Twitter settings'));
+        $this->out->submit('submit', _m('Save'), 'submit', null, _m('Save Twitter settings'));
     }
 }
index 7a896e1687a86b6ce736563286f5ae545ef36d4a..931a037230b2c26289fbd1cc1ed7fd3ed87647e4 100644 (file)
@@ -117,13 +117,13 @@ class TwitterauthorizationAction extends Action
             $token = $this->trimmed('token');
 
             if (!$token || $token != common_session_token()) {
-                $this->showForm(_('There was a problem with your session token. Try again, please.'));
+                $this->showForm(_m('There was a problem with your session token. Try again, please.'));
                 return;
             }
 
             if ($this->arg('create')) {
                 if (!$this->boolean('license')) {
-                    $this->showForm(_('You can\'t register if you don\'t agree to the license.'),
+                    $this->showForm(_m('You can\'t register if you don\'t agree to the license.'),
                                     $this->trimmed('newname'));
                     return;
                 }
@@ -132,7 +132,7 @@ class TwitterauthorizationAction extends Action
                 $this->connectNewUser();
             } else {
                 common_debug('Twitter bridge - ' . print_r($this->args, true));
-                $this->showForm(_('Something weird happened.'),
+                $this->showForm(_m('Something weird happened.'),
                                 $this->trimmed('newname'));
             }
         } else {
@@ -231,7 +231,6 @@ class TwitterauthorizationAction extends Action
         }
 
         if (common_logged_in()) {
-
             // Save the access token and Twitter user info
 
             $user = common_current_user();
@@ -298,7 +297,7 @@ class TwitterauthorizationAction extends Action
 
         if (empty($flink_id)) {
             common_log_db_error($flink, 'INSERT', __FILE__);
-            $this->serverError(_('Couldn\'t link your Twitter account.'));
+            $this->serverError(_m('Couldn\'t link your Twitter account.'));
         }
 
         return $flink_id;
@@ -310,13 +309,13 @@ class TwitterauthorizationAction extends Action
             $this->element('div', array('class' => 'error'), $this->error);
         } else {
             $this->element('div', 'instructions',
-                           sprintf(_('This is the first time you\'ve logged into %s so we must connect your Twitter account to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name')));
+                           sprintf(_m('This is the first time you\'ve logged into %s so we must connect your Twitter account to a local account. You can either create a new account, or connect with your existing account, if you have one.'), common_config('site', 'name')));
         }
     }
 
     function title()
     {
-        return _('Twitter Account Setup');
+        return _m('Twitter Account Setup');
     }
 
     function showForm($error=null, $username=null)
@@ -349,7 +348,7 @@ class TwitterauthorizationAction extends Action
                                           'class' => 'form_settings',
                                           'action' => common_local_url('twitterauthorization')));
         $this->elementStart('fieldset', array('id' => 'settings_twitter_connect_options'));
-        $this->element('legend', null, _('Connection options'));
+        $this->element('legend', null, _m('Connection options'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
         $this->element('input', array('type' => 'checkbox',
@@ -358,7 +357,7 @@ class TwitterauthorizationAction extends Action
                                       'name' => 'license',
                                       'value' => 'true'));
         $this->elementStart('label', array('class' => 'checkbox', 'for' => 'license'));
-        $message = _('My text and files are available under %s ' .
+        $message = _m('My text and files are available under %s ' .
                      'except this private data: password, ' .
                      'email address, IM address, and phone number.');
         $link = '<a href="' .
@@ -379,33 +378,33 @@ class TwitterauthorizationAction extends Action
         $this->elementStart('fieldset');
         $this->hidden('token', common_session_token());
         $this->element('legend', null,
-                       _('Create new account'));
+                       _m('Create new account'));
         $this->element('p', null,
-                       _('Create a new user with this nickname.'));
+                       _m('Create a new user with this nickname.'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
-        $this->input('newname', _('New nickname'),
+        $this->input('newname', _m('New nickname'),
                      ($this->username) ? $this->username : '',
-                     _('1-64 lowercase letters or numbers, no punctuation or spaces'));
+                     _m('1-64 lowercase letters or numbers, no punctuation or spaces'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
-        $this->submit('create', _('Create'));
+        $this->submit('create', _m('Create'));
         $this->elementEnd('fieldset');
 
         $this->elementStart('fieldset');
         $this->element('legend', null,
-                       _('Connect existing account'));
+                       _m('Connect existing account'));
         $this->element('p', null,
-                       _('If you already have an account, login with your username and password to connect it to your Twitter account.'));
+                       _m('If you already have an account, login with your username and password to connect it to your Twitter account.'));
         $this->elementStart('ul', 'form_data');
         $this->elementStart('li');
-        $this->input('nickname', _('Existing nickname'));
+        $this->input('nickname', _m('Existing nickname'));
         $this->elementEnd('li');
         $this->elementStart('li');
-        $this->password('password', _('Password'));
+        $this->password('password', _m('Password'));
         $this->elementEnd('li');
         $this->elementEnd('ul');
-        $this->submit('connect', _('Connect'));
+        $this->submit('connect', _m('Connect'));
         $this->elementEnd('fieldset');
 
         $this->elementEnd('fieldset');
@@ -421,7 +420,7 @@ class TwitterauthorizationAction extends Action
     function createNewUser()
     {
         if (common_config('site', 'closed')) {
-            $this->clientError(_('Registration not allowed.'));
+            $this->clientError(_m('Registration not allowed.'));
             return;
         }
 
@@ -430,14 +429,14 @@ class TwitterauthorizationAction extends Action
         if (common_config('site', 'inviteonly')) {
             $code = $_SESSION['invitecode'];
             if (empty($code)) {
-                $this->clientError(_('Registration not allowed.'));
+                $this->clientError(_m('Registration not allowed.'));
                 return;
             }
 
             $invite = Invitation::staticGet($code);
 
             if (empty($invite)) {
-                $this->clientError(_('Not a valid invitation code.'));
+                $this->clientError(_m('Not a valid invitation code.'));
                 return;
             }
         }
@@ -447,17 +446,17 @@ class TwitterauthorizationAction extends Action
         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.'));
+            $this->showForm(_m('Nickname must have only lowercase letters and numbers and no spaces.'));
             return;
         }
 
         if (!User::allowed_nickname($nickname)) {
-            $this->showForm(_('Nickname not allowed.'));
+            $this->showForm(_m('Nickname not allowed.'));
             return;
         }
 
         if (User::staticGet('nickname', $nickname)) {
-            $this->showForm(_('Nickname already in use. Try another one.'));
+            $this->showForm(_m('Nickname already in use. Try another one.'));
             return;
         }
 
@@ -472,7 +471,7 @@ class TwitterauthorizationAction extends Action
         $user = User::register($args);
 
         if (empty($user)) {
-            $this->serverError(_('Error registering user.'));
+            $this->serverError(_m('Error registering user.'));
             return;
         }
 
@@ -483,7 +482,7 @@ class TwitterauthorizationAction extends Action
         save_twitter_user($this->twuid, $this->tw_fields['screen_name']);
 
         if (!$result) {
-            $this->serverError(_('Error connecting user to Twitter.'));
+            $this->serverError(_m('Error connecting user to Twitter.'));
             return;
         }
 
@@ -503,7 +502,7 @@ class TwitterauthorizationAction extends Action
         $password = $this->trimmed('password');
 
         if (!common_check_user($nickname, $password)) {
-            $this->showForm(_('Invalid username or password.'));
+            $this->showForm(_m('Invalid username or password.'));
             return;
         }
 
@@ -521,7 +520,7 @@ class TwitterauthorizationAction extends Action
         save_twitter_user($this->twuid, $this->tw_fields['screen_name']);
 
         if (!$result) {
-            $this->serverError(_('Error connecting user to Twitter.'));
+            $this->serverError(_m('Error connecting user to Twitter.'));
             return;
         }
 
@@ -541,7 +540,7 @@ class TwitterauthorizationAction extends Action
         $result = $this->flinkUser($user->id, $this->twuid);
 
         if (empty($result)) {
-            $this->serverError(_('Error connecting user to Twitter.'));
+            $this->serverError(_m('Error connecting user to Twitter.'));
             return;
         }
 
index 79421fb27da5a11f66b2ffba24f079578c2cab2f..5b5bfae191d9d616ed33e0aafeeb5d682f2df5d9 100644 (file)
@@ -46,7 +46,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php';
  *
  * @see      SettingsAction
  */
-
 class TwitterloginAction extends Action
 {
     function handle($args)
@@ -54,7 +53,7 @@ class TwitterloginAction extends Action
         parent::handle($args);
 
         if (common_is_real_login()) {
-            $this->clientError(_('Already logged in.'));
+            $this->clientError(_m('Already logged in.'));
         }
 
         $this->showPage();
@@ -62,12 +61,12 @@ class TwitterloginAction extends Action
 
     function title()
     {
-        return _('Twitter Login');
+        return _m('Twitter Login');
     }
 
     function getInstructions()
     {
-        return _('Login with your Twitter account');
+        return _m('Login with your Twitter account');
     }
 
     function showPageNotice()
@@ -85,7 +84,7 @@ class TwitterloginAction extends Action
                                                                   null,
                                                                   array('signin' => true))));
         $this->element('img', array('src' => common_path('plugins/TwitterBridge/Sign-in-with-Twitter-lighter.png'),
-                                    'alt' => 'Sign in with Twitter'));
+                                    'alt' => _m('Sign in with Twitter')));
         $this->elementEnd('a');
     }
 
index 876e304259df7818afd5b67f708d80379e428845..345510a0d0b5dd4e472466a77dbd091ac01ddbfe 100644 (file)
@@ -200,7 +200,6 @@ class TwitterOAuthClient extends OAuthClient
     function statusesHomeTimeline($since_id = null, $max_id = null,
                                   $cnt = null, $page = null)
     {
-
         $url    = 'https://twitter.com/statuses/home_timeline.json';
 
         $params = array('include_entities' => 'true');
index 631b29f52a83f1ab294162af689d3a30e20679ef..dab8ab34fe2514595ec53c3fad22434e085e1b0b 100644 (file)
@@ -45,7 +45,6 @@ require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php';
  *
  * @see      SettingsAction
  */
-
 class TwittersettingsAction extends ConnectSettingsAction
 {
     /**
@@ -79,7 +78,6 @@ class TwittersettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function showContent()
     {
 
@@ -130,6 +128,7 @@ class TwittersettingsAction extends ConnectSettingsAction
             if (!$user->password) {
 
                 $this->elementStart('p', array('class' => 'form_guide'));
+                // @todo FIXME: Bad i18n (patchwork in three parts).
                 $this->text(_m('Disconnecting your Twitter ' .
                                'could make it impossible to log in! Please '));
                 $this->element('a',
@@ -139,7 +138,7 @@ class TwittersettingsAction extends ConnectSettingsAction
                 $this->text(_m(' first.'));
                 $this->elementEnd('p');
             } else {
-
+                // TRANS: %1$s is the current website name.
                 $note = _m('Keep your %1$s account but disconnect from Twitter. ' .
                     'You can use your %1$s password to log in.');
 
@@ -182,7 +181,7 @@ class TwittersettingsAction extends ConnectSettingsAction
             if (common_config('twitterimport','enabled')) {
                 $this->elementStart('li');
                 $this->checkbox('noticerecv',
-                                _m('Import my Friends Timeline.'),
+                                _m('Import my friends timeline.'),
                                 ($flink) ?
                                 ($flink->noticesync & FOREIGN_NOTICE_RECV) :
                                 false);
@@ -219,7 +218,6 @@ class TwittersettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function handlePost()
     {
         // CSRF protection
@@ -244,7 +242,6 @@ class TwittersettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function removeTwitterAccount()
     {
         $user = common_current_user();
@@ -266,7 +263,6 @@ class TwittersettingsAction extends ConnectSettingsAction
      *
      * @return void
      */
-
     function savePreferences()
     {
         $noticesend = $this->boolean('noticesend');
@@ -295,5 +291,4 @@ class TwittersettingsAction extends ConnectSettingsAction
 
         $this->showForm(_m('Twitter preferences saved.'), true);
     }
-
 }
diff --git a/plugins/UserLimit/UserLimitPlugin.php b/plugins/UserLimit/UserLimitPlugin.php
new file mode 100644 (file)
index 0000000..ab31872
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to limit number of users that can register (best for cloud providers)
+ *
+ * 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  Action
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to limit number of users that can register (best for cloud providers)
+ *
+ * For cloud providers whose freemium model is based on how many
+ * users can register. We use it on the StatusNet Cloud.
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @seeAlso  Location
+ */
+
+class UserLimitPlugin extends Plugin
+{
+    public $maxUsers = null;
+
+    function onStartUserRegister(&$user, &$profile)
+    {
+        $this->_checkMaxUsers();
+        return true;
+    }
+
+    function onStartRegistrationTry($action)
+    {
+        $this->_checkMaxUsers();
+        return true;
+    }
+
+    function _checkMaxUsers()
+    {
+        if (!is_null($this->maxUsers)) {
+
+            $cls = new User();
+
+            $cnt = $cls->count();
+
+            if ($cnt >= $this->maxUsers) {
+                $msg = sprintf(_('Cannot register; maximum number of users (%d) reached.'),
+                               $this->maxUsers);
+
+                throw new ClientException($msg);
+            }
+        }
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'UserLimit',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:UserLimit',
+                            'description' =>
+                            _m('Limit the number of users who can register.'));
+        return true;
+    }
+}
diff --git a/plugins/UserLimit/locale/UserLimit.pot b/plugins/UserLimit/locale/UserLimit.pot
new file mode 100644 (file)
index 0000000..5495271
--- /dev/null
@@ -0,0 +1,21 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: UserLimitPlugin.php:89
+msgid "Limit the number of users who can register."
+msgstr ""
diff --git a/plugins/UserLimitPlugin.php b/plugins/UserLimitPlugin.php
deleted file mode 100644 (file)
index ab31872..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to limit number of users that can register (best for cloud providers)
- *
- * 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  Action
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to limit number of users that can register (best for cloud providers)
- *
- * For cloud providers whose freemium model is based on how many
- * users can register. We use it on the StatusNet Cloud.
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @seeAlso  Location
- */
-
-class UserLimitPlugin extends Plugin
-{
-    public $maxUsers = null;
-
-    function onStartUserRegister(&$user, &$profile)
-    {
-        $this->_checkMaxUsers();
-        return true;
-    }
-
-    function onStartRegistrationTry($action)
-    {
-        $this->_checkMaxUsers();
-        return true;
-    }
-
-    function _checkMaxUsers()
-    {
-        if (!is_null($this->maxUsers)) {
-
-            $cls = new User();
-
-            $cnt = $cls->count();
-
-            if ($cnt >= $this->maxUsers) {
-                $msg = sprintf(_('Cannot register; maximum number of users (%d) reached.'),
-                               $this->maxUsers);
-
-                throw new ClientException($msg);
-            }
-        }
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'UserLimit',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:UserLimit',
-                            'description' =>
-                            _m('Limit the number of users who can register.'));
-        return true;
-    }
-}
diff --git a/plugins/WikiHashtags/WikiHashtagsPlugin.php b/plugins/WikiHashtags/WikiHashtagsPlugin.php
new file mode 100644 (file)
index 0000000..c6c976b
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+/**
+ * StatusNet, the distributed open-source microblogging tool
+ *
+ * Plugin to show WikiHashtags content in the sidebar
+ *
+ * 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  Plugin
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2008 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    exit(1);
+}
+
+/**
+ * Plugin to use WikiHashtags
+ *
+ * @category Plugin
+ * @package  StatusNet
+ * @author   Evan Prodromou <evan@status.net>
+ * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link     http://status.net/
+ *
+ * @see      Event
+ */
+
+class WikiHashtagsPlugin extends Plugin
+{
+    const VERSION = '0.1';
+
+    function __construct($code=null)
+    {
+        parent::__construct();
+    }
+
+    function onStartShowSections($action)
+    {
+        $name = $action->trimmed('action');
+
+        if ($name == 'tag') {
+
+            $taginput = $action->trimmed('tag');
+            $tag = common_canonical_tag($taginput);
+
+            if (!empty($tag)) {
+
+                $url = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=render',
+                               urlencode($tag));
+                $editurl = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=edit',
+                                   urlencode($tag));
+
+                $request = HTTPClient::start();
+                $response = $request->get($url);
+                $html = $response->getBody();
+
+                $action->elementStart('div', array('id' => 'wikihashtags', 'class' => 'section'));
+
+                if ($response->isOk() && !empty($html)) {
+                    $action->element('style', null,
+                                     "span.editsection { display: none }\n".
+                                     "table.toc { display: none }");
+                    $action->raw($html);
+                    $action->elementStart('p');
+                    $action->element('a', array('href' => $editurl,
+                                                'title' => sprintf(_('Edit the article for #%s on WikiHashtags'), $tag)),
+                                     _('Edit'));
+                    $action->element('a', array('href' => 'http://www.gnu.org/copyleft/fdl.html',
+                                                'title' => _('Shared under the terms of the GNU Free Documentation License'),
+                                                'rel' => 'license'),
+                                     'GNU FDL');
+                    $action->elementEnd('p');
+                } else {
+                    $action->element('a', array('href' => $editurl),
+                                     sprintf(_('Start the article for #%s on WikiHashtags'), $tag));
+                }
+
+                $action->elementEnd('div');
+            }
+        }
+
+        return true;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'WikiHashtags',
+                            'version' => self::VERSION,
+                            'author' => 'Evan Prodromou',
+                            'homepage' => 'http://status.net/wiki/Plugin:WikiHashtags',
+                            'rawdescription' =>
+                            _m('Gets hashtag descriptions from <a href="http://hashtags.wikia.com/">WikiHashtags</a>.'));
+        return true;
+    }
+}
diff --git a/plugins/WikiHashtags/locale/WikiHashtags.pot b/plugins/WikiHashtags/locale/WikiHashtags.pot
new file mode 100644 (file)
index 0000000..10f3945
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: WikiHashtagsPlugin.php:110
+msgid ""
+"Gets hashtag descriptions from <a href=\"http://hashtags.wikia.com/"
+"\">WikiHashtags</a>."
+msgstr ""
diff --git a/plugins/WikiHashtagsPlugin.php b/plugins/WikiHashtagsPlugin.php
deleted file mode 100644 (file)
index c6c976b..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-/**
- * StatusNet, the distributed open-source microblogging tool
- *
- * Plugin to show WikiHashtags content in the sidebar
- *
- * 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  Plugin
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2008 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    exit(1);
-}
-
-/**
- * Plugin to use WikiHashtags
- *
- * @category Plugin
- * @package  StatusNet
- * @author   Evan Prodromou <evan@status.net>
- * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link     http://status.net/
- *
- * @see      Event
- */
-
-class WikiHashtagsPlugin extends Plugin
-{
-    const VERSION = '0.1';
-
-    function __construct($code=null)
-    {
-        parent::__construct();
-    }
-
-    function onStartShowSections($action)
-    {
-        $name = $action->trimmed('action');
-
-        if ($name == 'tag') {
-
-            $taginput = $action->trimmed('tag');
-            $tag = common_canonical_tag($taginput);
-
-            if (!empty($tag)) {
-
-                $url = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=render',
-                               urlencode($tag));
-                $editurl = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=edit',
-                                   urlencode($tag));
-
-                $request = HTTPClient::start();
-                $response = $request->get($url);
-                $html = $response->getBody();
-
-                $action->elementStart('div', array('id' => 'wikihashtags', 'class' => 'section'));
-
-                if ($response->isOk() && !empty($html)) {
-                    $action->element('style', null,
-                                     "span.editsection { display: none }\n".
-                                     "table.toc { display: none }");
-                    $action->raw($html);
-                    $action->elementStart('p');
-                    $action->element('a', array('href' => $editurl,
-                                                'title' => sprintf(_('Edit the article for #%s on WikiHashtags'), $tag)),
-                                     _('Edit'));
-                    $action->element('a', array('href' => 'http://www.gnu.org/copyleft/fdl.html',
-                                                'title' => _('Shared under the terms of the GNU Free Documentation License'),
-                                                'rel' => 'license'),
-                                     'GNU FDL');
-                    $action->elementEnd('p');
-                } else {
-                    $action->element('a', array('href' => $editurl),
-                                     sprintf(_('Start the article for #%s on WikiHashtags'), $tag));
-                }
-
-                $action->elementEnd('div');
-            }
-        }
-
-        return true;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'WikiHashtags',
-                            'version' => self::VERSION,
-                            'author' => 'Evan Prodromou',
-                            'homepage' => 'http://status.net/wiki/Plugin:WikiHashtags',
-                            'rawdescription' =>
-                            _m('Gets hashtag descriptions from <a href="http://hashtags.wikia.com/">WikiHashtags</a>.'));
-        return true;
-    }
-}
index b72bd55d6d259ee31f4f31a6d7edbb55b0cf2013..fa683c4836e7dc643246c43cd11acac2bd9df7a3 100644 (file)
@@ -47,7 +47,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
  * @link      http://status.net/
  */
-
 class WikiHowProfilePlugin extends Plugin
 {
     function onPluginVersion(&$versions)
@@ -57,7 +56,7 @@ class WikiHowProfilePlugin extends Plugin
                             'author' => 'Brion Vibber',
                             'homepage' => 'http://status.net/wiki/Plugin:Sample',
                             'rawdescription' =>
-                            _m('Fetches avatar and other profile info for WikiHow users when setting up an account via OpenID.'));
+                            _m('Fetches avatar and other profile information for WikiHow users when setting up an account via OpenID.'));
         return true;
     }
 
@@ -107,14 +106,14 @@ class WikiHowProfilePlugin extends Plugin
 
     /**
      * Given a user's WikiHow profile URL, find their avatar.
-     * 
+     *
      * @param string $profileUrl user page on the wiki
-     * 
+     *
      * @return array of data; possible members:
      *               'avatar' => full URL to avatar image
-     * 
+     *
      * @throws Exception on various low-level failures
-     * 
+     *
      * @todo pull location, web site, and about sections -- they aren't currently marked up cleanly.
      */
     private function fetchProfile($profileUrl)
@@ -169,14 +168,14 @@ class WikiHowProfilePlugin extends Plugin
     private function saveAvatar($user, $url)
     {
         if (!common_valid_http_url($url)) {
-            throw new ServerException(sprintf(_m("Invalid avatar URL %s"), $url));
+            throw new ServerException(sprintf(_m("Invalid avatar URL %s."), $url));
         }
 
         // @fixme this should be better encapsulated
         // ripped from OStatus via oauthstore.php (for old OMB client)
         $temp_filename = tempnam(sys_get_temp_dir(), 'listener_avatar');
         if (!copy($url, $temp_filename)) {
-            throw new ServerException(sprintf(_m("Unable to fetch avatar from %s"), $url));
+            throw new ServerException(sprintf(_m("Unable to fetch avatar from %s."), $url));
         }
 
         $profile = $user->getProfile();
@@ -191,6 +190,4 @@ class WikiHowProfilePlugin extends Plugin
         rename($temp_filename, Avatar::path($filename));
         $profile->setOriginal($filename);
     }
-
 }
-
diff --git a/plugins/WikiHowProfile/locale/WikiHowProfile.pot b/plugins/WikiHowProfile/locale/WikiHowProfile.pot
new file mode 100644 (file)
index 0000000..e1a5e10
--- /dev/null
@@ -0,0 +1,33 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: WikiHowProfilePlugin.php:59
+msgid ""
+"Fetches avatar and other profile information for WikiHow users when setting "
+"up an account via OpenID."
+msgstr ""
+
+#: WikiHowProfilePlugin.php:171
+#, php-format
+msgid "Invalid avatar URL %s."
+msgstr ""
+
+#: WikiHowProfilePlugin.php:178
+#, php-format
+msgid "Unable to fetch avatar from %s."
+msgstr ""
diff --git a/plugins/XCache/XCachePlugin.php b/plugins/XCache/XCachePlugin.php
new file mode 100644 (file)
index 0000000..2baa290
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/**
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2009, StatusNet, Inc.
+ *
+ * Plugin to implement cache interface for XCache variable cache
+ *
+ * PHP version 5
+ *
+ * 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  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+if (!defined('STATUSNET')) {
+    // This check helps protect against security problems;
+    // your code file can't be executed directly from the web.
+    exit(1);
+}
+
+/**
+ * A plugin to use XCache's variable cache for the cache interface
+ *
+ * New plugin interface lets us use alternative cache systems
+ * for caching. This one uses XCache's variable cache.
+ *
+ * @category  Cache
+ * @package   StatusNet
+ * @author    Evan Prodromou <evan@status.net>
+ * @copyright 2009 StatusNet, Inc.
+ * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link      http://status.net/
+ */
+
+class XCachePlugin extends Plugin
+{
+    /**
+     * Get a value associated with a key
+     *
+     * The value should have been set previously.
+     *
+     * @param string &$key   in; Lookup key
+     * @param mixed  &$value out; value associated with key
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheGet(&$key, &$value)
+    {
+        if (!xcache_isset($key)) {
+            $value = false;
+        } else {
+            $value = xcache_get($key);
+            $value = unserialize($value);
+        }
+        Event::handle('EndCacheGet', array($key, &$value));
+        return false;
+    }
+
+    /**
+     * Associate a value with a key
+     *
+     * @param string  &$key     in; Key to use for lookups
+     * @param mixed   &$value   in; Value to associate
+     * @param integer &$flag    in; Flag (passed through to Memcache)
+     * @param integer &$expiry  in; Expiry (passed through to Memcache)
+     * @param boolean &$success out; Whether the set was successful
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
+    {
+        $success = xcache_set($key, serialize($value));
+
+        Event::handle('EndCacheSet', array($key, $value, $flag,
+                                           $expiry));
+        return false;
+    }
+
+    /**
+     * Delete a value associated with a key
+     *
+     * @param string  &$key     in; Key to lookup
+     * @param boolean &$success out; whether it worked
+     *
+     * @return boolean hook success
+     */
+
+    function onStartCacheDelete(&$key, &$success)
+    {
+        $success = xcache_unset($key);
+        Event::handle('EndCacheDelete', array($key));
+        return false;
+    }
+
+    function onPluginVersion(&$versions)
+    {
+        $versions[] = array('name' => 'XCache',
+                            'version' => STATUSNET_VERSION,
+                            'author' => 'Craig Andrews',
+                            'homepage' => 'http://status.net/wiki/Plugin:XCache',
+                            'rawdescription' =>
+                            _m('Use the <a href="http://xcache.lighttpd.net/">XCache</a> variable cache to cache query results.'));
+        return true;
+    }
+}
+
diff --git a/plugins/XCache/locale/XCache.pot b/plugins/XCache/locale/XCache.pot
new file mode 100644 (file)
index 0000000..856ca28
--- /dev/null
@@ -0,0 +1,23 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-09-22 22:34+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: XCachePlugin.php:120
+msgid ""
+"Use the <a href=\"http://xcache.lighttpd.net/\">XCache</a> variable cache to "
+"cache query results."
+msgstr ""
diff --git a/plugins/XCachePlugin.php b/plugins/XCachePlugin.php
deleted file mode 100644 (file)
index 2baa290..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/**
- * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2009, StatusNet, Inc.
- *
- * Plugin to implement cache interface for XCache variable cache
- *
- * PHP version 5
- *
- * 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  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-if (!defined('STATUSNET')) {
-    // This check helps protect against security problems;
-    // your code file can't be executed directly from the web.
-    exit(1);
-}
-
-/**
- * A plugin to use XCache's variable cache for the cache interface
- *
- * New plugin interface lets us use alternative cache systems
- * for caching. This one uses XCache's variable cache.
- *
- * @category  Cache
- * @package   StatusNet
- * @author    Evan Prodromou <evan@status.net>
- * @copyright 2009 StatusNet, Inc.
- * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link      http://status.net/
- */
-
-class XCachePlugin extends Plugin
-{
-    /**
-     * Get a value associated with a key
-     *
-     * The value should have been set previously.
-     *
-     * @param string &$key   in; Lookup key
-     * @param mixed  &$value out; value associated with key
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheGet(&$key, &$value)
-    {
-        if (!xcache_isset($key)) {
-            $value = false;
-        } else {
-            $value = xcache_get($key);
-            $value = unserialize($value);
-        }
-        Event::handle('EndCacheGet', array($key, &$value));
-        return false;
-    }
-
-    /**
-     * Associate a value with a key
-     *
-     * @param string  &$key     in; Key to use for lookups
-     * @param mixed   &$value   in; Value to associate
-     * @param integer &$flag    in; Flag (passed through to Memcache)
-     * @param integer &$expiry  in; Expiry (passed through to Memcache)
-     * @param boolean &$success out; Whether the set was successful
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
-    {
-        $success = xcache_set($key, serialize($value));
-
-        Event::handle('EndCacheSet', array($key, $value, $flag,
-                                           $expiry));
-        return false;
-    }
-
-    /**
-     * Delete a value associated with a key
-     *
-     * @param string  &$key     in; Key to lookup
-     * @param boolean &$success out; whether it worked
-     *
-     * @return boolean hook success
-     */
-
-    function onStartCacheDelete(&$key, &$success)
-    {
-        $success = xcache_unset($key);
-        Event::handle('EndCacheDelete', array($key));
-        return false;
-    }
-
-    function onPluginVersion(&$versions)
-    {
-        $versions[] = array('name' => 'XCache',
-                            'version' => STATUSNET_VERSION,
-                            'author' => 'Craig Andrews',
-                            'homepage' => 'http://status.net/wiki/Plugin:XCache',
-                            'rawdescription' =>
-                            _m('Use the <a href="http://xcache.lighttpd.net/">XCache</a> variable cache to cache query results.'));
-        return true;
-    }
-}
-
diff --git a/scripts/backupuser.php b/scripts/backupuser.php
new file mode 100644 (file)
index 0000000..49fc1ce
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/*
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2010 StatusNet, 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', realpath(dirname(__FILE__) . '/..'));
+
+$shortoptions = 'i:n:f:';
+$longoptions = array('id=', 'nickname=', 'file=');
+
+$helptext = <<<END_OF_EXPORTACTIVITYSTREAM_HELP
+exportactivitystream.php [options]
+Export a StatusNet user history to a file
+
+  -i --id       ID of user to export
+  -n --nickname nickname of the user to export
+  -f --file     file to export to (default STDOUT)
+
+END_OF_EXPORTACTIVITYSTREAM_HELP;
+
+require_once INSTALLDIR.'/scripts/commandline.inc';
+
+try {
+    $user = getUser();
+    $actstr = new UserActivityStream($user);
+    print $actstr->getString();
+} catch (Exception $e) {
+    print $e->getMessage()."\n";
+    exit(1);
+}
index a475e11d01abba19ba7fb9ba8126f00f312388c7..9390890ef33c0f7379c38d58fee4325aefdd935e 100644 (file)
@@ -177,3 +177,70 @@ function get_option_value($opt, $alt=null)
 
     return null;
 }
+
+class NoUserArgumentException extends Exception
+{
+}
+
+function getUser()
+{
+    $user = null;
+
+    if (have_option('i', 'id')) {
+        $id = get_option_value('i', 'id');
+        $user = User::staticGet('id', $id);
+        if (empty($user)) {
+            throw new Exception("Can't find user with id '$id'.");
+        }
+    } else if (have_option('n', 'nickname')) {
+        $nickname = get_option_value('n', 'nickname');
+        $user = User::staticGet('nickname', $nickname);
+        if (empty($user)) {
+            throw new Exception("Can't find user with nickname '$nickname'");
+        }
+    } else {
+        throw new NoUserArgumentException("No user argument specified.");
+    }
+
+    return $user;
+}
+
+/** "Printf not quiet" */
+
+function printfnq()
+{
+    if (have_option('q', 'quiet')) {
+        return null;
+    }
+
+    $cargs  = func_num_args();
+
+    if ($cargs == 0) {
+        return 0;
+    }
+
+    $args   = func_get_args();
+    $format = array_shift($args);
+
+    return vprintf($format, $args);
+}
+
+/** "Print when verbose" */
+
+function printfv()
+{
+    if (!have_option('v', 'verbose')) {
+        return null;
+    }
+
+    $cargs  = func_num_args();
+
+    if ($cargs == 0) {
+        return 0;
+    }
+
+    $args   = func_get_args();
+    $format = array_shift($args);
+
+    return vprintf($format, $args);
+}
\ No newline at end of file
index c12e3b91a8f3a920ce9fc9c4f21e08fded44b83d..261dfb1d02b7af595d628632eec97f1af2947cb4 100644 (file)
@@ -36,30 +36,6 @@ END_OF_IMPORTTWITTERATOM_HELP;
 require_once INSTALLDIR.'/scripts/commandline.inc';
 require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php';
 
-function getUser()
-{
-    $user = null;
-
-    if (have_option('i', 'id')) {
-        $id = get_option_value('i', 'id');
-        $user = User::staticGet('id', $id);
-        if (empty($user)) {
-            throw new Exception("Can't find user with id '$id'.");
-        }
-    } else if (have_option('n', 'nickname')) {
-        $nickname = get_option_value('n', 'nickname');
-        $user = User::staticGet('nickname', $nickname);
-        if (empty($user)) {
-            throw new Exception("Can't find user with nickname '$nickname'");
-        }
-    } else {
-        show_help();
-        exit(1);
-    }
-
-    return $user;
-}
-
 function getAtomFeedDocument()
 {
     $filename = get_option_value('f', 'file');
diff --git a/scripts/restoreuser.php b/scripts/restoreuser.php
new file mode 100644 (file)
index 0000000..363ef42
--- /dev/null
@@ -0,0 +1,376 @@
+<?php
+/*
+ * StatusNet - the distributed open-source microblogging tool
+ * Copyright (C) 2010 StatusNet, 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', realpath(dirname(__FILE__) . '/..'));
+
+$shortoptions = 'i:n:f:';
+$longoptions = array('id=', 'nickname=', 'file=');
+
+$helptext = <<<END_OF_RESTOREUSER_HELP
+restoreuser.php [options]
+Restore a backed-up user file to the database. If
+neither ID or name provided, will create a new user.
+
+  -i --id       ID of user to export
+  -n --nickname nickname of the user to export
+  -f --file     file to read from (STDIN by default)
+
+END_OF_RESTOREUSER_HELP;
+
+require_once INSTALLDIR.'/scripts/commandline.inc';
+require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php';
+
+function getActivityStreamDocument()
+{
+    $filename = get_option_value('f', 'file');
+
+    if (empty($filename)) {
+        show_help();
+        exit(1);
+    }
+
+    if (!file_exists($filename)) {
+        throw new Exception("No such file '$filename'.");
+    }
+
+    if (!is_file($filename)) {
+        throw new Exception("Not a regular file: '$filename'.");
+    }
+
+    if (!is_readable($filename)) {
+        throw new Exception("File '$filename' not readable.");
+    }
+
+    printfv(_("Getting backup from file '$filename'.\n"));
+
+    $xml = file_get_contents($filename);
+
+    $dom = DOMDocument::loadXML($xml);
+
+    if ($dom->documentElement->namespaceURI != Activity::ATOM ||
+        $dom->documentElement->localName != 'feed') {
+        throw new Exception("'$filename' is not an Atom feed.");
+    }
+
+    return $dom;
+}
+
+function importActivityStream($user, $doc)
+{
+    $feed = $doc->documentElement;
+
+    $subjectEl = ActivityUtils::child($feed, Activity::SUBJECT, Activity::SPEC);
+
+    if (!empty($subjectEl)) {
+        $subject = new ActivityObject($subjectEl);
+        printfv(_("Backup file for user %s (%s)\n"), $subject->id, Ostatus_profile::getActivityObjectNickname($subject));
+    } else {
+        throw new Exception("Feed doesn't have an <activity:subject> element.");
+    }
+
+    if (is_null($user)) {
+        printfv(_("No user specified; using backup user.\n"));
+        $user = userFromSubject($subject);
+    }
+
+    $entries = $feed->getElementsByTagNameNS(Activity::ATOM, 'entry');
+
+    printfv(_("%d entries in backup.\n"), $entries->length);
+
+    for ($i = $entries->length - 1; $i >= 0; $i--) {
+        try {
+            $entry = $entries->item($i);
+
+            $activity = new Activity($entry, $feed);
+
+            switch ($activity->verb) {
+            case ActivityVerb::FOLLOW:
+                subscribeProfile($user, $subject, $activity);
+                break;
+            case ActivityVerb::JOIN:
+                joinGroup($user, $activity);
+                break;
+            case ActivityVerb::POST:
+                postNote($user, $activity);
+                break;
+            default:
+                throw new Exception("Unknown verb: {$activity->verb}");
+            }
+        } catch (Exception $e) {
+            print $e->getMessage()."\n";
+            continue;
+        }
+    }
+}
+
+function subscribeProfile($user, $subject, $activity)
+{
+    $profile = $user->getProfile();
+
+    if ($activity->objects[0]->id == $subject->id) {
+
+        $other = $activity->actor;
+        $otherUser = User::staticGet('uri', $other->id);
+
+        if (!empty($otherUser)) {
+            $otherProfile = $otherUser->getProfile();
+        } else {
+            throw new Exception("Can't force remote user to subscribe.");
+        }
+        // XXX: don't do this for untrusted input!
+        Subscription::start($otherProfile, $profile);
+
+    } else if (empty($activity->actor) || $activity->actor->id == $subject->id) {
+
+        $other = $activity->objects[0];
+        $otherUser = User::staticGet('uri', $other->id);
+
+        if (!empty($otherUser)) {
+            $otherProfile = $otherUser->getProfile();
+        } else {
+            $oprofile = Ostatus_profile::ensureActivityObjectProfile($other);
+            $otherProfile = $oprofile->localProfile();
+        }
+
+        Subscription::start($profile, $otherProfile);
+    } else {
+        throw new Exception("This activity seems unrelated to our user.");
+    }
+}
+
+function joinGroup($user, $activity)
+{
+    // XXX: check that actor == subject
+
+    $uri = $activity->objects[0]->id;
+
+    $group = User_group::staticGet('uri', $uri);
+
+    if (empty($group)) {
+        $oprofile = Ostatus_profile::ensureActivityObjectProfile($activity->objects[0]);
+        if (!$oprofile->isGroup()) {
+            throw new Exception("Remote profile is not a group!");
+        }
+        $group = $oprofile->localGroup();
+    }
+
+    assert(!empty($group));
+
+    if (Event::handle('StartJoinGroup', array($group, $user))) {
+        Group_member::join($group->id, $user->id);
+        Event::handle('EndJoinGroup', array($group, $user));
+    }
+}
+
+// XXX: largely cadged from Ostatus_profile::processNote()
+
+function postNote($user, $activity)
+{
+    $note = $activity->objects[0];
+
+    $sourceUri = $note->id;
+
+    $notice = Notice::staticGet('uri', $sourceUri);
+
+    if (!empty($notice)) {
+        // This is weird.
+        $orig = clone($notice);
+        $notice->profile_id = $user->id;
+        $notice->update($orig);
+        return;
+    }
+
+    // Use summary as fallback for content
+
+    if (!empty($note->content)) {
+        $sourceContent = $note->content;
+    } else if (!empty($note->summary)) {
+        $sourceContent = $note->summary;
+    } else if (!empty($note->title)) {
+        $sourceContent = $note->title;
+    } else {
+        // @fixme fetch from $sourceUrl?
+        // @todo i18n FIXME: use sprintf and add i18n.
+        throw new ClientException("No content for notice {$sourceUri}.");
+    }
+
+    // Get (safe!) HTML and text versions of the content
+
+    $rendered = purify($sourceContent);
+    $content = html_entity_decode(strip_tags($rendered));
+
+    $shortened = common_shorten_links($content);
+
+    $options = array('is_local' => Notice::LOCAL_PUBLIC,
+                     'uri' => $sourceUri,
+                     'rendered' => $rendered,
+                     'replies' => array(),
+                     'groups' => array(),
+                     'tags' => array(),
+                     'urls' => array());
+
+    // Check for optional attributes...
+
+    if (!empty($activity->time)) {
+        $options['created'] = common_sql_date($activity->time);
+    }
+
+    if ($activity->context) {
+        // Any individual or group attn: targets?
+
+        list($options['groups'], $options['replies']) = filterAttention($activity->context->attention);
+
+        // Maintain direct reply associations
+        // @fixme what about conversation ID?
+        if (!empty($activity->context->replyToID)) {
+            $orig = Notice::staticGet('uri',
+                                      $activity->context->replyToID);
+            if (!empty($orig)) {
+                $options['reply_to'] = $orig->id;
+            }
+        }
+
+        $location = $activity->context->location;
+
+        if ($location) {
+            $options['lat'] = $location->lat;
+            $options['lon'] = $location->lon;
+            if ($location->location_id) {
+                $options['location_ns'] = $location->location_ns;
+                $options['location_id'] = $location->location_id;
+            }
+        }
+    }
+
+    // Atom categories <-> hashtags
+
+    foreach ($activity->categories as $cat) {
+        if ($cat->term) {
+            $term = common_canonical_tag($cat->term);
+            if ($term) {
+                $options['tags'][] = $term;
+            }
+        }
+    }
+
+    // Atom enclosures -> attachment URLs
+    foreach ($activity->enclosures as $href) {
+        // @fixme save these locally or....?
+        $options['urls'][] = $href;
+    }
+
+    $saved = Notice::saveNew($user->id,
+                             $content,
+                             'restore', // TODO: restore the actual source
+                             $options);
+
+    return $saved;
+}
+
+function filterAttention($attn)
+{
+    $groups = array();
+    $replies = array();
+
+    foreach (array_unique($attn) as $recipient) {
+
+        // Is the recipient a local user?
+
+        $user = User::staticGet('uri', $recipient);
+
+        if ($user) {
+            // @fixme sender verification, spam etc?
+            $replies[] = $recipient;
+            continue;
+        }
+
+        // Is the recipient a remote group?
+        $oprofile = Ostatus_profile::ensureProfileURI($recipient);
+
+        if ($oprofile) {
+            if (!$oprofile->isGroup()) {
+                // may be canonicalized or something
+                $replies[] = $oprofile->uri;
+            }
+            continue;
+        }
+
+        // Is the recipient a local group?
+        // @fixme uri on user_group isn't reliable yet
+        // $group = User_group::staticGet('uri', $recipient);
+        $id = OStatusPlugin::localGroupFromUrl($recipient);
+
+        if ($id) {
+            $group = User_group::staticGet('id', $id);
+            if ($group) {
+                // Deliver to all members of this local group if allowed.
+                $profile = $sender->localProfile();
+                if ($profile->isMember($group)) {
+                    $groups[] = $group->id;
+                } else {
+                    common_log(LOG_INFO, "Skipping reply to local group {$group->nickname} as sender {$profile->id} is not a member");
+                }
+                continue;
+            } else {
+                common_log(LOG_INFO, "Skipping reply to bogus group $recipient");
+            }
+        }
+    }
+
+    return array($groups, $replies);
+}
+
+function userFromSubject($subject)
+{
+    $user = User::staticGet('uri', $subject->id);
+
+    if (empty($user)) {
+        $attrs =
+          array('nickname' => Ostatus_profile::getActivityObjectNickname($subject),
+                'uri' => $subject->id);
+
+        $user = User::register($attrs);
+    }
+
+    $profile = $user->getProfile();
+    Ostatus_profile::updateProfile($profile, $subject);
+
+    // FIXME: Update avatar
+    return $user;
+}
+
+function purify($content)
+{
+    $config = array('safe' => 1,
+                    'deny_attribute' => 'id,style,on*');
+    return htmLawed($content, $config);
+}
+
+try {
+    try {
+        $user = getUser();
+    } catch (NoUserArgumentException $noae) {
+        $user = null;
+    }
+    $doc  = getActivityStreamDocument();
+    importActivityStream($user, $doc);
+} catch (Exception $e) {
+    print $e->getMessage()."\n";
+    exit(1);
+}
index f10f2084244985ca4dcf8168cfe987365855cdf7..a0ab5819d562a21d3e76b370ed026ca8c39162cb 100755 (executable)
@@ -81,45 +81,6 @@ END;
     chdir($old);
 }
 
-function do_translatewiki_plugin($basedir, $plugin)
-{
-    $yamldir = "$basedir/locale/TranslateWiki";
-    if (!file_exists($yamldir)) {
-        mkdir($yamldir);
-    }
-    $outfile = "$yamldir/StatusNet-{$plugin}.yml";
-    $pluginlc = strtolower( $plugin );
-    $data = <<<END
----
-BASIC:
-  id: out-statusnet-{$pluginlc}
-  label: StatusNet - {$plugin}
-  namespace: NS_STATUSNET
-  description: "{{int:bw-desc-statusnet-plugin}}"
-  class: FileBasedMessageGroup
-  display: out/statusnet/{$pluginlc}
-
-FILES:
-  class: GettextFFS
-  sourcePattern: %GROUPROOT%/statusnet/plugins/{$plugin}/locale/{$plugin}.pot
-  targetPattern: statusnet/plugins/{$plugin}/locale/%CODE%/LC_MESSAGES/{$plugin}.po
-  codeMap:
-    en-gb: en_GB
-    no: nb
-    pt-br: pt_BR
-    zh-hans: zh_CN
-    zh-hant: zh_TW
-
-MANGLER
-  class: StringMatcher
-  prefix: {$pluginlc}-
-  patterns:
-    - "*"
-
-END;
-    file_put_contents($outfile, $data);
-}
-
 function get_plugins($dir)
 {
     $plugins = array();
@@ -168,7 +129,6 @@ function update_plugin($basedir, $name)
     $dir = "$basedir/plugins/$name";
     if (plugin_using_gettext($dir)) {
         do_update_plugin($dir, $name);
-        do_translatewiki_plugin($basedir, $name);
         return true;
     } else {
         return false;
@@ -200,8 +160,6 @@ foreach ($args as $arg) {
     }
 }
 
-
-
 if ($all || $core) {
     echo "core...";
     update_core(INSTALLDIR, 'statusnet');
index 89d937e9dd28d293418acd08377d68b74cd22dcf..1fe513b13baa86f19549b7014ea2bdb8416231f9 100755 (executable)
@@ -77,7 +77,7 @@ foreach ($languages as $language) {
         http_build_query(array(
             'title' => 'Special:Translate',
             'task' => 'export-to-file',
-            'group' => 'out-statusnet',
+            'group' => 'out-statusnet-core',
             'language' => $twnCode));
 
     $lcdir = INSTALLDIR . '/locale/' . $code;
index d93cd398fe684a6e97e38a726c9251e713abc103..a113797730468dd865e94bbeaf368a928426106f 100644 (file)
@@ -1513,6 +1513,27 @@ width:auto;
 min-width:0;
 }
 
+#form_notice {
+display: none;
+}
+
+#public.user_in #form_notice,
+#groups.user_in #form_notice,
+#publictagcloud.user_in #form_notice,
+#featured.user_in #form_notice,
+#favorited.user_in #form_notice,
+#all.user_in #form_notice,
+#replies.user_in #form_notice,
+#showstream.user_in #form_notice,
+#showfavorites.user_in #form_notice,
+#subscriptions.user_in #form_notice,
+#subscribers.user_in #form_notice,
+#showgroup.user_in #form_notice,
+#conversation.user_in #form_notice,
+#attachment.user_in #form_notice {
+display: inline;
+}
+
 #public.user_in #content,
 #groups.user_in #content,
 #publictagcloud.user_in #content,
@@ -1532,38 +1553,6 @@ min-width:0;
 padding-top:12.5em;
 }
 
-#profilesettings #form_notice,
-#avatarsettings #form_notice,
-#passwordsettings #form_notice,
-#emailsettings #form_notice,
-#openidsettings #form_notice,
-#othersettings #form_notice,
-#smssettings #form_notice,
-#twittersettings #form_notice,
-#imsettings #form_notice,
-#userdesignsettings #form_notice,
-#groupdesignsettings #form_notice,
-#grouplogo #form_notice,
-#editgroup #form_notice,
-#blockedfromgroup #form_notice,
-#groupmembers #form_notice,
-#doc #form_notice,
-#usergroups #form_notice,
-#invite #form_notice,
-#deletenotice #form_notice,
-#newgroup #form_notice,
-#register #form_notice,
-#shownotice #form_notice,
-#confirmaddress #form_notice,
-#tag #form_notice,
-#siteadminpanel #form_notice,
-#designadminpanel #form_notice,
-#useradminpanel #form_notice,
-#pathsadminpanel #form_notice,
-#adminprofileflag #form_notice {
-display:none;
-}
-
 #public #core,
 #showstream #core,
 #showgroup #core {
index e8f964ef4352067f60b06808d38cad65c7309bc6..a7b34a2f393d7ebf9ae5d01d2e98c8d0ed88a50e 100644 (file)
@@ -52,19 +52,22 @@ width:181px;
 top:190px;
 }
 
-#public #content,
-#groups #content,
-#publictagcloud #content,
-#featured #content,
-#favorited #content,
-#all #content,
-#replies #content,
-#showstream #content,
-#showfavorites #content,
-#inbox #content,
-#outbox #content,
-#subscriptions #content,
-#subscribers #content {
+#public.user_in #content,
+#groups.user_in #content,
+#publictagcloud.user_in #content,
+#featured.user_in #content,
+#favorited.user_in #content,
+#all.user_in #content,
+#replies.user_in #content,
+#showstream.user_in #content,
+#showfavorites.user_in #content,
+#inbox.user_in #content,
+#outbox.user_in #content,
+#subscriptions.user_in #content,
+#subscribers.user_in #content,
+#showgroup.user_in #content,
+#conversation.user_in #content,
+#attachment.user_in #content {
 padding-top:138px;
 }