]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #1 from friendica/develop
authorCasper <casperrutten33@gmail.com>
Thu, 14 Nov 2019 22:36:36 +0000 (22:36 +0000)
committerGitHub <noreply@github.com>
Thu, 14 Nov 2019 22:36:36 +0000 (22:36 +0000)
Update from friendica/friendica

143 files changed:
database.sql
include/api.php
include/conversation.php
include/enotify.php
mod/settings.php
mod/update_contact.php
mod/update_profile.php
src/App/Module.php
src/App/Page.php
src/App/Router.php
src/BaseModule.php
src/Content/Text/BBCode.php
src/LegacyModule.php
src/Model/Item.php
src/Model/Photo.php
src/Module/AccountManagementControlDocument.php
src/Module/Acctlink.php
src/Module/Admin/Addons/Details.php
src/Module/Admin/Addons/Index.php
src/Module/Admin/Blocklist/Contact.php
src/Module/Admin/Blocklist/Server.php
src/Module/Admin/DBSync.php
src/Module/Admin/Features.php
src/Module/Admin/Federation.php
src/Module/Admin/Item/Delete.php
src/Module/Admin/Item/Source.php
src/Module/Admin/Logs/Settings.php
src/Module/Admin/Logs/View.php
src/Module/Admin/PhpInfo.php
src/Module/Admin/Queue.php
src/Module/Admin/Site.php
src/Module/Admin/Summary.php
src/Module/Admin/Themes/Details.php
src/Module/Admin/Themes/Embed.php
src/Module/Admin/Themes/Index.php
src/Module/Admin/Tos.php
src/Module/Admin/Users.php
src/Module/AllFriends.php
src/Module/Apps.php
src/Module/Attach.php
src/Module/BaseAdminModule.php
src/Module/BaseSettingsModule.php
src/Module/Bookmarklet.php
src/Module/Contact.php
src/Module/Contact/Hovercard.php
src/Module/Credits.php
src/Module/Debug/Babel.php
src/Module/Debug/Feed.php
src/Module/Debug/ItemBody.php
src/Module/Debug/Localtime.php
src/Module/Debug/Probe.php
src/Module/Debug/WebFinger.php
src/Module/Delegation.php
src/Module/Diaspora/Fetch.php
src/Module/Diaspora/Receive.php
src/Module/Directory.php
src/Module/Feed.php
src/Module/Filer/RemoveTag.php
src/Module/Filer/SaveTag.php
src/Module/FollowConfirm.php
src/Module/Followers.php
src/Module/Following.php
src/Module/Friendica.php
src/Module/Group.php
src/Module/HTTPException/MethodNotAllowed.php
src/Module/HTTPException/PageNotFound.php
src/Module/Hashtag.php
src/Module/Help.php
src/Module/Home.php
src/Module/Inbox.php
src/Module/Install.php
src/Module/Invite.php
src/Module/Item/Compose.php
src/Module/Item/Ignore.php
src/Module/Like.php
src/Module/Login.php
src/Module/Logout.php
src/Module/Magic.php
src/Module/Maintenance.php
src/Module/Manifest.php
src/Module/NodeInfo.php
src/Module/Notifications/Notify.php
src/Module/Objects.php
src/Module/Oembed.php
src/Module/OpenSearch.php
src/Module/Outbox.php
src/Module/Owa.php
src/Module/Photo.php
src/Module/Pinned.php [new file with mode: 0644]
src/Module/Profile.php
src/Module/Profile/Contacts.php
src/Module/Proxy.php
src/Module/PublicRSAKey.php
src/Module/RandomProfile.php
src/Module/ReallySimpleDiscovery.php
src/Module/Register.php
src/Module/RobotsTxt.php
src/Module/Search/Acl.php
src/Module/Search/Directory.php
src/Module/Search/Index.php
src/Module/Search/Saved.php
src/Module/Settings/Delegation.php
src/Module/Settings/TwoFactor/AppSpecific.php
src/Module/Settings/TwoFactor/Index.php
src/Module/Settings/TwoFactor/Recovery.php
src/Module/Settings/TwoFactor/Verify.php
src/Module/Settings/UserExport.php
src/Module/Smilies.php
src/Module/Starred.php
src/Module/Statistics.php
src/Module/Theme.php
src/Module/ThemeDetails.php
src/Module/ToggleMobile.php
src/Module/Tos.php
src/Module/TwoFactor/Recovery.php
src/Module/TwoFactor/Verify.php
src/Module/Welcome.php
src/Module/WellKnown/HostMeta.php
src/Module/WellKnown/XSocialRelay.php
src/Module/Xrd.php
src/Object/Post.php
src/Protocol/ActivityPub/Receiver.php
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/Diaspora.php
static/dbstructure.config.php
static/dependencies.config.php
static/routes.config.php
tests/src/App/ModeTest.php
tests/src/App/ModuleTest.php
tests/src/App/RouterTest.php
view/js/main.js
view/lang/C/messages.po
view/templates/register.tpl
view/templates/settings/userexport.tpl [new file with mode: 0644]
view/templates/wall_thread.tpl
view/theme/duepuntozero/style.css
view/theme/frio/templates/register.tpl
view/theme/frio/templates/settings/userexport.tpl [new file with mode: 0644]
view/theme/frio/templates/wall_thread.tpl
view/theme/quattro/templates/wall_thread.tpl
view/theme/smoothly/style.css
view/theme/smoothly/templates/wall_thread.tpl
view/theme/vier/templates/wall_thread.tpl

index d42f61f902ac7f5651d6cf8207a952c0f9384da4..8630bfba8b412d2fdf9e4f54df3941e9637d357a 100644 (file)
@@ -1,6 +1,6 @@
 -- ------------------------------------------
--- Friendica 2019.09-rc (Dalmatian Bellflower)
--- DB_UPDATE_VERSION 1322
+-- Friendica 2019.12-dev (Dalmatian Bellflower)
+-- DB_UPDATE_VERSION 1324
 -- ------------------------------------------
 
 
@@ -793,7 +793,6 @@ CREATE TABLE IF NOT EXISTS `manage` (
 --
 CREATE TABLE IF NOT EXISTS `notify` (
        `id` int unsigned NOT NULL auto_increment COMMENT 'sequential ID',
-       `hash` varchar(64) NOT NULL DEFAULT '' COMMENT '',
        `type` smallint unsigned NOT NULL DEFAULT 0 COMMENT '',
        `name` varchar(255) NOT NULL DEFAULT '' COMMENT '',
        `url` varchar(255) NOT NULL DEFAULT '' COMMENT '',
@@ -810,7 +809,6 @@ CREATE TABLE IF NOT EXISTS `notify` (
        `name_cache` tinytext COMMENT 'Cached bbcode parsing of name',
        `msg_cache` mediumtext COMMENT 'Cached bbcode parsing of msg',
         PRIMARY KEY(`id`),
-        INDEX `hash_uid` (`hash`,`uid`),
         INDEX `seen_uid_date` (`seen`,`uid`,`date`),
         INDEX `uid_date` (`uid`,`date`),
         INDEX `uid_type_link` (`uid`,`type`,`link`(190))
@@ -1281,7 +1279,9 @@ CREATE TABLE IF NOT EXISTS `user-item` (
        `uid` mediumint unsigned NOT NULL DEFAULT 0 COMMENT 'User id',
        `hidden` boolean NOT NULL DEFAULT '0' COMMENT 'Marker to hide an item from the user',
        `ignored` boolean COMMENT 'Ignore this thread if set',
-        PRIMARY KEY(`uid`,`iid`)
+       `pinned` boolean COMMENT 'The item is pinned on the profile page',
+        PRIMARY KEY(`uid`,`iid`),
+        INDEX `uid_pinned` (`uid`,`pinned`)
 ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='User specific item data';
 
 --
index d5eb9c54186d12089d719963f78ca92888b9b1c8..8325e39b71442f6518054ac1293ea3657ae666ab 100644 (file)
@@ -2554,6 +2554,7 @@ function api_get_attachments(&$body)
 {
        $text = $body;
        $text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $text);
+       $text = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/ism", '[img]$1[/img]', $text);
 
        $URLSearchString = "^\[\]";
        $ret = preg_match_all("/\[img\]([$URLSearchString]*)\[\/img\]/ism", $text, $images);
index 84e47d34e3020bee2d1d78c6aaa3f47918b6a296..b7f8d91fc40cd37193851788f0cb0383e7949eaf 100644 (file)
@@ -801,10 +801,12 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
 /**
  * Fetch all comments from a query. Additionally set the newest resharer as thread owner.
  *
- * @param $thread_items Database statement with thread posts
+ * @param array   $thread_items Database statement with thread posts
+ * @param boolean $pinned       Is the item pinned?
+ *
  * @return array items with parents and comments
  */
-function conversation_fetch_comments($thread_items) {
+function conversation_fetch_comments($thread_items, $pinned) {
        $comments = [];
        $parentlines = [];
        $lineno = 0;
@@ -822,6 +824,10 @@ function conversation_fetch_comments($thread_items) {
                        $parentlines[] = $lineno;
                }
 
+               if ($row['gravity'] == GRAVITY_PARENT) {
+                       $row['pinned'] = $pinned;
+               }
+
                $comments[] = $row;
                $lineno++;
        }
@@ -872,7 +878,7 @@ function conversation_add_children(array $parents, $block_authors, $order, $uid)
 
                $thread_items = Item::selectForUser(local_user(), array_merge(Item::DISPLAY_FIELDLIST, ['contact-uid', 'gravity']), $condition, $params);
 
-               $comments = conversation_fetch_comments($thread_items);
+               $comments = conversation_fetch_comments($thread_items, $parent['pinned'] ?? false);
 
                if (count($comments) != 0) {
                        $items = array_merge($items, $comments);
@@ -1451,7 +1457,9 @@ function conv_sort(array $item_list, $order)
                }
        }
 
-       if (stristr($order, 'received')) {
+       if (stristr($order, 'pinned_received')) {
+               usort($parents, 'sort_thr_pinned_received');
+       } elseif (stristr($order, 'received')) {
                usort($parents, 'sort_thr_received');
        } elseif (stristr($order, 'commented')) {
                usort($parents, 'sort_thr_commented');
@@ -1488,6 +1496,24 @@ function conv_sort(array $item_list, $order)
        return $parents;
 }
 
+/**
+ * @brief usort() callback to sort item arrays by pinned and the received key
+ *
+ * @param array $a
+ * @param array $b
+ * @return int
+ */
+function sort_thr_pinned_received(array $a, array $b)
+{
+       if ($b['pinned'] && !$a['pinned']) {
+               return 1;
+       } elseif (!$b['pinned'] && $a['pinned']) {
+               return -1;
+       }
+
+       return strcmp($b['received'], $a['received']);
+}
+
 /**
  * @brief usort() callback to sort item arrays by the received key
  *
index a8090e35f8969a05b7ea784a57e8283f5ab6523b..391ba5014a753589f17c455c4f744b52aa43fc6f 100644 (file)
@@ -503,17 +503,9 @@ function notification($params)
 
        if ($show_in_notification_page) {
                Logger::log("adding notification entry", Logger::DEBUG);
-               do {
-                       $dups = false;
-                       $hash = Strings::getRandomHex();
-                       if (DBA::exists('notify', ['hash' => $hash])) {
-                               $dups = true;
-                       }
-               } while ($dups == true);
 
                /// @TODO One statement is enough
                $datarray = [];
-               $datarray['hash']  = $hash;
                $datarray['name']  = $params['source_name'];
                $datarray['name_cache'] = strip_tags(BBCode::convert($params['source_name']));
                $datarray['url']   = $params['source_link'];
@@ -536,7 +528,7 @@ function notification($params)
                }
 
                // create notification entry in DB
-               $fields = ['hash' => $datarray['hash'], 'name' => $datarray['name'], 'url' => $datarray['url'],
+               $fields = ['name' => $datarray['name'], 'url' => $datarray['url'],
                        'photo' => $datarray['photo'], 'date' => $datarray['date'], 'uid' => $datarray['uid'],
                        'link' => $datarray['link'], 'iid' => $datarray['iid'], 'parent' => $datarray['parent'],
                        'type' => $datarray['type'], 'verb' => $datarray['verb'], 'otype' => $datarray['otype'],
@@ -545,26 +537,6 @@ function notification($params)
 
                $notify_id = DBA::lastInsertId();
 
-               // we seem to have a lot of duplicate comment notifications due to race conditions, mostly from forums
-               // After we've stored everything, look again to see if there are any duplicates and if so remove them
-               $p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d) AND `link` = '%s' AND `uid` = %d ORDER BY `id`",
-                       intval(NOTIFY_TAGSELF),
-                       intval(NOTIFY_COMMENT),
-                       DBA::escape($params['link']),
-                       intval($params['uid'])
-               );
-               if ($p && (count($p) > 1)) {
-                       for ($d = 1; $d < count($p); $d ++) {
-                               DBA::delete('notify', ['id' => $p[$d]['id']]);
-                       }
-
-                       // only continue on if we stored the first one
-                       if ($notify_id != $p[0]['id']) {
-                               L10n::popLang();
-                               return false;
-                       }
-               }
-
                $itemlink = System::baseUrl().'/notify/view/'.$notify_id;
                $msg = Renderer::replaceMacros($epreamble, ['$itemlink' => $itemlink]);
                $msg_cache = format_notification_message($datarray['name_cache'], strip_tags(BBCode::convert($msg)));
index 5709df720fd94e694a17b268fbb867424f76b731..5ae4086b61741e48ce7145b555a06f073f2569de 100644 (file)
@@ -596,9 +596,9 @@ function settings_post(App $a)
 
        $fields = ['username' => $username, 'email' => $email, 'timezone' => $timezone,
                'allow_cid' => $str_contact_allow, 'allow_gid' => $str_group_allow, 'deny_cid' => $str_contact_deny, 'deny_gid' => $str_group_deny,
-               'notify-flags' => $notify, 'page-flags' => $notify, 'account-type' => $account_type, 'default-location' => $defloc,
+               'notify-flags' => $notify, 'page-flags' => $page_flags, 'account-type' => $account_type, 'default-location' => $defloc,
                'allow_location' => $allow_location, 'maxreq' => $maxreq, 'expire' => $expire, 'def_gid' => $def_gid, 'blockwall' => $blockwall,
-               'hidewall' => $hide_wall, 'blocktags' => $blocktags, 'unkmail' => $unkmail, 'cntunkmail' => $cntunkmail, 'language' => $language];
+               'hidewall' => $hidewall, 'blocktags' => $blocktags, 'unkmail' => $unkmail, 'cntunkmail' => $cntunkmail, 'language' => $language];
 
        if ($delete_openid) {
                $fields['openid'] = '';
@@ -1253,7 +1253,7 @@ function settings_content(App $a)
                '$importcontact' => L10n::t('Import Contacts'),
                '$importcontact_text' => L10n::t('Upload a CSV file that contains the handle of your followed accounts in the first column you exported from the old account.'),
                '$importcontact_button' => L10n::t('Upload File'),
-               '$importcontact_maxsize' => Config::get('system', max_csv_file_size, 30720), 
+               '$importcontact_maxsize' => Config::get('system', 'max_csv_file_size', 30720), 
                '$relocate' => L10n::t('Relocate'),
                '$relocate_text' => L10n::t("If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."),
                '$relocate_button' => L10n::t("Resend relocate message to contacts"),
index 1f96dab25b9403e56a793b2df6f2e50202fd6540..bea33b4841f96286ffd4c9ff4a86b93c5a0e23fa 100644 (file)
@@ -14,7 +14,7 @@ function update_contact_content(App $a)
        echo "<section>";
 
        if ($_GET["force"] == 1) {
-               $text = Contact::content(true);
+               $text = Contact::content([], true);
        } else {
                $text = '';
        }
index 72056703958ef0306251773c101d52c5371aea5c..85ca3d3c975def5d56395fb2dc79cf44980fc329 100644 (file)
@@ -28,7 +28,7 @@ function update_profile_content(App $a) {
         * on the client side and then swap the image back.
         */
 
-       $text = Profile::content($profile_uid);
+       $text = Profile::content([], $profile_uid);
 
        if (PConfig::get(local_user(), "system", "bandwidth_saver")) {
                $replace = "<br />".L10n::t("[Embedded content - reload page to view]")."<br />";
index 33a9b2fc2f33d91d0a2754f38448f15999322072..868520c0257b23e5b77c6fa6c7ec7a24f52d1fae 100644 (file)
@@ -63,6 +63,11 @@ class Module
         */
        private $module_class;
 
+       /**
+        * @var array The module parameters
+        */
+       private $module_parameters;
+
        /**
         * @var bool true, if the module is a backend module
         */
@@ -89,6 +94,14 @@ class Module
                return $this->module_class;
        }
 
+       /**
+        * @return array The module parameters extracted from the route
+        */
+       public function getParameters()
+       {
+               return $this->module_parameters;
+       }
+
        /**
         * @return bool True, if the current module is a backend module
         * @see Module::BACKEND_MODULES for a list
@@ -98,10 +111,11 @@ class Module
                return $this->isBackend;
        }
 
-       public function __construct(string $module = self::DEFAULT, string $moduleClass = self::DEFAULT_CLASS, bool $isBackend = false, bool $printNotAllowedAddon = false)
+       public function __construct(string $module = self::DEFAULT, string $moduleClass = self::DEFAULT_CLASS, array $moduleParameters = [], bool $isBackend = false, bool $printNotAllowedAddon = false)
        {
                $this->module               = $module;
                $this->module_class         = $moduleClass;
+               $this->module_parameters    = $moduleParameters;
                $this->isBackend            = $isBackend;
                $this->printNotAllowedAddon = $printNotAllowedAddon;
        }
@@ -129,7 +143,7 @@ class Module
 
                $isBackend = in_array($module, Module::BACKEND_MODULES);;
 
-               return new Module($module, $this->module_class, $isBackend, $this->printNotAllowedAddon);
+               return new Module($module, $this->module_class, [], $isBackend, $this->printNotAllowedAddon);
        }
 
        /**
@@ -148,6 +162,7 @@ class Module
                $printNotAllowedAddon = false;
 
                $module_class = null;
+               $module_parameters = [];
                /**
                 * ROUTING
                 *
@@ -156,6 +171,7 @@ class Module
                 **/
                try {
                        $module_class = $router->getModuleClass($args->getCommand());
+                       $module_parameters = $router->getModuleParameters();
                } catch (MethodNotAllowedException $e) {
                        $module_class = MethodNotAllowed::class;
                } catch (NotFoundException $e) {
@@ -185,7 +201,7 @@ class Module
                        $module_class = $module_class ?: PageNotFound::class;
                }
 
-               return new Module($this->module, $module_class, $this->isBackend, $printNotAllowedAddon);
+               return new Module($this->module, $module_class, $module_parameters, $this->isBackend, $printNotAllowedAddon);
        }
 
        /**
@@ -233,18 +249,18 @@ class Module
 
                Core\Hook::callAll($this->module . '_mod_init', $placeholder);
 
-               call_user_func([$this->module_class, 'init']);
+               call_user_func([$this->module_class, 'init'], $this->module_parameters);
 
                // "rawContent" is especially meant for technical endpoints.
                // This endpoint doesn't need any theme initialization or other comparable stuff.
-               call_user_func([$this->module_class, 'rawContent']);
+               call_user_func([$this->module_class, 'rawContent'], $this->module_parameters);
 
                if ($server['REQUEST_METHOD'] === 'POST') {
                        Core\Hook::callAll($this->module . '_mod_post', $post);
-                       call_user_func([$this->module_class, 'post']);
+                       call_user_func([$this->module_class, 'post'], $this->module_parameters);
                }
 
                Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder);
-               call_user_func([$this->module_class, 'afterpost']);
+               call_user_func([$this->module_class, 'afterpost'], $this->module_parameters);
        }
 }
index ea94f9cfef6a73ba37d7bdc08c206ec243447924..7af0bc8995473b452d7aaef051569c66a127b19b 100644 (file)
@@ -308,7 +308,7 @@ class Page implements ArrayAccess
                        $arr = ['content' => $content];
                        Hook::callAll($moduleClass . '_mod_content', $arr);
                        $content = $arr['content'];
-                       $arr     = ['content' => call_user_func([$moduleClass, 'content'])];
+                       $arr     = ['content' => call_user_func([$moduleClass, 'content'], $module->getParameters())];
                        Hook::callAll($moduleClass . '_mod_aftercontent', $arr);
                        $content .= $arr['content'];
                } catch (HTTPException $e) {
index f723321ac67cf883bfe8a2ab93c26c5e77c78b7c..c9ba21bb3538e2df167dc74176652f2e4ab659c4 100644 (file)
@@ -39,6 +39,11 @@ class Router
         */
        private $httpMethod;
 
+       /**
+        * @var array Module parameters
+        */
+       private $parameters = [];
+
        /**
         * @param array $server The $_SERVER variable
         * @param RouteCollector|null $routeCollector Optional the loaded Route collector
@@ -60,12 +65,21 @@ class Router
         *
         * @throws HTTPException\InternalServerErrorException In case of invalid configs
         */
-       public function addRoutes(array $routes)
+       public function loadRoutes(array $routes)
        {
                $routeCollector = (isset($this->routeCollector) ?
                        $this->routeCollector :
                        new RouteCollector(new Std(), new GroupCountBased()));
 
+               $this->addRoutes($routeCollector, $routes);
+
+               $this->routeCollector = $routeCollector;
+
+               return $this;
+       }
+
+       private function addRoutes(RouteCollector $routeCollector, array $routes)
+       {
                foreach ($routes as $route => $config) {
                        if ($this->isGroup($config)) {
                                $this->addGroup($route, $config, $routeCollector);
@@ -75,10 +89,6 @@ class Router
                                throw new HTTPException\InternalServerErrorException("Wrong route config for route '" . print_r($route, true) . "'");
                        }
                }
-
-               $this->routeCollector = $routeCollector;
-
-               return $this;
        }
 
        /**
@@ -91,15 +101,7 @@ class Router
        private function addGroup(string $groupRoute, array $routes, RouteCollector $routeCollector)
        {
                $routeCollector->addGroup($groupRoute, function (RouteCollector $routeCollector) use ($routes) {
-                       foreach ($routes as $route => $config) {
-                               if ($this->isGroup($config)) {
-                                       $this->addGroup($route, $config, $routeCollector);
-                               } elseif ($this->isRoute($config)) {
-                                       $routeCollector->addRoute($config[1], $route, $config[0]);
-                               }else {
-                                       throw new HTTPException\InternalServerErrorException("Wrong route config for route '" . print_r($route, true) . "'");
-                               }
-                       }
+                       $this->addRoutes($routeCollector, $routes);
                });
        }
 
@@ -169,13 +171,15 @@ class Router
 
                $cmd = '/' . ltrim($cmd, '/');
 
-               $dispatcher = new \FastRoute\Dispatcher\GroupCountBased($this->routeCollector->getData());
+               $dispatcher = new Dispatcher\GroupCountBased($this->routeCollector->getData());
 
                $moduleClass = null;
+               $this->parameters = [];
 
                $routeInfo  = $dispatcher->dispatch($this->httpMethod, $cmd);
                if ($routeInfo[0] === Dispatcher::FOUND) {
                        $moduleClass = $routeInfo[1];
+                       $this->parameters = $routeInfo[2];
                } elseif ($routeInfo[0] === Dispatcher::METHOD_NOT_ALLOWED) {
                        throw new HTTPException\MethodNotAllowedException(L10n::t('Method not allowed for this module. Allowed method(s): %s', implode(', ', $routeInfo[1])));
                } else {
@@ -184,4 +188,14 @@ class Router
 
                return $moduleClass;
        }
+
+       /**
+        * Returns the module parameters.
+        *
+        * @return array parameters
+        */
+       public function getModuleParameters()
+       {
+               return $this->parameters;
+       }
 }
index 5185771d1c51294f0f921c1e13a4cc36bf29a991..be53289e52c41f045fc27ac1ea11a5454786acc6 100644 (file)
@@ -22,7 +22,7 @@ abstract class BaseModule extends BaseObject
         * Extend this method if you need to do any shared processing before both
         * content() or post()
         */
-       public static function init()
+       public static function init(array $parameters = [])
        {
        }
 
@@ -32,7 +32,7 @@ abstract class BaseModule extends BaseObject
         * Extend this method if the module is supposed to return communication data,
         * e.g. from protocol implementations.
         */
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                // echo '';
                // exit;
@@ -47,7 +47,7 @@ abstract class BaseModule extends BaseObject
         *
         * @return string
         */
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $o = '';
 
@@ -60,7 +60,7 @@ abstract class BaseModule extends BaseObject
         * Extend this method if the module is supposed to process POST requests.
         * Doesn't display any content
         */
-       public static function post()
+       public static function post(array $parameters = [])
        {
                // $a = self::getApp();
                // $a->internalRedirect('module');
@@ -71,9 +71,8 @@ abstract class BaseModule extends BaseObject
         *
         * Unknown purpose
         */
-       public static function afterpost()
+       public static function afterpost(array $parameters = [])
        {
-
        }
 
        /*
index 1dffb05073b70f7f7f30c6fe35b86894986147b8..167a0539758aa2af5e0e5217e1a4d54aced32c25 100644 (file)
@@ -1680,7 +1680,7 @@ class BBCode extends BaseObject
                $text = str_replace(["\r","\n"], ['<br />', '<br />'], $text);
 
                // Remove all hashtag addresses
-               if ((!$try_oembed || $simple_html) && !in_array($simple_html, [3, 7, 9])) {
+               if ($simple_html && !in_array($simple_html, [3, 7, 9])) {
                        $text = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '$1$3', $text);
                } elseif ($simple_html == 3) {
                        // The ! is converted to @ since Diaspora only understands the @
index a0b23a5419d2e2d453f9537468ffbe048aedce5c..950f8faad213868f028e59cf5802262157524b21 100644 (file)
@@ -35,24 +35,24 @@ class LegacyModule extends BaseModule
                require_once $file_path;
        }
 
-       public static function init()
+       public static function init(array $parameters = [])
        {
-               self::runModuleFunction('init');
+               self::runModuleFunction('init', $parameters);
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               return self::runModuleFunction('content');
+               return self::runModuleFunction('content', $parameters);
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               self::runModuleFunction('post');
+               self::runModuleFunction('post', $parameters);
        }
 
-       public static function afterpost()
+       public static function afterpost(array $parameters = [])
        {
-               self::runModuleFunction('afterpost');
+               self::runModuleFunction('afterpost', $parameters);
        }
 
        /**
@@ -62,7 +62,7 @@ class LegacyModule extends BaseModule
         * @return string
         * @throws \Exception
         */
-       private static function runModuleFunction($function_suffix)
+       private static function runModuleFunction($function_suffix, array $parameters = [])
        {
                $function_name = static::$moduleName . '_' . $function_suffix;
 
@@ -70,7 +70,7 @@ class LegacyModule extends BaseModule
                        $a = self::getApp();
                        return $function_name($a);
                } else {
-                       return parent::{$function_suffix}();
+                       return parent::{$function_suffix}($parameters);
                }
        }
 }
index 9501c8e5d240519caed3781703baaa95e3a2e0bf..159fac455b9dd96f33c75da491fab12bda68b351 100644 (file)
@@ -58,7 +58,7 @@ class Item extends BaseObject
                'author-id', 'author-link', 'author-name', 'author-avatar', 'author-network',
                'owner-id', 'owner-link', 'owner-name', 'owner-avatar', 'owner-network',
                'contact-id', 'contact-uid', 'contact-link', 'contact-name', 'contact-avatar',
-               'writable', 'self', 'cid', 'alias',
+               'writable', 'self', 'cid', 'alias', 'pinned',
                'event-id', 'event-created', 'event-edited', 'event-start', 'event-finish',
                'event-summary', 'event-desc', 'event-location', 'event-type',
                'event-nofinish', 'event-adjust', 'event-ignore', 'event-id',
@@ -114,6 +114,80 @@ class Item extends BaseObject
                return self::$legacy_mode;
        }
 
+       /**
+        * Set the pinned state of an item
+        *
+        * @param integer $iid    Item ID
+        * @param integer $uid    User ID
+        * @param boolean $pinned Pinned state
+        */
+       public static function setPinned(int $iid, int $uid, bool $pinned)
+       {
+               DBA::update('user-item', ['pinned' => $pinned], ['iid' => $iid, 'uid' => $uid], true);
+       }
+
+       /**
+        * Get the pinned state
+        *
+        * @param integer $iid Item ID
+        * @param integer $uid User ID
+        *
+        * @return boolean pinned state
+        */
+       public static function getPinned(int $iid, int $uid)
+       {
+               $useritem = DBA::selectFirst('user-item', ['pinned'], ['iid' => $iid, 'uid' => $uid]);
+               if (!DBA::isResult($useritem)) {
+                       return false;
+               }
+               return (bool)$useritem['pinned'];
+       }
+
+       /**
+        * @brief Select pinned rows from the item table for a given user
+        *
+        * @param integer $uid       User ID
+        * @param array   $selected  Array of selected fields, empty for all
+        * @param array   $condition Array of fields for condition
+        * @param array   $params    Array of several parameters
+        *
+        * @return boolean|object
+        * @throws \Exception
+        */
+       public static function selectPinned(int $uid, array $selected = [], array $condition = [], $params = [])
+       {
+               $useritems = DBA::select('user-item', ['iid'], ['uid' => $uid, 'pinned' => true]);
+               if (!DBA::isResult($useritems)) {
+                       return $useritems;
+               }
+
+               $pinned = [];
+               while ($useritem = self::fetch($useritems)) {
+                       $pinned[] = $useritem['iid'];
+               }
+               DBA::close($useritems);
+
+               if (empty($pinned)) {
+                       return [];
+               }
+
+               if (empty($condition) || !is_array($condition)) {
+                       $condition = ['iid' => $pinned];
+               } else {
+                       reset($condition);
+                       $first_key = key($condition);
+                       if (!is_int($first_key)) {
+                               $condition['iid'] = $pinned;
+                       } else {
+                               $values_string = substr(str_repeat("?, ", count($pinned)), 0, -2);
+                               $condition[0] = '(' . $condition[0] . ") AND `iid` IN (" . $values_string . ")";
+                               $condition = array_merge($condition, $pinned);
+                       }
+               }
+
+               return self::selectThreadForUser($uid, $selected, $condition, $params);
+       }
+
        /**
         * @brief returns an activity index from an activity string
         *
@@ -585,7 +659,7 @@ class Item extends BaseObject
                        'iaid' => 'internal-iaid'];
 
                if ($usermode) {
-                       $fields['user-item'] = ['ignored' => 'internal-user-ignored'];
+                       $fields['user-item'] = ['pinned', 'ignored' => 'internal-user-ignored'];
                }
 
                $fields['item-activity'] = ['activity', 'activity' => 'internal-activity'];
index 10e80a4fb5bc8daad21d8abbab828ea1137600fc..db3c4d429bb29680989524d419ae4f4d0b939e40 100644 (file)
@@ -715,4 +715,25 @@ class Photo extends BaseObject
 
                return DBA::exists('photo', ['resource-id' => $guid]);
        }
+
+       /**
+        * Tests if the link points to a locally stored picture page
+        *
+        * @param string $name Page link
+        * @return boolean
+        * @throws \Exception
+        */
+       public static function isLocalPage($name)
+       {
+               $a = \get_app();
+               $base = $a->getBaseURL();
+
+               $guid = str_replace(Strings::normaliseLink($base), '', Strings::normaliseLink($name));
+               $guid = preg_replace("=/photos/.*/image/(.*)=ism", '$1', $guid);
+               if (empty($guid)) {
+                       return false;
+               }
+
+               return DBA::exists('photo', ['resource-id' => $guid]);
+       }
 }
index 2e2a9e496d85ac5bbf9810f40429ed57058d1747..8e7ee0243a7e1b4faab42b39c42830b423704acc 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\BaseModule;
  */
 class AccountManagementControlDocument extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $output = [
                        'version' => 1,
index 1c2500a224e6cc6dd0e2fcffa0200650cb8c5694..a3577da320b541952438d2ec4c152b18df019f3b 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\Core\System;
  */
 class Acctlink extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $addr = trim($_GET['addr'] ?? '');
 
index 1965102f03ef5fe4d8abac2420baf47a96d5d0c8..a196e7834f2ec49373b14e04a6305f445e821842 100644 (file)
@@ -11,9 +11,9 @@ use Friendica\Util\Strings;
 
 class Details extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                $a = self::getApp();
 
@@ -35,9 +35,9 @@ class Details extends BaseAdminModule
                $a->internalRedirect('admin/addons');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index eed47defb4a973fc43581f080de1930040072848..f327f0dc92ef906fee8e64cab5b2faa82f28e549 100644 (file)
@@ -9,9 +9,9 @@ use Friendica\Module\BaseAdminModule;
 
 class Index extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index bf1c7bc081d86cfec1dacb12a2c681dbbeb130bb..38ae233715b95b2afc062f59c7a5315e2d7cb87a 100644 (file)
@@ -11,9 +11,9 @@ use Friendica\Model;
 
 class Contact extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                $contact_url  = $_POST['contact_url'] ?? '';
                $block_reason = $_POST['contact_block_reason'] ?? '';
@@ -41,9 +41,9 @@ class Contact extends BaseAdminModule
                self::getApp()->internalRedirect('admin/blocklist/contact');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 384e346b0d67c5db1f26d6d2163e48b8a1688e7d..53647e64efdc0a3bc595c167db4bca11a7905931 100644 (file)
@@ -10,9 +10,9 @@ use Friendica\Util\Strings;
 
 class Server extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                if (empty($_POST['page_blocklist_save']) && empty($_POST['page_blocklist_edit'])) {
                        return;
@@ -50,9 +50,9 @@ class Server extends BaseAdminModule
                self::getApp()->internalRedirect('admin/blocklist/server');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 4c29eea34f550e15bb64c72dcc457096dc93c054..0d68a564813019c4b92078e88d8d0c8853fd06db 100644 (file)
@@ -12,9 +12,9 @@ use Friendica\Module\BaseAdminModule;
 
 class DBSync extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 328e7e68b57c1e2d91d5c3fa32df7972a995d6be..85683d238f3bab32c5d14022bf35943ebd356cd9 100644 (file)
@@ -10,9 +10,9 @@ use Friendica\Module\BaseAdminModule;
 
 class Features extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                parent::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features');
 
@@ -42,9 +42,9 @@ class Features extends BaseAdminModule
                self::getApp()->internalRedirect('admin/features');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $arr = [];
                $features = Feature::get(false);
index 8776f21e194bacd7b881ce96edb8bc1444faf005..35afb214485f7a05d41040aa6ff763c99f2a615b 100644 (file)
@@ -10,9 +10,9 @@ use Friendica\Module\BaseAdminModule;
 
 class Federation extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                // get counts on active friendica, diaspora, redmatrix, hubzilla, gnu
                // social and statusnet nodes this node is knowing
index 766e65c9a0eeccc38c2b9060fd7a2901869c61d3..f5f4687cec51a33cf79d2a06585f0c6538ca7adc 100644 (file)
@@ -10,9 +10,9 @@ use Friendica\Util\Strings;
 
 class Delete extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                if (empty($_POST['page_deleteitem_submit'])) {
                        return;
@@ -36,9 +36,9 @@ class Delete extends BaseAdminModule
                self::getApp()->internalRedirect('admin/item/delete');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $t = Renderer::getMarkupTemplate('admin/item/delete.tpl');
 
index 6da9eec6d320da91c94dc261f1db3e3abacd034e..9c41e60f4784aafc97ea6ec271e707440aaec254 100644 (file)
@@ -13,9 +13,9 @@ use Friendica\Module\BaseAdminModule;
 class Source extends BaseAdminModule
 
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index be060e05359baf2012ffa540e62ef1a41ad918fe..42f3435f6506724453925c9adab32df3f76d783a 100644 (file)
@@ -11,9 +11,9 @@ use Psr\Log\LogLevel;
 
 class Settings extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                if (!empty($_POST['page_logs'])) {
                        parent::checkFormSecurityTokenRedirectOnError('/admin/logs', 'admin_logs');
@@ -37,9 +37,9 @@ class Settings extends BaseAdminModule
                self::getApp()->internalRedirect('admin/logs');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index b66a6781e50836cc9dbfb5a32606dc0a8e0fe1c0..51e083473498cf5015c879372e3b21eeadbe209c 100644 (file)
@@ -10,9 +10,9 @@ use Friendica\Util\Strings;
 
 class View extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $t = Renderer::getMarkupTemplate('admin/logs/view.tpl');
                $f = Config::get('system', 'logfile');
index b912117dc1446aff732bf5430f904048f5ebaa27..3ac7421816bdbd59f4a70bd758dda5d0c9d65092 100644 (file)
@@ -6,9 +6,9 @@ use Friendica\Module\BaseAdminModule;
 
 class PhpInfo extends BaseAdminModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
-               parent::rawContent();
+               parent::rawContent($parameters);
 
                phpinfo();
                exit();
index aadd5b768d42fb9ce5928ce107d9026496134bef..9ce44ff15a37345c922655b179159d14cff7033a 100644 (file)
@@ -19,9 +19,9 @@ use Friendica\Util\DateTimeFormat;
  */
 class Queue extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 18a1cbf2a835f5d214e1731a478945c52672e492..4a02e98b82c34c0835428b69dcf7bd49278544bd 100644 (file)
@@ -21,9 +21,9 @@ require_once __DIR__ . '/../../../boot.php';
 
 class Site extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                self::checkFormSecurityTokenRedirectOnError('/admin/site', 'admin_site');
 
@@ -412,9 +412,9 @@ class Site extends BaseAdminModule
                $a->internalRedirect('admin/site' . $active_panel);
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index cfd9aa984041edc7e2d7ed389601f9be3e27eeef..e10533ee9496530895a6cb373953262fd29afad2 100644 (file)
@@ -20,9 +20,9 @@ use Friendica\Util\Network;
 
 class Summary extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 3750e96070ad9fd7514f63f34c8adc1c3f49ef76..912adc4297383bf26e54726acfe50e3845ef6a32 100644 (file)
@@ -11,9 +11,9 @@ use Friendica\Util\Strings;
 
 class Details extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                $a = self::getApp();
 
@@ -39,9 +39,9 @@ class Details extends BaseAdminModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 904d9eb46e8dcc1f6098b624c745bdba0388e1eb..70a12dadd26edf45ade0f99604a774d145c80816 100644 (file)
@@ -9,7 +9,7 @@ use Friendica\Util\Strings;
 
 class Embed extends BaseAdminModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -23,9 +23,9 @@ class Embed extends BaseAdminModule
                }
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                $a = self::getApp();
 
@@ -53,9 +53,9 @@ class Embed extends BaseAdminModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index af2d1f28e11e0ae91e6b90ab79d2afaf93251c8c..8f7843e293eb2b7ed20851f2269b2b3a472d6336 100644 (file)
@@ -11,9 +11,9 @@ use Friendica\Util\Strings;
 
 class Index extends BaseAdminModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index 4eb6e3426c477358567d034f87dbf2667709e5b4..6fbdc21e8f4b3fdbcaef42cbee9d0f9e8b7c3b43 100644 (file)
@@ -9,9 +9,9 @@ use Friendica\Module\BaseAdminModule;
 
 class Tos extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                parent::checkFormSecurityTokenRedirectOnError('/admin/tos', 'admin_tos');
 
@@ -32,9 +32,9 @@ class Tos extends BaseAdminModule
                self::getApp()->internalRedirect('admin/tos');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $tos = new \Friendica\Module\Tos();
                $t = Renderer::getMarkupTemplate('admin/tos.tpl');
index a949c9331b51c37df41e8196850dcce11f115767..84332c979f79462414e8dde7bb4836e1bf150e45 100644 (file)
@@ -15,9 +15,9 @@ use Friendica\Util\Temporal;
 
 class Users extends BaseAdminModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
-               parent::post();
+               parent::post($parameters);
 
                $a = self::getApp();
 
@@ -131,9 +131,9 @@ class Users extends BaseAdminModule
                $a->internalRedirect('admin/users');
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                $a = self::getApp();
 
index e5fbe697128d576374fd6fed2d9b2e75da3ee3ab..0d9bf598580dee6ffe4f4851bb76ae15fa1a1a9b 100644 (file)
@@ -16,7 +16,7 @@ use Friendica\Util\Proxy as ProxyUtils;
  */
 class AllFriends extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $app = self::getApp();
 
index efba071aa3010b3a3cd5f6a0b345401136053b49..bc099ce8bbb8a5b6fd854f506ee131b6e2228113 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Core\Renderer;
  */
 class Apps extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $privateaddons = Config::get('config', 'private_addons');
                if ($privateaddons === "1" && !local_user()) {
@@ -21,7 +21,7 @@ class Apps extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $apps = Nav::getAppMenu();
 
index e9af90facc3fb1b0cc053acb93909e238c962e91..f67104015d768622e2740b56517443b71915ca55 100644 (file)
@@ -20,7 +20,7 @@ class Attach extends BaseModule
        /**
         * @brief Return to user an attached file given the id
         */
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
                if ($a->argc != 2) {
index 6802d09c18b89f516b7ab0233ad391bcb100bd9d..01aa00d42392cee738a954649054d51ff8acca8a 100644 (file)
@@ -23,7 +23,7 @@ require_once 'boot.php';
  */
 abstract class BaseAdminModule extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!is_site_admin()) {
                        return;
@@ -35,7 +35,7 @@ abstract class BaseAdminModule extends BaseModule
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                if (!is_site_admin()) {
                        return '';
@@ -48,7 +48,7 @@ abstract class BaseAdminModule extends BaseModule
                return '';
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index 4b5e9bf9150c997efe5f1444449baf8cc9c45d6b..4900de42e6d9a1b2e668ac9c96e81f249191a68b 100644 (file)
@@ -9,7 +9,7 @@ use Friendica\Core\Renderer;
 
 class BaseSettingsModule extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index 92130eeff1510d7adc5c5707db9525aaf2379c54..a50f23c256963e160fb4d501b778cad28fee3e47 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\Strings;
  */
 class Bookmarklet extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $_GET['mode'] = 'minimal';
 
index c8bbbfe2e69a1d45b9467670375fd235d14e682e..ded5ffbe2343ec2e15161e1425b9263aca27241a 100644 (file)
@@ -75,7 +75,7 @@ class Contact extends BaseModule
                $a->internalRedirect('contact');
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -240,7 +240,7 @@ class Contact extends BaseModule
                Model\Contact::remove($orig_record['id']);
        }
 
-       public static function content($update = 0)
+       public static function content(array $parameters = [], $update = 0)
        {
                if (!local_user()) {
                        return Login::form($_SERVER['REQUEST_URI']);
index 20290e0acae8c5ca0ff558b19162a88fb71d8452..a72a7f0a22a02fb2a106328d1a7bf9e797b90eed 100644 (file)
@@ -18,7 +18,7 @@ use Friendica\Util\Proxy;
  */
 class Hovercard extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $contact_url = $_REQUEST['url'] ?? '';
 
index b0a6545c38b0ca8d875595657353d1f97d1a7f52..c536dcaa5e8fae16f5d77215a91d2853bc08b2c4 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Core\Renderer;
  */
 class Credits extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                /* fill the page with credits */
                $credits_string = file_get_contents('CREDITS.txt');
index cf1f869552e6116b0c3bb097c97120bdafdb5851..17187a37c7b0d4af9bb56f4e577d3a71cea65d07 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\XML;
  */
 class Babel extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                function visible_whitespace($s)
                {
index cc0be643b3030b858230b3248d8c9ed1af9f7e1a..c764c900032d514818488cec05c82bae3f66137a 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\Network;
  */
 class Feed extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        info(L10n::t('You must be logged in to use this module'));
@@ -22,7 +22,7 @@ class Feed extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $result = [];
                if (!empty($_REQUEST['url'])) {
index fead2553585bf6162665c64ba0f82a2ecc8f7d76..f166fb0a2782a9f62b51a9e6ad15a33313f12452 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Network\HTTPException;
  */
 class ItemBody extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\UnauthorizedException(L10n::t('Access denied.'));
index 197149837ae5f161f2e4d6caaf1b271b669b3921..0d78f08d796a990ac0c5099983421f3c44bb807a 100644 (file)
@@ -10,7 +10,7 @@ use Friendica\Util\Temporal;
 
 class Localtime extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $time = ($_REQUEST['time'] ?? '') ?: 'now';
 
@@ -21,7 +21,7 @@ class Localtime extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $app = self::getApp();
 
index 6762c5b82c99bc87bba154da10d283338ad5334e..85c5f900fad4fc2d3c927665eb61b8d435c8e3fb 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Network\Probe as NetworkProbe;
  */
 class Probe extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        $e           = new HTTPException\ForbiddenException(L10n::t('Only logged in users are permitted to perform a probing.'));
index 18cf4bb2a7386cbc86df382b8265a5097bf80d09..90da40bf09d12d5e15a289b5eea203965e570b3b 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Network\Probe;
  */
 class WebFinger extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        $e           = new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Only logged in users are permitted to perform a probing.'));
index 77baefeaa5871321adfd47418476c4c1ad0872a8..d2930317c08ce638aa22b54e10dec3485a33265d 100644 (file)
@@ -17,7 +17,7 @@ use Friendica\Network\HTTPException\ForbiddenException;
  */
 class Delegation extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -92,7 +92,7 @@ class Delegation extends BaseModule
                // NOTREACHED
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        throw new ForbiddenException(L10n::t('Permission denied.'));
index 467d64566b769048d1f5a106866afcfa7c49754d..6e3469c292c279366b973923d8c3259be9926a20 100644 (file)
@@ -17,7 +17,7 @@ use Friendica\Util\Strings;
  */
 class Fetch extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
index c787b5f97068d0164319aba888e7c3149f5c5509..72b060a8489b0580779c1d69c899e8529e091673 100644 (file)
@@ -21,13 +21,13 @@ class Receive extends BaseModule
        /** @var LoggerInterface */
        private static $logger;
 
-       public static function init()
+       public static function init(array $parameters = [])
        {
                /** @var LoggerInterface $logger */
                self::$logger = self::getClass(LoggerInterface::class);
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                /** @var Configuration $config */
                $config = self::getClass(Configuration::class);
index 1cdd971e8ac21c8753c0b158112b16635473b46d..f24c0665074d4f4f942c9aad427edd76e0ad45a9 100644 (file)
@@ -21,7 +21,7 @@ use Friendica\Util\Strings;
  */
 class Directory extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
index 49ecfed96c166cd6d6676f77816ec1a100e77e43..ba2153762754c24d9f3e59a8437d87d8c7156c4c 100644 (file)
@@ -23,7 +23,7 @@ use Friendica\Protocol\OStatus;
  */
 class Feed extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index 1dcc2e41e20a0f3a2a2b67bcc4d54c0e1f64bcb2..0246f1db36db4c274b7dd0dd34e3bb997cea1ec0 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Util\XML;
  */
 class RemoveTag extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\ForbiddenException();
index e8e311268149575843312fe9ed6e6bd88d22e386..7f0da83bceaf12f017465199cbf116be4d50fd1d 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\XML;
  */
 class SaveTag extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        info(L10n::t('You must be logged in to use this module'));
@@ -22,7 +22,7 @@ class SaveTag extends BaseModule
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
                $logger = $a->getLogger();
index f4f2a877c4f55fb1833f443ead4ebf0b304b3f44..d1a0a5dda573183aba2f5f944fe370f5d3140b79 100644 (file)
@@ -18,7 +18,7 @@ use Friendica\Util\DateTimeFormat;
  */
 class FollowConfirm extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $a = self::getApp();
 
index 5bd3fe0ce2ef238b165fa52999c491400ecf4bc8..c2096cd052b28b6d99dd88e83860ce58bce57bbc 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Protocol\ActivityPub;
  */
 class Followers extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
index 5b5f4dc986d491d5c086f1f459ffef8bf5645e1e..8eaa1835c2eb3eebb8c0080d70a40cce16ba5681 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Protocol\ActivityPub;
  */
 class Following extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
index ae8ea1496831699ec1df175bbcc3b5da4ae818cf..ee8b2206119d53262c354de26721d1addbf3df6a 100644 (file)
@@ -15,7 +15,7 @@ use Friendica\Model\User;
  */
 class Friendica extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
@@ -88,7 +88,7 @@ class Friendica extends BaseModule
                ]);
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
index d8d5fb1c592086e9e2574fb246fbdf8eb08a5992..4c7672c01a7285d855547028cfb8072f7fd9c0be 100644 (file)
@@ -19,7 +19,7 @@ require_once 'boot.php';
 
 class Group extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -132,7 +132,7 @@ class Group extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $change = false;
 
index 8d2d280a59385060052423671088aa6f242ea1c7..b4f9e9766165eb0d400bf71cc88ef3d5d7794306 100644 (file)
@@ -8,7 +8,7 @@ use Friendica\Network\HTTPException;
 
 class MethodNotAllowed extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                throw new HTTPException\MethodNotAllowedException(L10n::t('Method Not Allowed.'));
        }
index d848905c5e2e4857b5b6b213202a403fa5f95ad9..c79d9c2778521d0e24c1b21fea021ca30a091e3e 100644 (file)
@@ -8,7 +8,7 @@ use Friendica\Network\HTTPException;
 
 class PageNotFound extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                throw new HTTPException\NotFoundException(L10n::t('Page not found.'));
        }
index 411da5ce5eafd0300b0a1d38eb318d59acb53792..a460ae1d98887a25562e6299d2f91e9b5347177b 100644 (file)
@@ -15,7 +15,7 @@ use Friendica\Util\Strings;
 class Hashtag extends BaseModule
 {
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $result = [];
 
index ddf5b06d8337398015598897d4df0ae591367623..3b3ce58704663cc6422e5da1284fafe04d5e0224 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\Strings;
  */
 class Help extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                Nav::setSelected('help');
 
index 5a1dccde2a7bd0e47c3e8dc55941454d3ff6949f..e6fb8c349669b241f53b702300c65a22da60f4d1 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Core\Renderer;
  */
 class Home extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
index 2cc273b139910c647a141b42bcf484fcdcd58fee..8ab169567e021087782b2655935b53f9f0f2de42 100644 (file)
@@ -19,7 +19,7 @@ use Friendica\Util\Network;
  */
 class Inbox extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
index 39d6a062afd438cb47437da531660251e4117f14..71547ad51e4778250fcf84ad2fbc43224fd31cf5 100644 (file)
@@ -46,7 +46,7 @@ class Install extends BaseModule
         */
        private static $installer;
 
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -76,7 +76,7 @@ class Install extends BaseModule
                self::$currentWizardStep = ($_POST['pass'] ?? '') ?: self::SYSTEM_CHECK;
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $a           = self::getApp();
                $configCache = $a->getConfigCache();
@@ -149,7 +149,7 @@ class Install extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a           = self::getApp();
                $configCache = $a->getConfigCache();
index 7860c703c116239074ba0de762993f476a9147cf..cd616001bef04ddfe7f24fb77c7686db7bc0d3e2 100644 (file)
@@ -16,7 +16,7 @@ use Friendica\Util\Strings;
  */
 class Invite extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
@@ -104,7 +104,7 @@ class Invite extends BaseModule
                notice(L10n::tt('%d message sent.', '%d messages sent.', $total) . EOL);
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
index c44e4c61ab8f66eef3afc77276f43569fa2a9d19..ad0a2d805cc6fd70199b949f87f575cd9edb8be2 100644 (file)
@@ -21,7 +21,7 @@ use Friendica\Util\Crypto;
 
 class Compose extends BaseModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!empty($_REQUEST['body'])) {
                        $_REQUEST['return'] = 'network';
@@ -32,7 +32,7 @@ class Compose extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        return Login::form('compose', false);
index 6a28310b401146e8a4db4f5c749575d8b244a7c5..4590bc8c84c80e3cadc8e2a2962fe7462ce7837f 100644 (file)
@@ -16,7 +16,7 @@ use Friendica\Network\HTTPException;
  */
 class Ignore extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                /** @var L10n $l10n */
                $l10n = self::getClass(L10n::class);
index cc450dd9d0d381e2f7c2df211eb04ff1cc727135..1c98cbc38c6ba6ef0a4c8c0c2df043694f7d3a14 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Util\Strings;
  */
 class Like extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                if (!Session::isAuthenticated()) {
                        throw new HTTPException\ForbiddenException();
index 0048fefaaebcb6a638b2b344bb082c4aa2d21175..c84af17ccb99483ce42b2347f6215df2e0cb046c 100644 (file)
@@ -30,7 +30,7 @@ use LightOpenID;
  */
 class Login extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -41,7 +41,7 @@ class Login extends BaseModule
                return self::form(Session::get('return_path'), intval(Config::get('config', 'register_policy')) !== \Friendica\Module\Register::CLOSED);
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                $openid_identity = Session::get('openid_identity');
                $openid_server = Session::get('openid_server');
index bf6a39e19f961a55a38a64b2e9d8ee5a4ecaa77c..49ede01a3d7a1544c32417ff1606ec36a6ff0cdd 100644 (file)
@@ -23,7 +23,7 @@ class Logout extends BaseModule
        /**
         * @brief Process logout requests
         */
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $visitor_home = null;
                if (remote_user()) {
index b04ea80c04bdd73f84ae90a4b515fa7f02c05dd5..0f610d123c3c0b7a1a2dc9795f9f2c96ddc3b2f4 100644 (file)
@@ -20,7 +20,7 @@ use Friendica\Util\Strings;
  */
 class Magic extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $a = self::getApp();
                $ret = ['success' => false, 'url' => '', 'message' => ''];
index 24140bb3512e981cdfb6e466e86043357d3d6eb7..056bde7325db78718ae8ca780d38f97d9b30feec 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Util\Strings;
  */
 class Maintenance extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $config = self::getApp()->getConfig();
 
index 9dadcf0f76206fa10dc3166939de27b3d92352d2..9e09740594c9a73156d9bc801c34a8d68d29a519 100644 (file)
@@ -7,7 +7,7 @@ use Friendica\Core\Renderer;
 
 class Manifest extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
index 3261ef690241b33ddbd47696fb2265c11a1b2a0b..28f23196f9a44417f5aed95b5f51d66d0ec5b169 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Core\System;
  */
 class NodeInfo extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $config = self::getApp()->getConfig();
 
@@ -22,7 +22,7 @@ class NodeInfo extends BaseModule
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
index bad0900ea2540ba65bb4542f0a576fc3d9164c69..721a89a6942a3206aa85ade4354b695c6c02babb 100644 (file)
@@ -14,14 +14,14 @@ use Friendica\Network\HTTPException;
  */
 class Notify extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\UnauthorizedException(L10n::t('Permission denied.'));
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -45,7 +45,7 @@ class Notify extends BaseModule
         * @return string|void
         * @throws HTTPException\InternalServerErrorException
         */
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index 2104e8042fd98e3c2cc9f7bc57eb9782a7627826..5538be18889910c035ec0c83275ef69d6e3b7035 100644 (file)
@@ -15,7 +15,7 @@ use Friendica\Protocol\ActivityPub;
  */
 class Objects extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
index 0107782122b5c0c877025d09805eca4a22794315..f9d928428169d4def9383fb56c08272af40e2d1b 100644 (file)
@@ -17,7 +17,7 @@ use Friendica\Util\Strings;
  */
 class Oembed extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index ff005bd56b6d4a9c31743464e16ed86112ac8a67..309db6af950c5b2ae5f64313e5627377a21bd659 100644 (file)
@@ -16,7 +16,7 @@ class OpenSearch extends BaseModule
        /**
         * @throws \Exception
         */
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                header('Content-type: application/opensearchdescription+xml');
 
index 4fc05076310ad2593fb6dff4d469b9c243eb6da1..c2024151e5b0fe7059a51d3077aaa43f944c5204 100644 (file)
@@ -14,7 +14,7 @@ use Friendica\Protocol\ActivityPub;
  */
 class Outbox extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $a = self::getApp();
 
index 7243c111344b4d159e5fa6d5a86b701936ecd241..ca4eec47ffad0f2cfd94624b15cd9d638ef47ac7 100644 (file)
@@ -27,7 +27,7 @@ use Friendica\Util\Strings;
  */
 class Owa extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
 
                $ret = [ 'success' => false ];
index 4ec4f204c3c4efee2973ca7f94454fbe479ba9a9..9987c38f517041224be88a2895ed961e0b83dbb9 100644 (file)
@@ -23,7 +23,7 @@ class Photo extends BaseModule
         * Fetch a photo or an avatar, in optional size, check for permissions and
         * return the image
         */
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $a = self::getApp();
                // @TODO: Replace with parameter from router
diff --git a/src/Module/Pinned.php b/src/Module/Pinned.php
new file mode 100644 (file)
index 0000000..e4c0d2b
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Model\Item;
+
+/**
+ * Toggle pinned items
+ */
+class Pinned extends BaseModule
+{
+       public static function rawContent(array $parameters = [])
+       {
+               if (!local_user()) {
+                       throw new \Friendica\Network\HTTPException\ForbiddenException();
+               }
+
+               if (empty($parameters['item'])) {
+                       throw new \Friendica\Network\HTTPException\BadRequestException();
+               }
+
+               $itemId = intval($parameters['item']);
+
+               $pinned = !Item::getPinned($itemId, local_user());
+
+               Item::setPinned($itemId, local_user(), $pinned);
+
+               // See if we've been passed a return path to redirect to
+               $returnPath = $_REQUEST['return'] ?? '';
+               if (!empty($returnPath)) {
+                       $rand = '_=' . time() . (strpos($returnPath, '?') ? '&' : '?') . 'rand';
+                       self::getApp()->internalRedirect($returnPath . $rand);
+               }
+
+               // the json doesn't really matter, it will either be 0 or 1
+               echo json_encode((int)$pinned);
+               exit();
+       }
+}
index f38c77f2cdcb5d8ba79d8484af15f8325da4e7e9..aab5918567fbab92582531c7967e1ced93bc32d1 100644 (file)
@@ -33,7 +33,7 @@ class Profile extends BaseModule
        public static $which = '';
        public static $profile = 0;
 
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $a = self::getApp();
 
@@ -51,7 +51,7 @@ class Profile extends BaseModule
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                if (ActivityPub::isRequest()) {
                        $user = DBA::selectFirst('user', ['uid'], ['nickname' => self::$which]);
@@ -75,7 +75,7 @@ class Profile extends BaseModule
                }
        }
 
-       public static function content($update = 0)
+       public static function content(array $parameters = [], $update = 0)
        {
                $a = self::getApp();
 
@@ -177,7 +177,7 @@ class Profile extends BaseModule
                }
 
                if (!$update) {
-            $tab = Strings::escapeTags(trim($_GET['tab'] ?? ''));
+                       $tab = Strings::escapeTags(trim($_GET['tab'] ?? ''));
 
                        $o .= ProfileModel::getTabs($a, $tab, $is_owner, $a->profile['nickname']);
 
@@ -349,7 +349,13 @@ class Profile extends BaseModule
 
                $items = DBA::toArray($items_stmt);
 
-               $o .= conversation($a, $items, $pager, 'profile', $update, false, 'received', $a->profile['profile_uid']);
+               if ($pager->getStart() == 0 && !empty($a->profile['profile_uid'])) {
+                       $pinned_items = Item::selectPinned($a->profile['profile_uid'], ['uri', 'pinned'], ['true' . $sql_extra]);
+                       $pinned = Item::inArray($pinned_items);
+                       $items = array_merge($items, $pinned);
+               }
+
+               $o .= conversation($a, $items, $pager, 'profile', $update, false, 'pinned_received', $a->profile['profile_uid']);
 
                if (!$update) {
                        $o .= $pager->renderMinimal(count($items));
index 1bf88d7c5b820b7da0741f0674d7d5740cc057e7..8069248f82f632974cc4b839d210d8399925dcec 100644 (file)
@@ -18,7 +18,7 @@ use Friendica\Util\Proxy as ProxyUtils;
 
 class Contacts extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (Config::get('system', 'block_public') && !Session::isAuthenticated()) {
                        throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('User not found.'));
index 2b8ad01ddadfd9cd89346ceec962350850845ff5..fbf4b8bd5cbfea81a6e216e583e016f160571820 100644 (file)
@@ -30,7 +30,7 @@ class Proxy extends BaseModule
         * Sets application instance and checks if /proxy/ path is writable.
         *
         */
-       public static function init()
+       public static function init(array $parameters = [])
        {
                // Set application instance here
                $a = self::getApp();
index ed099616ad41126a69ec0b41a11e92edbf888ec4..f652811b54bd5a7b1d417d6359e4ff1eabf1848c 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Network\HTTPException\BadRequestException;
  */
 class PublicRSAKey extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
index 3ecaa54b7607bc51f32099997380cd47defc64bc..c5b31afeef2e176d7e264171a3f3cf1844e868ba 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\Model\GContact;
  */
 class RandomProfile extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index 515285dbfcd070b1ba2417b9021d73c55c1ad35d..7cf0db6c7b965d6ac4b4507d628ee74468b1e912 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\Util\XML;
  */
 class ReallySimpleDiscovery extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                header('Content-Type: text/xml');
 
index 03f9dbb69871dd44fb666b778fabede9aa6a2cfd..ad49555e699d77bd4aa06b24b085c977756e9a9a 100644 (file)
@@ -35,7 +35,7 @@ class Register extends BaseModule
         *
         * @return string
         */
-       public static function content()
+       public static function content(array $parameters = [])
        {
                // logged in users can register others (people/pages/groups)
                // even with closed registrations, unless specifically prohibited by site policy.
@@ -152,7 +152,7 @@ class Register extends BaseModule
         * Extend this method if the module is supposed to process POST requests.
         * Doesn't display any content
         */
-       public static function post()
+       public static function post(array $parameters = [])
        {
                BaseModule::checkFormSecurityTokenRedirectOnError('/register', 'register');
 
@@ -261,6 +261,11 @@ class Register extends BaseModule
 
                                $a->internalRedirect('register/');
                        }
+                       // Is there text in the tar pit?
+                       if (!empty($_POST['registertarpit'])) {
+                               \notice(L10n::t('You have entered too much information.'));
+                               $a->internalRedirect('register/');
+                       }
 
                        Model\Register::createForApproval($user['uid'], Config::get('system', 'language'), $_POST['permonlybox']);
 
index 635056a0ad999348483233daa23ad3d46d57288a..db83777e8e4ff02e3d8c597c78623eadd91580fc 100644 (file)
@@ -9,7 +9,7 @@ use Friendica\BaseModule;
  */
 class RobotsTxt extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $allDisalloweds = [
                        '/settings/',
index 1016756008973291dca02bba042ac73454f950fe..74ce55fb53597a66d29ba705a3ded9458d3acdd0 100644 (file)
@@ -31,7 +31,7 @@ class Acl extends BaseModule
        const TYPE_PRIVATE_MESSAGE       = 'm';
        const TYPE_ANY_CONTACT           = 'a';
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                if (!local_user()) {
                        throw new HTTPException\UnauthorizedException(L10n::t('You must be logged in to use this module.'));
index 405fb0cc8246c313b914526420ddcf7c7ae9ed50..b18847afe9b41edb629a292c2a635208b582a717 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Util\Strings;
  */
 class Directory extends BaseSearchModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        notice(L10n::t('Permission denied.'));
index 73de090a71acb429e32100ff67d66e607e116074..7c52c7e79de1d07f188dccd5531835e6ca82226f 100644 (file)
@@ -23,7 +23,7 @@ use Friendica\Util\Strings;
 
 class Index extends BaseSearchModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $search = (!empty($_GET['q']) ? Strings::escapeTags(trim(rawurldecode($_GET['q']))) : '');
 
index 9d8d84b55a9bb10337af8801500435e1e36f723a..88668272de313a56cbb939d77a2440df58f23629 100644 (file)
@@ -10,7 +10,7 @@ use Friendica\Util\Strings;
 
 class Saved extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                /** @var Arguments $args */
                $args = self::getClass(Arguments::class);
index f7edc72c946b84027a4a5ebf162afc0d2f81578a..e3c2b8d34c8a70df38cc4b5649c73d00969b5d06 100644 (file)
@@ -20,7 +20,7 @@ use Friendica\Util\Strings;
  */
 class Delegation extends BaseSettingsModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user() || !empty(self::getApp()->user['uid']) && self::getApp()->user['uid'] != local_user()) {
                        throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
@@ -46,9 +46,9 @@ class Delegation extends BaseSettingsModule
                DBA::update('user', ['parent-uid' => $parent_uid], ['uid' => local_user()]);
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                if (!local_user()) {
                        throw new HTTPException\ForbiddenException(L10n::t('Permission denied.'));
index c62b0bbff0e00851797ccfc036312b00bcf0472f..72b233f422f094483c9fa9ebfc93fff1dc999a72 100644 (file)
@@ -20,7 +20,7 @@ class AppSpecific extends BaseSettingsModule
 {
        private static $appSpecificPassword = null;
 
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -38,7 +38,7 @@ class AppSpecific extends BaseSettingsModule
                }
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -81,13 +81,13 @@ class AppSpecific extends BaseSettingsModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        return Login::form('settings/2fa/app_specific');
                }
 
-               parent::content();
+               parent::content($parameters);
 
                $appSpecificPasswords = AppSpecificPassword::getListForUser(local_user());
 
index e7694225c43f9bb3ef607e42bc7bf50d838c1a80..34d6f97b49c0092e5c0425872795e192bc3402d2 100644 (file)
@@ -17,7 +17,7 @@ use PragmaRX\Google2FA\Google2FA;
 
 class Index extends BaseSettingsModule
 {
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -73,13 +73,13 @@ class Index extends BaseSettingsModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        return Login::form('settings/2fa');
                }
 
-               parent::content();
+               parent::content($parameters);
 
                $has_secret = (bool) PConfig::get(local_user(), '2fa', 'secret');
                $verified = PConfig::get(local_user(), '2fa', 'verified');
index 6937fa503f4eec65a0bc3bfe92cb8fff668d84c5..0d7de7d9023a0eccdb3c60196e41e82facb54fdb 100644 (file)
@@ -18,7 +18,7 @@ use Friendica\Module\Login;
  */
 class Recovery extends BaseSettingsModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -36,7 +36,7 @@ class Recovery extends BaseSettingsModule
                }
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -53,13 +53,13 @@ class Recovery extends BaseSettingsModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        return Login::form('settings/2fa/recovery');
                }
 
-               parent::content();
+               parent::content($parameters);
 
                if (!RecoveryCode::countValidForUser(local_user())) {
                        RecoveryCode::generateForUser(local_user());
index b9205852d835199170a6ac79c2a14d2c5d91ebcd..63c186e3a8f6129a613607ac77dbcb9d65c15a44 100644 (file)
@@ -24,7 +24,7 @@ use PragmaRX\Google2FA\Google2FA;
  */
 class Verify extends BaseSettingsModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -43,7 +43,7 @@ class Verify extends BaseSettingsModule
                }
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -69,13 +69,13 @@ class Verify extends BaseSettingsModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        return Login::form('settings/2fa/verify');
                }
 
-               parent::content();
+               parent::content($parameters);
 
                $company = 'Friendica';
                $holder = Session::get('my_address');
index d5b8f88ec1b3727a0c10b05609404324842ced24..19722a18e245aebbbee0ec596885f721d0736af6 100644 (file)
@@ -32,9 +32,9 @@ class UserExport extends BaseSettingsModule
         * If there is an action required through the URL / path, react
         * accordingly and export the requested data.
         **/
-       public static function content()
+       public static function content(array $parameters = [])
        {
-               parent::content();
+               parent::content($parameters);
 
                /**
                 * options shown on "Export personal data" page
@@ -59,7 +59,7 @@ class UserExport extends BaseSettingsModule
         * to the browser which then offers a save / open dialog
         * to the user.
         **/
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $args = self::getClass(Arguments::class);
                if ($args->getArgc() == 3) {
index ded58768fe347cf7f6913eb4a00c3c8e66637abf..a808ce820c2305a8233c3674c1f3e782acc4c08f 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Core\System;
  */
 class Smilies extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
@@ -26,7 +26,7 @@ class Smilies extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $smilies = Content\Smilies::getList();
                $count = count($smilies['texts'] ?? []);
index 70cd3973518a81584604b2ef68439701a5fcfb7e..c1fa4c3b8be318df533003a9c581d0ee24da8540 100644 (file)
@@ -10,51 +10,36 @@ use Friendica\Model\Item;
  */
 class Starred extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
-               $a = self::getApp();
-               $starred = 0;
-               $itemId = null;
-
                if (!local_user()) {
-                       exit();
+                       throw new \Friendica\Network\HTTPException\ForbiddenException();
                }
 
-               // @TODO: Replace with parameter from router
-               if ($a->argc > 1) {
-                       $itemId = intval($a->argv[1]);
+               if (empty($parameters['item'])) {
+                       throw new \Friendica\Network\HTTPException\BadRequestException();
                }
 
-               if (!$itemId) {
-                       exit();
-               }
+               $itemId = intval($parameters['item']);
 
                $item = Item::selectFirstForUser(local_user(), ['starred'], ['uid' => local_user(), 'id' => $itemId]);
                if (empty($item)) {
-                       exit();
+                       throw new \Friendica\Network\HTTPException\NotFoundException();
                }
 
-               if (!intval($item['starred'])) {
-                       $starred = 1;
-               }
+               $starred = !(bool)$item['starred'];
 
                Item::update(['starred' => $starred], ['id' => $itemId]);
 
                // See if we've been passed a return path to redirect to
                $returnPath = $_REQUEST['return'] ?? '';
-               if ($returnPath) {
-                       $rand = '_=' . time();
-                       if (strpos($returnPath, '?')) {
-                               $rand = "&$rand";
-                       } else {
-                               $rand = "?$rand";
-                       }
-
-                       $a->internalRedirect($returnPath . $rand);
+               if (!empty($returnPath)) {
+                       $rand = '_=' . time() . (strpos($returnPath, '?') ? '&' : '?') . 'rand';
+                       self::getApp()->internalRedirect($returnPath . $rand);
                }
 
                // the json doesn't really matter, it will either be 0 or 1
-               echo json_encode($starred);
+               echo json_encode((int)$starred);
                exit();
        }
 }
index 3e64828e7b64b3dfe33897d9dad3dd85e703b4f7..6e599ac9b1fc3d0602f5bc43638d2ab6936e2a74 100644 (file)
@@ -8,7 +8,7 @@ use Friendica\Core\System;
 
 class Statistics extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                $config = self::getApp()->getConfig();
 
@@ -17,7 +17,7 @@ class Statistics extends BaseModule
                }
        }
 
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $config = self::getApp()->getConfig();
                $logger = self::getApp()->getLogger();
index 0540267af71787ab759b487ea5576bd8aeca3406..e9ce8d396f239cf63d9becfc4e91105ef39c0f4b 100644 (file)
@@ -10,7 +10,7 @@ use Friendica\Util\Strings;
  */
 class Theme extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                header("Content-Type: text/css");
 
index 9a2e913bcad00e7cd58144b226eb65ddbcc95f89..40bfb7a87189889d1ed893cd3d114ddc637ac22b 100644 (file)
@@ -10,7 +10,7 @@ use Friendica\Core\Theme;
  */
 class ThemeDetails extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                if (!empty($_REQUEST['theme'])) {
                        $theme = $_REQUEST['theme'];
index 9788c0b5db40700021a07aa7c65a84bfb46ac85c..0efc2e54b5fa3d492fb2906f47c83c527dc17cf5 100644 (file)
@@ -9,7 +9,7 @@ use Friendica\BaseModule;
  */
 class ToggleMobile extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $a = self::getApp();
 
index c26085b48bb2e9fdbbe5adaef26f0f6e9cdcce31..ea29a5e072d3ab6b14b56bfef3a66fb8075aa040 100644 (file)
@@ -47,7 +47,7 @@ class Tos extends BaseModule
         * dealings with their own node so a TOS is not necessary.
         *
         **/
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (strlen(Config::get('system','singleuser'))) {
                        self::getApp()->internalRedirect('profile/' . Config::get('system','singleuser'));
@@ -66,7 +66,7 @@ class Tos extends BaseModule
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function content() {
+       public static function content(array $parameters = []) {
                $tpl = Renderer::getMarkupTemplate('tos.tpl');
                if (Config::get('system', 'tosdisplay')) {
                        return Renderer::replaceMacros($tpl, [
index 7c17fdace028893003c69bfd61057522b810d38e..bd87836463c7f9df4800868861340a96a3248bc9 100644 (file)
@@ -15,14 +15,14 @@ use Friendica\Model\TwoFactor\RecoveryCode;
  */
 class Recovery extends BaseModule
 {
-       public static function init()
+       public static function init(array $parameters = [])
        {
                if (!local_user()) {
                        return;
                }
        }
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -48,7 +48,7 @@ class Recovery extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        self::getApp()->internalRedirect();
index 4b1c974d8ff7ddf84b4f4f5217335960b9244a51..f6f040f5a781f1c9271bb3bf2c17674e60713568 100644 (file)
@@ -18,7 +18,7 @@ class Verify extends BaseModule
 {
        private static $errors = [];
 
-       public static function post()
+       public static function post(array $parameters = [])
        {
                if (!local_user()) {
                        return;
@@ -45,7 +45,7 @@ class Verify extends BaseModule
                }
        }
 
-       public static function content()
+       public static function content(array $parameters = [])
        {
                if (!local_user()) {
                        self::getApp()->internalRedirect();
index 9e1eace9b6ec80cc6d33906b57f2a3ee915018a7..f69991e4968869cc98b1e8bdd597e2e820978de9 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\Core\Renderer;
  */
 class Welcome extends BaseModule
 {
-       public static function content()
+       public static function content(array $parameters = [])
        {
                $config = self::getApp()->getConfig();
 
index fd04467f7536816a50f3c93e21d4dc99f66062f3..cb344b695e35dad1c13473ac520341c11482214d 100644 (file)
@@ -13,7 +13,7 @@ use Friendica\Util\Crypto;
  */
 class HostMeta extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
index a1bbeb78aacbe9fdb880e818e1dcecb3c7ef8ddb..5d8f4e817c1c558378fc824f041a2143179baecc 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\Model\Search;
  */
 class XSocialRelay extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
                $config = $app->getConfig();
index 1028bfd531f3054265d677c1eef698d00445d997..79e0883a872bf10dd026cf8c33f7f374bb8d8c29 100644 (file)
@@ -17,7 +17,7 @@ use Friendica\Util\Strings;
  */
 class Xrd extends BaseModule
 {
-       public static function rawContent()
+       public static function rawContent(array $parameters = [])
        {
                $app = self::getApp();
 
index babf24e0d6ccd1c1f24ee32fe55de6b65808b534..981bf76c7d6f576423265d9d4ac358f7da542065 100644 (file)
@@ -140,8 +140,11 @@ class Post extends BaseObject
                $sparkle = '';
                $buttons = '';
                $dropping = false;
+               $pinned = '';
+               $pin = false;
                $star = false;
                $ignore = false;
+               $ispinned = "unpinned";
                $isstarred = "unstarred";
                $indent = '';
                $shiny = '';
@@ -190,6 +193,8 @@ class Post extends BaseObject
                        if (DBA::isResult($parent)) {
                                $origin = $parent['origin'];
                        }
+               } elseif ($item['pinned']) {
+                       $pinned = L10n::t('pinned item');
                }
 
                if ($origin && ($item['id'] != $item['parent']) && ($item['network'] == Protocol::ACTIVITYPUB)) {
@@ -284,6 +289,19 @@ class Post extends BaseObject
                                }
 
                                if ($conv->getProfileOwner() == local_user() && ($item['uid'] != 0)) {
+                                       if ($origin) {
+                                               $ispinned = ($item['pinned'] ? 'pinned' : 'unpinned');
+
+                                               $pin = [
+                                                       'do'        => L10n::t('pin'),
+                                                       'undo'      => L10n::t('unpin'),
+                                                       'toggle'    => L10n::t('toggle pin status'),
+                                                       'classdo'   => $item['pinned'] ? 'hidden' : '',
+                                                       'classundo' => $item['pinned'] ? '' : 'hidden',
+                                                       'pinned'   => L10n::t('pinned'),
+                                               ];
+                                       }
+
                                        $isstarred = (($item['starred']) ? "starred" : "unstarred");
 
                                        $star = [
@@ -407,6 +425,9 @@ class Post extends BaseObject
                        'owner_name'      => $owner_name_e,
                        'plink'           => Item::getPlink($item),
                        'edpost'          => $edpost,
+                       'ispinned'        => $ispinned,
+                       'pin'             => $pin,
+                       'pinned'          => $pinned,
                        'isstarred'       => $isstarred,
                        'star'            => $star,
                        'ignore'          => $ignore,
index 1bc6f9041545dcdfb594e28fd92190e3b6c332ed..685f3a85e2b13e1bc2af97c09cfb1f0ea4515ae9 100644 (file)
@@ -5,6 +5,8 @@
 namespace Friendica\Protocol\ActivityPub;
 
 use Friendica\Database\DBA;
+use Friendica\Content\Text\HTML;
+use Friendica\Content\Text\Markdown;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
 use Friendica\Model\Contact;
@@ -874,6 +876,52 @@ class Receiver
                return $attachlist;
        }
 
+       /**
+        * Fetch the original source or content with the "language" Markdown or HTML
+        *
+        * @param array $object
+        * @param array $object_data
+        *
+        * @return array
+        * @throws \Exception
+        */
+       private static function getSource($object, $object_data)
+       {
+               $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/bbcode');
+               $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+               if (!empty($object_data['source'])) {
+                       return $object_data;
+               }
+
+               $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/markdown');
+               $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+               if (!empty($object_data['source'])) {
+                       $object_data['source'] = Markdown::toBBCode($object_data['source']);
+                       return $object_data;
+               }
+
+               $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/html');
+               $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+               if (!empty($object_data['source'])) {
+                       $object_data['source'] = HTML::toBBCode($object_data['source']);
+                       return $object_data;
+               }
+
+               $markdown = JsonLD::fetchElement($object, 'as:content', '@value', '@language', 'text/markdown');
+               if (!empty($markdown)) {
+                       $object_data['source'] = Markdown::toBBCode($markdown);
+                       return $object_data;
+               }
+
+               $html = JsonLD::fetchElement($object, 'as:content', '@value', '@language', 'text/html');
+               if (!empty($html)) {
+                       $object_data['source'] = HTML::toBBCode($markdown);
+                       return $object_data;
+               }
+
+               return $object_data;
+       }
+
        /**
         * Fetches data from the object part of an activity
         *
@@ -924,8 +972,7 @@ class Receiver
                $object_data['name'] = JsonLD::fetchElement($object, 'as:name', '@value');
                $object_data['summary'] = JsonLD::fetchElement($object, 'as:summary', '@value');
                $object_data['content'] = JsonLD::fetchElement($object, 'as:content', '@value');
-               $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/bbcode');
-               $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+               $object_data = self::getSource($object, $object_data);
                $object_data['start-time'] = JsonLD::fetchElement($object, 'as:startTime', '@value');
                $object_data['end-time'] = JsonLD::fetchElement($object, 'as:endTime', '@value');
                $object_data['location'] = JsonLD::fetchElement($object, 'as:location', 'as:name', '@type', 'as:Place');
index c5f3bae4700dc90d62e6a09e171c3764c987da13..545ac22c699b0a668cfe486c7d17f617dd01d123 100644 (file)
@@ -19,6 +19,7 @@ use Friendica\Model\Contact;
 use Friendica\Model\Conversation;
 use Friendica\Model\Item;
 use Friendica\Model\Profile;
+use Friendica\Model\Photo;
 use Friendica\Model\Term;
 use Friendica\Model\User;
 use Friendica\Protocol\Activity;
@@ -1097,19 +1098,34 @@ class Transmitter
        }
 
        /**
-        * Remove image elements and replaces them with links to the image
+        * Remove image elements since they are added as attachment
         *
         * @param string $body
         *
-        * @return string with replaced elements
+        * @return string with removed images
         */
        private static function removePictures($body)
        {
                // Simplify image codes
                $body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body);
+               $body = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/ism", '[img]$1[/img]', $body);
+
+               // Now remove local links
+               $body = preg_replace_callback(
+                       '/\[url=([^\[\]]*)\]\[img\](.*)\[\/img\]\[\/url\]/Usi',
+                       function ($match) {
+                               // We remove the link when it is a link to a local photo page
+                               if (Photo::isLocalPage($match[1])) {
+                                       return '';
+                               }
+                               // otherwise we just return the link
+                               return '[url]' . $match[1] . '[/url]';
+                       },
+                       $body
+               );
 
-               $body = preg_replace("/\[url=([^\[\]]*)\]\[img\](.*)\[\/img\]\[\/url\]/Usi", '[url]$1[/url]', $body);
-               $body = preg_replace("/\[img\]([^\[\]]*)\[\/img\]/Usi", '[url]$1[/url]', $body);
+               // Remove all pictures
+               $body = preg_replace("/\[img\]([^\[\]]*)\[\/img\]/Usi", '', $body);
 
                return $body;
        }
@@ -1254,6 +1270,12 @@ class Transmitter
                        $data['content'] = BBCode::convert($body, false, 9);
                }
 
+               $regexp = "/[@!]\[url\=([^\[\]]*)\].*?\[\/url\]/ism";
+               $richbody = preg_replace_callback($regexp, ['self', 'mentionCallback'], $item['body']);
+
+               $data['contentMap']['text/html'] = BBCode::convert($richbody, false);
+               $data['contentMap']['text/markdown'] = BBCode::toMarkdown($item["body"]);
+
                $data['source'] = ['content' => $item['body'], 'mediaType' => "text/bbcode"];
 
                if (!empty($item['signed_text']) && ($item['uri'] != $item['thr-parent'])) {
index 74f1e8be3a605622b23e341c60d964db5a36135e..e8c576a94cd09c7dd3cd147a9b3514437d5b989e 100644 (file)
@@ -2476,7 +2476,7 @@ class Diaspora
                        return false;
                }
 
-               $cid = Contact::getIdForURL($ret['url'], $uid);
+               $cid = Contact::getIdForURL($ret['url'], $importer['uid']);
                if (!empty($cid)) {
                        $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'network' => Protocol::NATIVE_SUPPORT]);
                } else {
index 53f8a8ed44b8b1a3a36b8e057ec5bfcadedb5b7a..05c065d9fbd854cc16baea3ba87cd160c1d971b5 100755 (executable)
@@ -34,7 +34,7 @@
 use Friendica\Database\DBA;
 
 if (!defined('DB_UPDATE_VERSION')) {
-       define('DB_UPDATE_VERSION', 1323);
+       define('DB_UPDATE_VERSION', 1324);
 }
 
 return [
@@ -868,7 +868,6 @@ return [
                "comment" => "notifications",
                "fields" => [
                        "id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "sequential ID"],
-                       "hash" => ["type" => "varchar(64)", "not null" => "1", "default" => "", "comment" => ""],
                        "type" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
                        "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
                        "url" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => ""],
@@ -887,7 +886,6 @@ return [
                ],
                "indexes" => [
                        "PRIMARY" => ["id"],
-                       "hash_uid" => ["hash", "uid"],
                        "seen_uid_date" => ["seen", "uid", "date"],
                        "uid_date" => ["uid", "date"],
                        "uid_type_link" => ["uid", "type", "link(190)"],
@@ -1384,10 +1382,12 @@ return [
                        "iid" => ["type" => "int unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["item" => "id"], "comment" => "Item id"],
                        "uid" => ["type" => "mediumint unsigned", "not null" => "1", "default" => "0", "primary" => "1", "relation" => ["user" => "uid"], "comment" => "User id"],
                        "hidden" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => "Marker to hide an item from the user"],
-                       "ignored" => ["type" => "boolean", "comment" => "Ignore this thread if set"]
+                       "ignored" => ["type" => "boolean", "comment" => "Ignore this thread if set"],
+                       "pinned" => ["type" => "boolean", "comment" => "The item is pinned on the profile page"]
                ],
                "indexes" => [
-                       "PRIMARY" => ["uid", "iid"]
+                       "PRIMARY" => ["uid", "iid"],
+                       "uid_pinned" => ["uid", "pinned"]
                ]
        ],
        "worker-ipc" => [
index 938b13495b56cd6db6bd8ff9f2a062b600b74433..fbc085f4bc347dcc8dae17fecb7cb3eb79e29b61 100644 (file)
@@ -171,7 +171,7 @@ return [
                        $_SERVER, null
                ],
                'call' => [
-                       ['addRoutes', [include __DIR__ . '/routes.config.php'], Dice::CHAIN_CALL],
+                       ['loadRoutes', [include __DIR__ . '/routes.config.php'], Dice::CHAIN_CALL],
                ],
        ],
        L10n::class => [
index 1f2fe0ad1b98727e4bf1a58d5e8e2656b2cf38ef..339860afe636588723491aca074d94b0fa5dea39 100644 (file)
@@ -179,8 +179,9 @@ return [
                '/{type}/{customize}/{name}' => [Module\Photo::class, [R::GET]],
        ],
 
-       '/pretheme' => [Module\ThemeDetails::class, [R::GET]],
-       '/probe'    => [Module\Debug\Probe::class,  [R::GET]],
+       '/pinned/{item:\d+}' => [Module\Pinned::class,       [R::GET]],
+       '/pretheme'          => [Module\ThemeDetails::class, [R::GET]],
+       '/probe'             => [Module\Debug\Probe::class,  [R::GET]],
 
        '/profile' => [
                '/{nickname}'                                                 => [Module\Profile::class,          [R::GET]],
index fe65793f8e1b92e5699bf80aa447bd45d8a83a30..12ec2b4db86fc4759fb4bb157e0351063bcf643c 100644 (file)
@@ -200,7 +200,7 @@ class ModeTest extends MockedTest
        public function testIsBackendButIndex()
        {
                $server = [];
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, true);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], true);
                $mobileDetect = new MobileDetect();
 
                $mode = (new Mode())->determineRunMode(false, $module, $server, $mobileDetect);
@@ -214,7 +214,7 @@ class ModeTest extends MockedTest
        public function testIsNotBackend()
        {
                $server = [];
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], false);
                $mobileDetect = new MobileDetect();
 
                $mode = (new Mode())->determineRunMode(false, $module, $server, $mobileDetect);
@@ -232,7 +232,7 @@ class ModeTest extends MockedTest
                        'HTTP_X_REQUESTED_WITH' => 'xmlhttprequest',
                ];
 
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], false);
                $mobileDetect = new MobileDetect();
 
                $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect);
@@ -246,7 +246,7 @@ class ModeTest extends MockedTest
        public function testIsNotAjax()
        {
                $server = [];
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], false);
                $mobileDetect = new MobileDetect();
 
                $mode = (new Mode())->determineRunMode(true, $module, $server, $mobileDetect);
@@ -260,7 +260,7 @@ class ModeTest extends MockedTest
        public function testIsMobileIsTablet()
        {
                $server = [];
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], false);
                $mobileDetect = \Mockery::mock(MobileDetect::class);
                $mobileDetect->shouldReceive('isMobile')->andReturn(true);
                $mobileDetect->shouldReceive('isTablet')->andReturn(true);
@@ -278,7 +278,7 @@ class ModeTest extends MockedTest
        public function testIsNotMobileIsNotTablet()
        {
                $server = [];
-               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, false);
+               $module = new Module(Module::DEFAULT, Module::DEFAULT_CLASS, [], false);
                $mobileDetect = \Mockery::mock(MobileDetect::class);
                $mobileDetect->shouldReceive('isMobile')->andReturn(false);
                $mobileDetect->shouldReceive('isTablet')->andReturn(false);
index 8327bc706dd479e8d8c4159966f7150c0be67636..ce2a40b80640bca61ee2a4caa4fdf9b30527763b 100644 (file)
@@ -152,7 +152,7 @@ class ModuleTest extends DatabaseTest
                $config = \Mockery::mock(Configuration::class);
                $config->shouldReceive('get')->with('config', 'private_addons', false)->andReturn($privAdd)->atMost()->once();
 
-               $router = (new App\Router([]))->addRoutes(include __DIR__ . '/../../../static/routes.config.php');
+               $router = (new App\Router([]))->loadRoutes(include __DIR__ . '/../../../static/routes.config.php');
 
                $module = (new App\Module($name))->determineClass(new App\Arguments('', $command), $router, $config);
 
index b2dbaed20c8536440da9fa1626d37353bd8db8fa..102808f6ac22e677180df6545807c8600fb54667 100644 (file)
@@ -159,7 +159,7 @@ class RouterTest extends TestCase
        {
                $router = (new Router([
                        'REQUEST_METHOD' => Router::GET
-               ]))->addRoutes($routes);
+               ]))->loadRoutes($routes);
 
                $this->assertEquals(Module\Home::class, $router->getModuleClass('/'));
                $this->assertEquals(Module\Friendica::class, $router->getModuleClass('/group/route'));
@@ -174,7 +174,7 @@ class RouterTest extends TestCase
        {
                $router = (new Router([
                        'REQUEST_METHOD' => Router::POST
-               ]))->addRoutes($routes);
+               ]))->loadRoutes($routes);
 
                // Don't find GET
                $this->assertEquals(Module\NodeInfo::class, $router->getModuleClass('/post/it'));
index 40db7c2a13cfb2b9d6223004a0f5815f8ef42c0e..94644c5dfd2c3467d796b6449f71959cb8e89d6e 100644 (file)
@@ -626,6 +626,25 @@ function dostar(ident) {
        });
 }
 
+function dopin(ident) {
+       ident = ident.toString();
+       $('#like-rotator-' + ident).show();
+       $.get('pinned/' + ident, function(data) {
+               if (data.match(/1/)) {
+                       $('#pinned-' + ident).addClass('pinned');
+                       $('#pinned-' + ident).removeClass('unpinned');
+                       $('#pin-' + ident).addClass('hidden');
+                       $('#unpin-' + ident).removeClass('hidden');
+               } else {
+                       $('#pinned-' + ident).addClass('unpinned');
+                       $('#pinned-' + ident).removeClass('pinned');
+                       $('#pin-' + ident).removeClass('hidden');
+                       $('#unpin-' + ident).addClass('hidden');
+               }
+               $('#like-rotator-' + ident).hide();
+       });
+}
+
 function doignore(ident) {
        ident = ident.toString();
        $('#like-rotator-' + ident).show();
index 5289dccdd168600a37532f3f1588fe96e1465606..3894baee4fdc6b2f73034970df035efcb0622501 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-09-15 07:45+0200\n"
+"POT-Creation-Date: 2019-11-04 10:26+0100\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"
@@ -18,824 +18,780 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 
-#: include/items.php:354 src/Module/Admin/Themes/Details.php:53
-#: src/Module/Admin/Themes/Index.php:43 src/Module/Debug/ItemBody.php:27
-#: src/Module/Debug/ItemBody.php:40
-msgid "Item not found."
-msgstr ""
-
-#: include/items.php:392
-msgid "Do you really want to delete this item?"
-msgstr ""
-
-#: include/items.php:394 mod/api.php:109 mod/profiles.php:526
-#: mod/profiles.php:529 mod/profiles.php:551 mod/dfrn_request.php:640
-#: mod/follow.php:163 mod/message.php:150 mod/suggest.php:73
-#: mod/settings.php:1089 mod/settings.php:1095 mod/settings.php:1102
-#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114
-#: mod/settings.php:1118 mod/settings.php:1122 mod/settings.php:1142
-#: mod/settings.php:1143 mod/settings.php:1144 mod/settings.php:1145
-#: mod/settings.php:1146 src/Module/Register.php:97 src/Module/Contact.php:423
-msgid "Yes"
-msgstr ""
-
-#: include/items.php:397 include/conversation.php:1251 mod/tagrm.php:20
-#: mod/tagrm.php:115 mod/unfollow.php:132 mod/dfrn_request.php:650
-#: mod/editpost.php:110 mod/fbrowser.php:110 mod/fbrowser.php:139
-#: mod/follow.php:174 mod/message.php:153 mod/photos.php:1084
-#: mod/photos.php:1191 mod/suggest.php:76 mod/settings.php:678
-#: mod/settings.php:704 src/Module/Contact.php:426
-msgid "Cancel"
-msgstr ""
-
-#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/delegate.php:30
-#: mod/delegate.php:48 mod/delegate.php:59 mod/ostatus_subscribe.php:18
-#: mod/regmod.php:89 mod/repair_ostatus.php:16 mod/uimport.php:17
-#: mod/unfollow.php:22 mod/unfollow.php:77 mod/unfollow.php:109
-#: mod/wall_attach.php:76 mod/wall_attach.php:79 mod/wall_upload.php:107
-#: mod/wall_upload.php:110 mod/wallmessage.php:19 mod/wallmessage.php:43
-#: mod/wallmessage.php:82 mod/wallmessage.php:106 mod/profiles.php:182
-#: mod/profiles.php:499 mod/cal.php:301 mod/common.php:27 mod/crepair.php:90
-#: mod/dfrn_confirm.php:64 mod/editpost.php:21 mod/follow.php:57
-#: mod/follow.php:134 mod/fsuggest.php:63 mod/manage.php:130 mod/message.php:56
-#: mod/message.php:101 mod/network.php:37 mod/notes.php:27 mod/photos.php:178
-#: mod/photos.php:962 mod/poke.php:141 mod/profile_photo.php:32
-#: mod/profile_photo.php:177 mod/profile_photo.php:197 mod/suggest.php:39
-#: mod/events.php:208 mod/item.php:170 mod/notifications.php:73
-#: mod/settings.php:52 mod/settings.php:165 mod/settings.php:667
-#: src/Module/Attach.php:42 src/Module/FollowConfirm.php:27
-#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22
-#: src/Module/Invite.php:110 src/Module/Notifications/Notify.php:19
-#: src/Module/Profile/Contacts.php:50 src/Module/Register.php:192
-#: src/Module/Search/Directory.php:18 src/Module/Contact.php:340
-msgid "Permission denied."
-msgstr ""
-
-#: include/api.php:1119
+#: include/api.php:1121
 #, php-format
 msgid "Daily posting limit of %d post reached. The post was rejected."
 msgid_plural "Daily posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1133
+#: include/api.php:1135
 #, php-format
 msgid "Weekly posting limit of %d post reached. The post was rejected."
 msgid_plural "Weekly posting limit of %d posts reached. The post was rejected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/api.php:1147
+#: include/api.php:1149
 #, php-format
 msgid "Monthly posting limit of %d post reached. The post was rejected."
 msgstr ""
 
-#: include/api.php:4589 mod/photos.php:91 mod/photos.php:196 mod/photos.php:640
-#: mod/photos.php:1090 mod/photos.php:1107 mod/photos.php:1610
-#: mod/profile_photo.php:85 mod/profile_photo.php:94 mod/profile_photo.php:103
-#: mod/profile_photo.php:210 mod/profile_photo.php:298
-#: mod/profile_photo.php:308 src/Model/User.php:796 src/Model/User.php:804
-#: src/Model/User.php:812
+#: include/api.php:4566 mod/profile_photo.php:85 mod/profile_photo.php:94
+#: mod/profile_photo.php:103 mod/profile_photo.php:210
+#: mod/profile_photo.php:298 mod/profile_photo.php:308 mod/photos.php:90
+#: mod/photos.php:181 mod/photos.php:628 mod/photos.php:1055
+#: mod/photos.php:1072 mod/photos.php:1580 src/Model/User.php:841
+#: src/Model/User.php:849 src/Model/User.php:857
 msgid "Profile Photos"
 msgstr ""
 
-#: include/conversation.php:161 include/conversation.php:298
-#: src/Model/Item.php:3309
+#: include/conversation.php:167 include/conversation.php:304
+#: src/Model/Item.php:3322
 msgid "event"
 msgstr ""
 
-#: include/conversation.php:164 include/conversation.php:174
-#: include/conversation.php:301 include/conversation.php:310
-#: mod/subthread.php:88 mod/tagger.php:69
+#: include/conversation.php:170 include/conversation.php:180
+#: include/conversation.php:307 include/conversation.php:316
+#: mod/subthread.php:91 mod/tagger.php:72
 msgid "status"
 msgstr ""
 
-#: include/conversation.php:169 include/conversation.php:306
-#: mod/subthread.php:88 mod/tagger.php:69 src/Model/Item.php:3311
+#: include/conversation.php:175 include/conversation.php:312
+#: mod/subthread.php:91 mod/tagger.php:72 src/Model/Item.php:3324
 msgid "photo"
 msgstr ""
 
-#: include/conversation.php:182
+#: include/conversation.php:188
 #, php-format
 msgid "%1$s likes %2$s's %3$s"
 msgstr ""
 
-#: include/conversation.php:184
+#: include/conversation.php:190
 #, php-format
 msgid "%1$s doesn't like %2$s's %3$s"
 msgstr ""
 
-#: include/conversation.php:186
+#: include/conversation.php:192
 #, php-format
 msgid "%1$s attends %2$s's %3$s"
 msgstr ""
 
-#: include/conversation.php:188
+#: include/conversation.php:194
 #, php-format
 msgid "%1$s doesn't attend %2$s's %3$s"
 msgstr ""
 
-#: include/conversation.php:190
+#: include/conversation.php:196
 #, php-format
 msgid "%1$s attends maybe %2$s's %3$s"
 msgstr ""
 
-#: include/conversation.php:225
+#: include/conversation.php:231
 #, php-format
 msgid "%1$s is now friends with %2$s"
 msgstr ""
 
-#: include/conversation.php:266
+#: include/conversation.php:272
 #, php-format
 msgid "%1$s poked %2$s"
 msgstr ""
 
-#: include/conversation.php:320 mod/tagger.php:102
+#: include/conversation.php:326 mod/tagger.php:105
 #, php-format
 msgid "%1$s tagged %2$s's %3$s with %4$s"
 msgstr ""
 
-#: include/conversation.php:342
+#: include/conversation.php:348
 msgid "post/item"
 msgstr ""
 
-#: include/conversation.php:343
+#: include/conversation.php:349
 #, php-format
 msgid "%1$s marked %2$s's %3$s as favorite"
 msgstr ""
 
-#: include/conversation.php:569 mod/profiles.php:352 mod/photos.php:1442
+#: include/conversation.php:574 mod/photos.php:1407 mod/profiles.php:352
 msgid "Likes"
 msgstr ""
 
-#: include/conversation.php:570 mod/profiles.php:355 mod/photos.php:1442
+#: include/conversation.php:575 mod/photos.php:1407 mod/profiles.php:355
 msgid "Dislikes"
 msgstr ""
 
-#: include/conversation.php:571 include/conversation.php:1566
-#: mod/photos.php:1443
+#: include/conversation.php:576 include/conversation.php:1577
+#: mod/photos.php:1408
 msgid "Attending"
 msgid_plural "Attending"
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/conversation.php:572 mod/photos.php:1443
+#: include/conversation.php:577 mod/photos.php:1408
 msgid "Not attending"
 msgstr ""
 
-#: include/conversation.php:573 mod/photos.php:1443
+#: include/conversation.php:578 mod/photos.php:1408
 msgid "Might attend"
 msgstr ""
 
-#: include/conversation.php:574
+#: include/conversation.php:579
 msgid "Reshares"
 msgstr ""
 
-#: include/conversation.php:654 mod/photos.php:1499 src/Object/Post.php:209
+#: include/conversation.php:659 mod/photos.php:1469 src/Object/Post.php:206
 msgid "Select"
 msgstr ""
 
-#: include/conversation.php:655 mod/photos.php:1500 mod/settings.php:738
-#: src/Module/Admin/Users.php:288 src/Module/Contact.php:805
-#: src/Module/Contact.php:1086
+#: include/conversation.php:660 mod/photos.php:1470 mod/settings.php:730
+#: src/Module/Admin/Users.php:288 src/Module/Contact.php:826
+#: src/Module/Contact.php:1107
 msgid "Delete"
 msgstr ""
 
-#: include/conversation.php:681 src/Object/Post.php:383 src/Object/Post.php:384
+#: include/conversation.php:689 src/Object/Post.php:383 src/Object/Post.php:384
 #, php-format
 msgid "View %s's profile @ %s"
 msgstr ""
 
-#: include/conversation.php:694 src/Object/Post.php:371
+#: include/conversation.php:702 src/Object/Post.php:371
 msgid "Categories:"
 msgstr ""
 
-#: include/conversation.php:695 src/Object/Post.php:372
+#: include/conversation.php:703 src/Object/Post.php:372
 msgid "Filed under:"
 msgstr ""
 
-#: include/conversation.php:702 src/Object/Post.php:397
+#: include/conversation.php:710 src/Object/Post.php:397
 #, php-format
 msgid "%s from %s"
 msgstr ""
 
-#: include/conversation.php:717
+#: include/conversation.php:725
 msgid "View in context"
 msgstr ""
 
-#: include/conversation.php:719 include/conversation.php:1232
-#: mod/wallmessage.php:141 mod/editpost.php:86 mod/message.php:260
-#: mod/message.php:442 mod/photos.php:1415 src/Module/Item/Compose.php:193
+#: include/conversation.php:727 include/conversation.php:1243
+#: mod/editpost.php:87 mod/message.php:260 mod/message.php:442
+#: mod/photos.php:1380 mod/wallmessage.php:141 src/Module/Item/Compose.php:197
 #: src/Object/Post.php:424
 msgid "Please wait"
 msgstr ""
 
-#: include/conversation.php:783
+#: include/conversation.php:791
 msgid "remove"
 msgstr ""
 
-#: include/conversation.php:787
+#: include/conversation.php:795
 msgid "Delete Selected Items"
 msgstr ""
 
-#: include/conversation.php:942 view/theme/frio/theme.php:363
+#: include/conversation.php:950 view/theme/frio/theme.php:363
 msgid "Follow Thread"
 msgstr ""
 
-#: include/conversation.php:943 src/Model/Contact.php:1225
+#: include/conversation.php:951 src/Model/Contact.php:1255
 msgid "View Status"
 msgstr ""
 
-#: include/conversation.php:944 include/conversation.php:962 mod/match.php:87
-#: mod/suggest.php:87 src/Model/Contact.php:1165 src/Model/Contact.php:1218
-#: src/Model/Contact.php:1226 src/Module/AllFriends.php:74
-#: src/Module/BaseSearchModule.php:133 src/Module/Directory.php:150
+#: include/conversation.php:952 include/conversation.php:970 mod/suggest.php:87
+#: mod/match.php:87 src/Model/Contact.php:1185 src/Model/Contact.php:1247
+#: src/Model/Contact.php:1256 src/Module/AllFriends.php:74
+#: src/Module/BaseSearchModule.php:137 src/Module/Directory.php:148
 msgid "View Profile"
 msgstr ""
 
-#: include/conversation.php:945 src/Model/Contact.php:1227
+#: include/conversation.php:953 src/Model/Contact.php:1257
 msgid "View Photos"
 msgstr ""
 
-#: include/conversation.php:946 src/Model/Contact.php:1219
-#: src/Model/Contact.php:1228
+#: include/conversation.php:954 src/Model/Contact.php:1248
+#: src/Model/Contact.php:1258
 msgid "Network Posts"
 msgstr ""
 
-#: include/conversation.php:947 src/Model/Contact.php:1220
-#: src/Model/Contact.php:1229
+#: include/conversation.php:955 src/Model/Contact.php:1249
+#: src/Model/Contact.php:1259
 msgid "View Contact"
 msgstr ""
 
-#: include/conversation.php:948 src/Model/Contact.php:1231
+#: include/conversation.php:956 src/Model/Contact.php:1261
 msgid "Send PM"
 msgstr ""
 
-#: include/conversation.php:949 src/Module/Admin/Blocklist/Contact.php:67
-#: src/Module/Admin/Users.php:289 src/Module/Contact.php:585
-#: src/Module/Contact.php:802 src/Module/Contact.php:1061
+#: include/conversation.php:957 src/Module/Admin/Blocklist/Contact.php:67
+#: src/Module/Admin/Users.php:289 src/Module/Contact.php:606
+#: src/Module/Contact.php:823 src/Module/Contact.php:1082
 msgid "Block"
 msgstr ""
 
-#: include/conversation.php:950 mod/notifications.php:63
-#: mod/notifications.php:197 mod/notifications.php:290
-#: src/Module/Contact.php:586 src/Module/Contact.php:803
-#: src/Module/Contact.php:1069
+#: include/conversation.php:958 mod/notifications.php:66
+#: mod/notifications.php:201 mod/notifications.php:294
+#: src/Module/Contact.php:607 src/Module/Contact.php:824
+#: src/Module/Contact.php:1090
 msgid "Ignore"
 msgstr ""
 
-#: include/conversation.php:954 src/Model/Contact.php:1232
+#: include/conversation.php:962 src/Model/Contact.php:1262
 msgid "Poke"
 msgstr ""
 
-#: include/conversation.php:959 mod/match.php:88 mod/follow.php:160
-#: mod/suggest.php:88 view/theme/vier/theme.php:201 src/Content/Widget.php:66
-#: src/Model/Contact.php:1221 src/Module/AllFriends.php:75
-#: src/Module/BaseSearchModule.php:134
+#: include/conversation.php:967 mod/suggest.php:88 mod/follow.php:160
+#: mod/match.php:88 view/theme/vier/theme.php:178 src/Content/Widget.php:67
+#: src/Model/Contact.php:1250 src/Model/Contact.php:1263
+#: src/Module/AllFriends.php:75 src/Module/BaseSearchModule.php:138
 msgid "Connect/Follow"
 msgstr ""
 
-#: include/conversation.php:1084
+#: include/conversation.php:1095
 #, php-format
 msgid "%s likes this."
 msgstr ""
 
-#: include/conversation.php:1087
+#: include/conversation.php:1098
 #, php-format
 msgid "%s doesn't like this."
 msgstr ""
 
-#: include/conversation.php:1090
+#: include/conversation.php:1101
 #, php-format
 msgid "%s attends."
 msgstr ""
 
-#: include/conversation.php:1093
+#: include/conversation.php:1104
 #, php-format
 msgid "%s doesn't attend."
 msgstr ""
 
-#: include/conversation.php:1096
+#: include/conversation.php:1107
 #, php-format
 msgid "%s attends maybe."
 msgstr ""
 
-#: include/conversation.php:1099 include/conversation.php:1142
+#: include/conversation.php:1110 include/conversation.php:1153
 #, php-format
 msgid "%s reshared this."
 msgstr ""
 
-#: include/conversation.php:1107
+#: include/conversation.php:1118
 msgid "and"
 msgstr ""
 
-#: include/conversation.php:1113
+#: include/conversation.php:1124
 #, php-format
 msgid "and %d other people"
 msgstr ""
 
-#: include/conversation.php:1121
+#: include/conversation.php:1132
 #, php-format
 msgid "<span  %1$s>%2$d people</span> like this"
 msgstr ""
 
-#: include/conversation.php:1122
+#: include/conversation.php:1133
 #, php-format
 msgid "%s like this."
 msgstr ""
 
-#: include/conversation.php:1125
+#: include/conversation.php:1136
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't like this"
 msgstr ""
 
-#: include/conversation.php:1126
+#: include/conversation.php:1137
 #, php-format
 msgid "%s don't like this."
 msgstr ""
 
-#: include/conversation.php:1129
+#: include/conversation.php:1140
 #, php-format
 msgid "<span  %1$s>%2$d people</span> attend"
 msgstr ""
 
-#: include/conversation.php:1130
+#: include/conversation.php:1141
 #, php-format
 msgid "%s attend."
 msgstr ""
 
-#: include/conversation.php:1133
+#: include/conversation.php:1144
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't attend"
 msgstr ""
 
-#: include/conversation.php:1134
+#: include/conversation.php:1145
 #, php-format
 msgid "%s don't attend."
 msgstr ""
 
-#: include/conversation.php:1137
+#: include/conversation.php:1148
 #, php-format
 msgid "<span  %1$s>%2$d people</span> attend maybe"
 msgstr ""
 
-#: include/conversation.php:1138
+#: include/conversation.php:1149
 #, php-format
 msgid "%s attend maybe."
 msgstr ""
 
-#: include/conversation.php:1141
+#: include/conversation.php:1152
 #, php-format
 msgid "<span  %1$s>%2$d people</span> reshared this"
 msgstr ""
 
-#: include/conversation.php:1171
+#: include/conversation.php:1182
 msgid "Visible to <strong>everybody</strong>"
 msgstr ""
 
-#: include/conversation.php:1172 src/Module/Item/Compose.php:187
-#: src/Object/Post.php:888
+#: include/conversation.php:1183 src/Module/Item/Compose.php:191
+#: src/Object/Post.php:893
 msgid "Please enter a image/video/audio/webpage URL:"
 msgstr ""
 
-#: include/conversation.php:1173
+#: include/conversation.php:1184
 msgid "Tag term:"
 msgstr ""
 
-#: include/conversation.php:1174 src/Module/Filer/SaveTag.php:48
+#: include/conversation.php:1185 src/Module/Filer/SaveTag.php:48
 msgid "Save to Folder:"
 msgstr ""
 
-#: include/conversation.php:1175
+#: include/conversation.php:1186
 msgid "Where are you right now?"
 msgstr ""
 
-#: include/conversation.php:1176
+#: include/conversation.php:1187
 msgid "Delete item(s)?"
 msgstr ""
 
-#: include/conversation.php:1208
+#: include/conversation.php:1219
 msgid "New Post"
 msgstr ""
 
-#: include/conversation.php:1211
+#: include/conversation.php:1222
 msgid "Share"
 msgstr ""
 
-#: include/conversation.php:1212 mod/wallmessage.php:139 mod/editpost.php:72
-#: mod/message.php:258 mod/message.php:439
+#: include/conversation.php:1223 mod/editpost.php:73 mod/message.php:258
+#: mod/message.php:439 mod/wallmessage.php:139
 msgid "Upload photo"
 msgstr ""
 
-#: include/conversation.php:1213 mod/editpost.php:73
+#: include/conversation.php:1224 mod/editpost.php:74
 msgid "upload photo"
 msgstr ""
 
-#: include/conversation.php:1214 mod/editpost.php:74
+#: include/conversation.php:1225 mod/editpost.php:75
 msgid "Attach file"
 msgstr ""
 
-#: include/conversation.php:1215 mod/editpost.php:75
+#: include/conversation.php:1226 mod/editpost.php:76
 msgid "attach file"
 msgstr ""
 
-#: include/conversation.php:1216 src/Module/Item/Compose.php:179
-#: src/Object/Post.php:880
+#: include/conversation.php:1227 src/Module/Item/Compose.php:183
+#: src/Object/Post.php:885
 msgid "Bold"
 msgstr ""
 
-#: include/conversation.php:1217 src/Module/Item/Compose.php:180
-#: src/Object/Post.php:881
+#: include/conversation.php:1228 src/Module/Item/Compose.php:184
+#: src/Object/Post.php:886
 msgid "Italic"
 msgstr ""
 
-#: include/conversation.php:1218 src/Module/Item/Compose.php:181
-#: src/Object/Post.php:882
+#: include/conversation.php:1229 src/Module/Item/Compose.php:185
+#: src/Object/Post.php:887
 msgid "Underline"
 msgstr ""
 
-#: include/conversation.php:1219 src/Module/Item/Compose.php:182
-#: src/Object/Post.php:883
+#: include/conversation.php:1230 src/Module/Item/Compose.php:186
+#: src/Object/Post.php:888
 msgid "Quote"
 msgstr ""
 
-#: include/conversation.php:1220 src/Module/Item/Compose.php:183
-#: src/Object/Post.php:884
+#: include/conversation.php:1231 src/Module/Item/Compose.php:187
+#: src/Object/Post.php:889
 msgid "Code"
 msgstr ""
 
-#: include/conversation.php:1221 src/Module/Item/Compose.php:184
-#: src/Object/Post.php:885
+#: include/conversation.php:1232 src/Module/Item/Compose.php:188
+#: src/Object/Post.php:890
 msgid "Image"
 msgstr ""
 
-#: include/conversation.php:1222 src/Module/Item/Compose.php:185
-#: src/Object/Post.php:886
+#: include/conversation.php:1233 src/Module/Item/Compose.php:189
+#: src/Object/Post.php:891
 msgid "Link"
 msgstr ""
 
-#: include/conversation.php:1223 src/Module/Item/Compose.php:186
-#: src/Object/Post.php:887
+#: include/conversation.php:1234 src/Module/Item/Compose.php:190
+#: src/Object/Post.php:892
 msgid "Link or Media"
 msgstr ""
 
-#: include/conversation.php:1224 mod/editpost.php:82
-#: src/Module/Item/Compose.php:189
+#: include/conversation.php:1235 mod/editpost.php:83
+#: src/Module/Item/Compose.php:193
 msgid "Set your location"
 msgstr ""
 
-#: include/conversation.php:1225 mod/editpost.php:83
+#: include/conversation.php:1236 mod/editpost.php:84
 msgid "set location"
 msgstr ""
 
-#: include/conversation.php:1226 mod/editpost.php:84
+#: include/conversation.php:1237 mod/editpost.php:85
 msgid "Clear browser location"
 msgstr ""
 
-#: include/conversation.php:1227 mod/editpost.php:85
+#: include/conversation.php:1238 mod/editpost.php:86
 msgid "clear location"
 msgstr ""
 
-#: include/conversation.php:1229 mod/editpost.php:99
-#: src/Module/Item/Compose.php:194
+#: include/conversation.php:1240 mod/editpost.php:100
+#: src/Module/Item/Compose.php:198
 msgid "Set title"
 msgstr ""
 
-#: include/conversation.php:1231 mod/editpost.php:101
-#: src/Module/Item/Compose.php:195
+#: include/conversation.php:1242 mod/editpost.php:102
+#: src/Module/Item/Compose.php:199
 msgid "Categories (comma-separated list)"
 msgstr ""
 
-#: include/conversation.php:1233 mod/editpost.php:87
+#: include/conversation.php:1244 mod/editpost.php:88
 msgid "Permission settings"
 msgstr ""
 
-#: include/conversation.php:1234 mod/editpost.php:116
+#: include/conversation.php:1245 mod/editpost.php:117
 msgid "permissions"
 msgstr ""
 
-#: include/conversation.php:1243 mod/editpost.php:96
+#: include/conversation.php:1254 mod/editpost.php:97
 msgid "Public post"
 msgstr ""
 
-#: include/conversation.php:1247 mod/editpost.php:107 mod/photos.php:1433
-#: mod/photos.php:1472 mod/photos.php:1532 mod/events.php:550
-#: src/Module/Item/Compose.php:188 src/Object/Post.php:889
+#: include/conversation.php:1258 mod/editpost.php:108 mod/events.php:556
+#: mod/photos.php:1398 mod/photos.php:1437 mod/photos.php:1502
+#: src/Module/Item/Compose.php:192 src/Object/Post.php:894
 msgid "Preview"
 msgstr ""
 
-#: include/conversation.php:1256
+#: include/conversation.php:1262 include/items.php:392 mod/suggest.php:76
+#: mod/dfrn_request.php:652 mod/editpost.php:111 mod/fbrowser.php:110
+#: mod/fbrowser.php:139 mod/follow.php:174 mod/message.php:153
+#: mod/photos.php:1049 mod/photos.php:1156 mod/settings.php:670
+#: mod/settings.php:696 mod/tagrm.php:20 mod/tagrm.php:115 mod/unfollow.php:132
+#: src/Module/Contact.php:447
+msgid "Cancel"
+msgstr ""
+
+#: include/conversation.php:1267
 msgid "Post to Groups"
 msgstr ""
 
-#: include/conversation.php:1257
+#: include/conversation.php:1268
 msgid "Post to Contacts"
 msgstr ""
 
-#: include/conversation.php:1258
+#: include/conversation.php:1269
 msgid "Private post"
 msgstr ""
 
-#: include/conversation.php:1263 mod/editpost.php:114 src/Model/Profile.php:550
-#: src/Module/Contact.php:301
+#: include/conversation.php:1274 mod/editpost.php:115 src/Model/Profile.php:546
+#: src/Module/Contact.php:322
 msgid "Message"
 msgstr ""
 
-#: include/conversation.php:1264 mod/editpost.php:115
+#: include/conversation.php:1275 mod/editpost.php:116
 msgid "Browser"
 msgstr ""
 
-#: include/conversation.php:1536
+#: include/conversation.php:1547
 msgid "View all"
 msgstr ""
 
-#: include/conversation.php:1560
+#: include/conversation.php:1571
 msgid "Like"
 msgid_plural "Likes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/conversation.php:1563
+#: include/conversation.php:1574
 msgid "Dislike"
 msgid_plural "Dislikes"
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/conversation.php:1569
+#: include/conversation.php:1580
 msgid "Not Attending"
 msgid_plural "Not Attending"
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/conversation.php:1572 src/Content/ContactSelector.php:243
+#: include/conversation.php:1583 src/Content/ContactSelector.php:243
 msgid "Undecided"
 msgid_plural "Undecided"
 msgstr[0] ""
 msgstr[1] ""
 
-#: include/enotify.php:57
+#: include/enotify.php:58
 msgid "Friendica Notification"
 msgstr ""
 
-#: include/enotify.php:60
+#: include/enotify.php:61
 msgid "Thank You,"
 msgstr ""
 
-#: include/enotify.php:63
+#: include/enotify.php:64
 #, php-format
 msgid "%1$s, %2$s Administrator"
 msgstr ""
 
-#: include/enotify.php:65
+#: include/enotify.php:66
 #, php-format
 msgid "%s Administrator"
 msgstr ""
 
-#: include/enotify.php:134
+#: include/enotify.php:135
 #, php-format
 msgid "[Friendica:Notify] New mail received at %s"
 msgstr ""
 
-#: include/enotify.php:136
+#: include/enotify.php:137
 #, php-format
 msgid "%1$s sent you a new private message at %2$s."
 msgstr ""
 
-#: include/enotify.php:137
+#: include/enotify.php:138
 msgid "a private message"
 msgstr ""
 
-#: include/enotify.php:137
+#: include/enotify.php:138
 #, php-format
 msgid "%1$s sent you %2$s."
 msgstr ""
 
-#: include/enotify.php:139
+#: include/enotify.php:140
 #, php-format
 msgid "Please visit %s to view and/or reply to your private messages."
 msgstr ""
 
-#: include/enotify.php:172
+#: include/enotify.php:173
 #, php-format
 msgid "%1$s tagged you on [url=%2$s]a %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:178
+#: include/enotify.php:179
 #, php-format
 msgid "%1$s commented on [url=%2$s]a %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:188
+#: include/enotify.php:189
 #, php-format
 msgid "%1$s tagged you on [url=%2$s]%3$s's %4$s[/url]"
 msgstr ""
 
-#: include/enotify.php:195
+#: include/enotify.php:196
 #, php-format
 msgid "%1$s commented on [url=%2$s]%3$s's %4$s[/url]"
 msgstr ""
 
-#: include/enotify.php:207
+#: include/enotify.php:208
 #, php-format
 msgid "%1$s tagged you on [url=%2$s]your %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:213
+#: include/enotify.php:214
 #, php-format
 msgid "%1$s commented on [url=%2$s]your %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:224
+#: include/enotify.php:225
 #, php-format
 msgid "%1$s tagged you on [url=%2$s]their %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:230
+#: include/enotify.php:231
 #, php-format
 msgid "%1$s commented on [url=%2$s]their %3$s[/url]"
 msgstr ""
 
-#: include/enotify.php:243
+#: include/enotify.php:244
 #, php-format
 msgid "[Friendica:Notify] %s tagged you"
 msgstr ""
 
-#: include/enotify.php:245
+#: include/enotify.php:246
 #, php-format
 msgid "%1$s tagged you at %2$s"
 msgstr ""
 
-#: include/enotify.php:247
+#: include/enotify.php:248
 #, php-format
 msgid "[Friendica:Notify] Comment to conversation #%1$d by %2$s"
 msgstr ""
 
-#: include/enotify.php:249
+#: include/enotify.php:250
 #, php-format
 msgid "%s commented on an item/conversation you have been following."
 msgstr ""
 
-#: include/enotify.php:254 include/enotify.php:269 include/enotify.php:284
-#: include/enotify.php:303 include/enotify.php:319
+#: include/enotify.php:255 include/enotify.php:270 include/enotify.php:285
+#: include/enotify.php:304 include/enotify.php:320
 #, php-format
 msgid "Please visit %s to view and/or reply to the conversation."
 msgstr ""
 
-#: include/enotify.php:261
+#: include/enotify.php:262
 #, php-format
 msgid "[Friendica:Notify] %s posted to your profile wall"
 msgstr ""
 
-#: include/enotify.php:263
+#: include/enotify.php:264
 #, php-format
 msgid "%1$s posted to your profile wall at %2$s"
 msgstr ""
 
-#: include/enotify.php:264
+#: include/enotify.php:265
 #, php-format
 msgid "%1$s posted to [url=%2$s]your wall[/url]"
 msgstr ""
 
-#: include/enotify.php:276
+#: include/enotify.php:277
 #, php-format
 msgid "[Friendica:Notify] %s shared a new post"
 msgstr ""
 
-#: include/enotify.php:278
+#: include/enotify.php:279
 #, php-format
 msgid "%1$s shared a new post at %2$s"
 msgstr ""
 
-#: include/enotify.php:279
+#: include/enotify.php:280
 #, php-format
 msgid "%1$s [url=%2$s]shared a post[/url]."
 msgstr ""
 
-#: include/enotify.php:291
+#: include/enotify.php:292
 #, php-format
 msgid "[Friendica:Notify] %1$s poked you"
 msgstr ""
 
-#: include/enotify.php:293
+#: include/enotify.php:294
 #, php-format
 msgid "%1$s poked you at %2$s"
 msgstr ""
 
-#: include/enotify.php:294
+#: include/enotify.php:295
 #, php-format
 msgid "%1$s [url=%2$s]poked you[/url]."
 msgstr ""
 
-#: include/enotify.php:311
+#: include/enotify.php:312
 #, php-format
 msgid "[Friendica:Notify] %s tagged your post"
 msgstr ""
 
-#: include/enotify.php:313
+#: include/enotify.php:314
 #, php-format
 msgid "%1$s tagged your post at %2$s"
 msgstr ""
 
-#: include/enotify.php:314
+#: include/enotify.php:315
 #, php-format
 msgid "%1$s tagged [url=%2$s]your post[/url]"
 msgstr ""
 
-#: include/enotify.php:326
+#: include/enotify.php:327
 msgid "[Friendica:Notify] Introduction received"
 msgstr ""
 
-#: include/enotify.php:328
+#: include/enotify.php:329
 #, php-format
 msgid "You've received an introduction from '%1$s' at %2$s"
 msgstr ""
 
-#: include/enotify.php:329
+#: include/enotify.php:330
 #, php-format
 msgid "You've received [url=%1$s]an introduction[/url] from %2$s."
 msgstr ""
 
-#: include/enotify.php:334 include/enotify.php:380
+#: include/enotify.php:335 include/enotify.php:381
 #, php-format
 msgid "You may visit their profile at %s"
 msgstr ""
 
-#: include/enotify.php:336
+#: include/enotify.php:337
 #, php-format
 msgid "Please visit %s to approve or reject the introduction."
 msgstr ""
 
-#: include/enotify.php:343
+#: include/enotify.php:344
 msgid "[Friendica:Notify] A new person is sharing with you"
 msgstr ""
 
-#: include/enotify.php:345 include/enotify.php:346
+#: include/enotify.php:346 include/enotify.php:347
 #, php-format
 msgid "%1$s is sharing with you at %2$s"
 msgstr ""
 
-#: include/enotify.php:353
+#: include/enotify.php:354
 msgid "[Friendica:Notify] You have a new follower"
 msgstr ""
 
-#: include/enotify.php:355 include/enotify.php:356
+#: include/enotify.php:356 include/enotify.php:357
 #, php-format
 msgid "You have a new follower at %2$s : %1$s"
 msgstr ""
 
-#: include/enotify.php:369
+#: include/enotify.php:370
 msgid "[Friendica:Notify] Friend suggestion received"
 msgstr ""
 
-#: include/enotify.php:371
+#: include/enotify.php:372
 #, php-format
 msgid "You've received a friend suggestion from '%1$s' at %2$s"
 msgstr ""
 
-#: include/enotify.php:372
+#: include/enotify.php:373
 #, php-format
 msgid "You've received [url=%1$s]a friend suggestion[/url] for %2$s from %3$s."
 msgstr ""
 
-#: include/enotify.php:378
+#: include/enotify.php:379
 msgid "Name:"
 msgstr ""
 
-#: include/enotify.php:379
+#: include/enotify.php:380
 msgid "Photo:"
 msgstr ""
 
-#: include/enotify.php:382
+#: include/enotify.php:383
 #, php-format
 msgid "Please visit %s to approve or reject the suggestion."
 msgstr ""
 
-#: include/enotify.php:390 include/enotify.php:405
+#: include/enotify.php:391 include/enotify.php:406
 msgid "[Friendica:Notify] Connection accepted"
 msgstr ""
 
-#: include/enotify.php:392 include/enotify.php:407
+#: include/enotify.php:393 include/enotify.php:408
 #, php-format
 msgid "'%1$s' has accepted your connection request at %2$s"
 msgstr ""
 
-#: include/enotify.php:393 include/enotify.php:408
+#: include/enotify.php:394 include/enotify.php:409
 #, php-format
 msgid "%2$s has accepted your [url=%1$s]connection request[/url]."
 msgstr ""
 
-#: include/enotify.php:398
+#: include/enotify.php:399
 msgid ""
 "You are now mutual friends and may exchange status updates, photos, and "
 "email without restriction."
 msgstr ""
 
-#: include/enotify.php:400
+#: include/enotify.php:401
 #, php-format
 msgid "Please visit %s if you wish to make any changes to this relationship."
 msgstr ""
 
-#: include/enotify.php:413
+#: include/enotify.php:414
 #, php-format
 msgid ""
 "'%1$s' has chosen to accept you a fan, which restricts some forms of "
@@ -844,37 +800,37 @@ msgid ""
 "automatically."
 msgstr ""
 
-#: include/enotify.php:415
+#: include/enotify.php:416
 #, php-format
 msgid ""
 "'%1$s' may choose to extend this into a two-way or more permissive "
 "relationship in the future."
 msgstr ""
 
-#: include/enotify.php:417
+#: include/enotify.php:418
 #, php-format
 msgid "Please visit %s  if you wish to make any changes to this relationship."
 msgstr ""
 
-#: include/enotify.php:427 mod/removeme.php:46
+#: include/enotify.php:428 mod/removeme.php:46
 msgid "[Friendica System Notify]"
 msgstr ""
 
-#: include/enotify.php:427
+#: include/enotify.php:428
 msgid "registration request"
 msgstr ""
 
-#: include/enotify.php:429
+#: include/enotify.php:430
 #, php-format
 msgid "You've received a registration request from '%1$s' at %2$s"
 msgstr ""
 
-#: include/enotify.php:430
+#: include/enotify.php:431
 #, php-format
 msgid "You've received a [url=%1$s]registration request[/url] from %2$s."
 msgstr ""
 
-#: include/enotify.php:435
+#: include/enotify.php:436
 #, php-format
 msgid ""
 "Full Name:\t%s\n"
@@ -882,107 +838,53 @@ msgid ""
 "Login Name:\t%s (%s)"
 msgstr ""
 
-#: include/enotify.php:441
+#: include/enotify.php:442
 #, php-format
 msgid "Please visit %s to approve or reject the request."
 msgstr ""
 
-#: mod/api.php:84 mod/api.php:106
-msgid "Authorize application connection"
-msgstr ""
-
-#: mod/api.php:85
-msgid "Return to your app and insert this Securty Code:"
-msgstr ""
-
-#: mod/api.php:94 src/Module/BaseAdminModule.php:56
-msgid "Please login to continue."
-msgstr ""
-
-#: mod/api.php:108
-msgid ""
-"Do you want to authorize this application to access your posts and contacts, "
-"and/or create new posts for you?"
-msgstr ""
-
-#: mod/api.php:110 mod/profiles.php:526 mod/profiles.php:530
-#: mod/profiles.php:551 mod/dfrn_request.php:640 mod/follow.php:163
-#: mod/settings.php:1089 mod/settings.php:1095 mod/settings.php:1102
-#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114
-#: mod/settings.php:1118 mod/settings.php:1122 mod/settings.php:1142
-#: mod/settings.php:1143 mod/settings.php:1144 mod/settings.php:1145
-#: mod/settings.php:1146 src/Module/Register.php:98
-msgid "No"
-msgstr ""
-
-#: mod/delegate.php:42
-msgid "Parent user not found."
-msgstr ""
-
-#: mod/delegate.php:149
-msgid "No parent user"
-msgstr ""
-
-#: mod/delegate.php:164
-msgid "Parent Password:"
-msgstr ""
-
-#: mod/delegate.php:164
-msgid ""
-"Please enter the password of the parent account to legitimize your request."
-msgstr ""
-
-#: mod/delegate.php:171
-msgid "Parent User"
-msgstr ""
-
-#: mod/delegate.php:174
-msgid ""
-"Parent users have total control about this account, including the account "
-"settings. Please double check whom you give this access."
-msgstr ""
-
-#: mod/delegate.php:175 mod/settings.php:677 mod/settings.php:784
-#: mod/settings.php:874 mod/settings.php:953 mod/settings.php:1178
-#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69
-#: src/Module/Admin/Logs/Settings.php:65 src/Module/Admin/Themes/Index.php:97
-#: src/Module/Admin/Tos.php:50 src/Module/Admin/Site.php:568
-msgid "Save Settings"
-msgstr ""
-
-#: mod/delegate.php:176 src/Content/Nav.php:263
-msgid "Delegate Page Management"
-msgstr ""
-
-#: mod/delegate.php:177
-msgid "Delegates"
-msgstr ""
-
-#: mod/delegate.php:179
-msgid ""
-"Delegates are able to manage all aspects of this account/page except for "
-"basic account settings. Please do not delegate your personal account to "
-"anybody that you do not trust completely."
-msgstr ""
-
-#: mod/delegate.php:180
-msgid "Existing Page Delegates"
-msgstr ""
-
-#: mod/delegate.php:182
-msgid "Potential Delegates"
+#: include/items.php:355 src/Module/Admin/Themes/Details.php:53
+#: src/Module/Admin/Themes/Index.php:43 src/Module/Debug/ItemBody.php:27
+#: src/Module/Debug/ItemBody.php:40
+msgid "Item not found."
 msgstr ""
 
-#: mod/delegate.php:184 mod/tagrm.php:114
-msgid "Remove"
+#: include/items.php:387
+msgid "Do you really want to delete this item?"
 msgstr ""
 
-#: mod/delegate.php:185
-msgid "Add"
+#: include/items.php:389 mod/suggest.php:73 mod/api.php:110
+#: mod/dfrn_request.php:642 mod/follow.php:163 mod/message.php:150
+#: mod/profiles.php:526 mod/profiles.php:529 mod/profiles.php:551
+#: mod/settings.php:1081 mod/settings.php:1087 mod/settings.php:1094
+#: mod/settings.php:1098 mod/settings.php:1102 mod/settings.php:1106
+#: mod/settings.php:1110 mod/settings.php:1114 mod/settings.php:1134
+#: mod/settings.php:1135 mod/settings.php:1136 mod/settings.php:1137
+#: mod/settings.php:1138 src/Module/Contact.php:444 src/Module/Register.php:91
+msgid "Yes"
 msgstr ""
 
-#: mod/delegate.php:186
-msgid "No entries."
+#: include/items.php:439 mod/ostatus_subscribe.php:18 mod/repair_ostatus.php:16
+#: mod/notes.php:27 mod/profile_photo.php:32 mod/profile_photo.php:177
+#: mod/profile_photo.php:197 mod/suggest.php:39 mod/api.php:35 mod/api.php:40
+#: mod/cal.php:291 mod/common.php:27 mod/crepair.php:90 mod/dfrn_confirm.php:65
+#: mod/editpost.php:22 mod/events.php:214 mod/follow.php:57 mod/follow.php:134
+#: mod/fsuggest.php:63 mod/item.php:174 mod/message.php:56 mod/message.php:101
+#: mod/network.php:38 mod/notifications.php:76 mod/photos.php:163
+#: mod/photos.php:927 mod/poke.php:142 mod/profiles.php:182
+#: mod/profiles.php:499 mod/regmod.php:89 mod/settings.php:54
+#: mod/settings.php:167 mod/settings.php:659 mod/uimport.php:17
+#: mod/unfollow.php:22 mod/unfollow.php:77 mod/unfollow.php:109
+#: mod/wall_attach.php:63 mod/wall_attach.php:66 mod/wall_upload.php:95
+#: mod/wall_upload.php:98 mod/wallmessage.php:19 mod/wallmessage.php:43
+#: mod/wallmessage.php:82 mod/wallmessage.php:106 src/Module/Attach.php:42
+#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22
+#: src/Module/Invite.php:110 src/Module/Notifications/Notify.php:20
+#: src/Module/Profile/Contacts.php:50 src/Module/Search/Directory.php:19
+#: src/Module/Settings/Delegation.php:26 src/Module/Settings/Delegation.php:54
+#: src/Module/Contact.php:361 src/Module/Delegation.php:98
+#: src/Module/FollowConfirm.php:27 src/Module/Register.php:186
+msgid "Permission denied."
 msgstr ""
 
 #: mod/oexchange.php:32
@@ -1017,7 +919,7 @@ msgstr ""
 msgid "failed"
 msgstr ""
 
-#: mod/ostatus_subscribe.php:89 src/Object/Post.php:285
+#: mod/ostatus_subscribe.php:89 src/Object/Post.php:282
 msgid "ignored"
 msgstr ""
 
@@ -1038,9 +940,9 @@ msgid "Profile Visibility Editor"
 msgstr ""
 
 #: mod/profperm.php:117 view/theme/frio/theme.php:268 src/Content/Nav.php:161
-#: src/Model/Profile.php:889 src/Model/Profile.php:925
-#: src/Module/Welcome.php:38 src/Module/Contact.php:618
-#: src/Module/Contact.php:847
+#: src/Model/Profile.php:885 src/Model/Profile.php:921
+#: src/Module/Welcome.php:38 src/Module/Contact.php:639
+#: src/Module/Contact.php:868
 msgid "Profile"
 msgstr ""
 
@@ -1056,19 +958,6 @@ msgstr ""
 msgid "All Contacts (with secure profile access)"
 msgstr ""
 
-#: mod/regmod.php:53
-msgid "Account approved."
-msgstr ""
-
-#: mod/regmod.php:77
-#, php-format
-msgid "Registration revoked for %s"
-msgstr ""
-
-#: mod/regmod.php:84
-msgid "Please login."
-msgstr ""
-
 #: mod/removeme.php:46
 msgid "User deleted their account"
 msgstr ""
@@ -1108,1190 +997,914 @@ msgid_plural "Errors"
 msgstr[0] ""
 msgstr[1] ""
 
-#: mod/tagrm.php:31
-msgid "Tag(s) removed"
-msgstr ""
-
-#: mod/tagrm.php:101
-msgid "Remove Item Tag"
+#: mod/update_community.php:23 mod/update_contact.php:23
+#: mod/update_display.php:24 mod/update_network.php:33 mod/update_notes.php:36
+#: mod/update_profile.php:34
+msgid "[Embedded content - reload page to view]"
 msgstr ""
 
-#: mod/tagrm.php:103
-msgid "Select a tag to remove: "
+#: mod/notes.php:34 src/Model/Profile.php:971
+msgid "Personal Notes"
 msgstr ""
 
-#: mod/uimport.php:30
-msgid "User imports on closed servers can only be done by an administrator."
+#: mod/notes.php:46 mod/editpost.php:72 src/Content/Text/HTML.php:905
+#: src/Module/Filer/SaveTag.php:49
+msgid "Save"
 msgstr ""
 
-#: mod/uimport.php:39 src/Module/Register.php:59
-msgid ""
-"This site has exceeded the number of allowed daily account registrations. "
-"Please try again tomorrow."
+#: mod/ping.php:272
+msgid "{0} wants to be your friend"
 msgstr ""
 
-#: mod/uimport.php:54 src/Module/Register.php:141
-msgid "Import"
+#: mod/ping.php:288
+msgid "{0} requested registration"
 msgstr ""
 
-#: mod/uimport.php:56
-msgid "Move account"
+#: mod/profile_photo.php:58
+msgid "Image uploaded but image cropping failed."
 msgstr ""
 
-#: mod/uimport.php:57
-msgid "You can import an account from another Friendica server."
+#: mod/profile_photo.php:88 mod/profile_photo.php:97 mod/profile_photo.php:106
+#: mod/profile_photo.php:311
+#, php-format
+msgid "Image size reduction [%s] failed."
 msgstr ""
 
-#: mod/uimport.php:58
+#: mod/profile_photo.php:125
 msgid ""
-"You need to export your account from the old server and upload it here. We "
-"will recreate your old account here with all your contacts. We will try also "
-"to inform your friends that you moved here."
+"Shift-reload the page or clear browser cache if the new photo does not "
+"display immediately."
 msgstr ""
 
-#: mod/uimport.php:59
-msgid ""
-"This feature is experimental. We can't import contacts from the OStatus "
-"network (GNU Social/Statusnet) or from Diaspora"
+#: mod/profile_photo.php:133
+msgid "Unable to process image"
 msgstr ""
 
-#: mod/uimport.php:60
-msgid "Account file"
+#: mod/profile_photo.php:152 mod/photos.php:674 mod/photos.php:677
+#: mod/photos.php:706 mod/wall_upload.php:186
+#, php-format
+msgid "Image exceeds size limit of %s"
 msgstr ""
 
-#: mod/uimport.php:60
-msgid ""
-"To export your account, go to \"Settings->Export your personal data\" and "
-"select \"Export account\""
+#: mod/profile_photo.php:161 mod/photos.php:729 mod/wall_upload.php:200
+msgid "Unable to process image."
 msgstr ""
 
-#: mod/unfollow.php:36 mod/unfollow.php:92
-msgid "You aren't following this contact."
+#: mod/profile_photo.php:244
+msgid "Upload File:"
 msgstr ""
 
-#: mod/unfollow.php:46 mod/unfollow.php:98
-msgid "Unfollowing is currently not supported by your network."
+#: mod/profile_photo.php:245
+msgid "Select a profile:"
 msgstr ""
 
-#: mod/unfollow.php:67
-msgid "Contact unfollowed"
+#: mod/profile_photo.php:246 mod/profiles.php:583 src/Module/Welcome.php:39
+msgid "Upload Profile Photo"
 msgstr ""
 
-#: mod/unfollow.php:118
-msgid "Disconnect/Unfollow"
+#: mod/profile_photo.php:247 mod/fbrowser.php:112 mod/fbrowser.php:141
+msgid "Upload"
 msgstr ""
 
-#: mod/unfollow.php:128 mod/dfrn_request.php:647 mod/follow.php:170
-msgid "Your Identity Address:"
+#: mod/profile_photo.php:250
+msgid "or"
 msgstr ""
 
-#: mod/unfollow.php:131 mod/dfrn_request.php:649 mod/follow.php:76
-msgid "Submit Request"
+#: mod/profile_photo.php:251
+msgid "skip this step"
 msgstr ""
 
-#: mod/unfollow.php:137 mod/follow.php:179 mod/notifications.php:190
-#: mod/notifications.php:282 src/Module/Admin/Blocklist/Contact.php:83
-#: src/Module/Contact.php:603
-msgid "Profile URL"
+#: mod/profile_photo.php:251
+msgid "select a photo from your photo albums"
 msgstr ""
 
-#: mod/unfollow.php:147 mod/follow.php:195 src/Model/Profile.php:920
-#: src/Module/Contact.php:842
-msgid "Status Messages and Posts"
+#: mod/profile_photo.php:264
+msgid "Crop Image"
 msgstr ""
 
-#: mod/update_community.php:23 mod/update_contact.php:23
-#: mod/update_display.php:24 mod/update_network.php:33 mod/update_notes.php:36
-#: mod/update_profile.php:34
-msgid "[Embedded content - reload page to view]"
+#: mod/profile_photo.php:265
+msgid "Please adjust the image cropping for optimum viewing."
 msgstr ""
 
-#: mod/wall_attach.php:26 mod/wall_attach.php:33 mod/wall_attach.php:85
-#: mod/wall_upload.php:42 mod/wall_upload.php:58 mod/wall_upload.php:116
-#: mod/wall_upload.php:167 mod/wall_upload.php:170
-msgid "Invalid request."
+#: mod/profile_photo.php:267
+msgid "Done Editing"
 msgstr ""
 
-#: mod/wall_attach.php:103
-msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
+#: mod/profile_photo.php:301
+msgid "Image uploaded successfully."
 msgstr ""
 
-#: mod/wall_attach.php:103
-msgid "Or - did you try to upload an empty file?"
+#: mod/profile_photo.php:303 mod/photos.php:758 mod/wall_upload.php:239
+msgid "Image upload failed."
 msgstr ""
 
-#: mod/wall_attach.php:114
-#, php-format
-msgid "File exceeds size limit of %s"
+#: mod/suggest.php:28
+msgid "Contact suggestion successfully ignored."
 msgstr ""
 
-#: mod/wall_attach.php:129
-msgid "File upload failed."
+#: mod/suggest.php:52
+msgid ""
+"No suggestions available. If this is a new site, please try again in 24 "
+"hours."
 msgstr ""
 
-#: mod/wall_upload.php:198 mod/photos.php:683 mod/photos.php:686
-#: mod/photos.php:715 mod/profile_photo.php:152
-#, php-format
-msgid "Image exceeds size limit of %s"
+#: mod/suggest.php:71
+msgid "Do you really want to delete this suggestion?"
 msgstr ""
 
-#: mod/wall_upload.php:212 mod/photos.php:738 mod/profile_photo.php:161
-msgid "Unable to process image."
+#: mod/suggest.php:89 mod/suggest.php:109
+msgid "Ignore/Hide"
 msgstr ""
 
-#: mod/wall_upload.php:243
-msgid "Wall Photos"
+#: mod/suggest.php:106 mod/match.php:102 src/Content/Widget.php:43
+#: src/Module/AllFriends.php:91 src/Module/BaseSearchModule.php:135
+msgid "Connect"
 msgstr ""
 
-#: mod/wall_upload.php:251 mod/photos.php:767 mod/profile_photo.php:303
-msgid "Image upload failed."
+#: mod/suggest.php:119 view/theme/vier/theme.php:181 src/Content/Widget.php:70
+msgid "Friend Suggestions"
 msgstr ""
 
-#: mod/wallmessage.php:52 mod/wallmessage.php:115
-#, php-format
-msgid "Number of daily wall messages for %s exceeded. Message failed."
+#: mod/api.php:85 mod/api.php:107
+msgid "Authorize application connection"
 msgstr ""
 
-#: mod/wallmessage.php:60 mod/message.php:70
-msgid "No recipient selected."
+#: mod/api.php:86
+msgid "Return to your app and insert this Securty Code:"
 msgstr ""
 
-#: mod/wallmessage.php:63
-msgid "Unable to check your home location."
+#: mod/api.php:95 src/Module/BaseAdminModule.php:56
+msgid "Please login to continue."
 msgstr ""
 
-#: mod/wallmessage.php:66 mod/message.php:77
-msgid "Message could not be sent."
+#: mod/api.php:109
+msgid ""
+"Do you want to authorize this application to access your posts and contacts, "
+"and/or create new posts for you?"
 msgstr ""
 
-#: mod/wallmessage.php:69 mod/message.php:80
-msgid "Message collection failure."
+#: mod/api.php:111 mod/dfrn_request.php:642 mod/follow.php:163
+#: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551
+#: mod/settings.php:1081 mod/settings.php:1087 mod/settings.php:1094
+#: mod/settings.php:1098 mod/settings.php:1102 mod/settings.php:1106
+#: mod/settings.php:1110 mod/settings.php:1114 mod/settings.php:1134
+#: mod/settings.php:1135 mod/settings.php:1136 mod/settings.php:1137
+#: mod/settings.php:1138 src/Module/Register.php:92
+msgid "No"
 msgstr ""
 
-#: mod/wallmessage.php:72 mod/message.php:83
-msgid "Message sent."
+#: mod/cal.php:31 mod/cal.php:35 mod/community.php:32 mod/follow.php:20
+#: src/Module/Debug/ItemBody.php:18 src/Module/Diaspora/Receive.php:39
+#: src/Module/Item/Ignore.php:25
+msgid "Access denied."
 msgstr ""
 
-#: mod/wallmessage.php:89 mod/wallmessage.php:98
-msgid "No recipient."
+#: mod/cal.php:130 mod/display.php:296 src/Module/Profile.php:175
+msgid "Access to this profile has been restricted."
 msgstr ""
 
-#: mod/wallmessage.php:123 mod/message.php:204 mod/message.php:360
-msgid "Please enter a link URL:"
+#: mod/cal.php:261 mod/events.php:389 view/theme/frio/theme.php:271
+#: view/theme/frio/theme.php:275 src/Content/Nav.php:164
+#: src/Content/Nav.php:228 src/Model/Profile.php:949 src/Model/Profile.php:960
+msgid "Events"
 msgstr ""
 
-#: mod/wallmessage.php:128 mod/message.php:246
-msgid "Send Private Message"
+#: mod/cal.php:262 mod/events.php:390
+msgid "View"
 msgstr ""
 
-#: mod/wallmessage.php:129
-#, php-format
-msgid ""
-"If you wish for %s to respond, please check that the privacy settings on "
-"your site allow private mail from unknown senders."
+#: mod/cal.php:263 mod/events.php:392
+msgid "Previous"
 msgstr ""
 
-#: mod/wallmessage.php:130 mod/message.php:247 mod/message.php:430
-msgid "To:"
+#: mod/cal.php:264 mod/events.php:393 src/Module/Install.php:174
+msgid "Next"
 msgstr ""
 
-#: mod/wallmessage.php:131 mod/message.php:251 mod/message.php:432
-msgid "Subject:"
+#: mod/cal.php:267 mod/events.php:398 src/Model/Event.php:429
+msgid "today"
 msgstr ""
 
-#: mod/wallmessage.php:137 mod/message.php:255 mod/message.php:435
-#: src/Module/Invite.php:150
-msgid "Your message:"
+#: mod/cal.php:268 mod/events.php:399 src/Util/Temporal.php:313
+#: src/Model/Event.php:430
+msgid "month"
 msgstr ""
 
-#: mod/wallmessage.php:140 mod/editpost.php:76 mod/message.php:259
-#: mod/message.php:440
-msgid "Insert web link"
+#: mod/cal.php:269 mod/events.php:400 src/Util/Temporal.php:314
+#: src/Model/Event.php:431
+msgid "week"
 msgstr ""
 
-#: mod/match.php:49
-msgid "No keywords to match. Please add keywords to your default profile."
+#: mod/cal.php:270 mod/events.php:401 src/Util/Temporal.php:315
+#: src/Model/Event.php:432
+msgid "day"
 msgstr ""
 
-#: mod/match.php:102 mod/suggest.php:106 src/Content/Widget.php:42
-#: src/Module/AllFriends.php:91 src/Module/BaseSearchModule.php:131
-msgid "Connect"
+#: mod/cal.php:271 mod/events.php:402
+msgid "list"
 msgstr ""
 
-#: mod/match.php:115 src/Content/Pager.php:198
-msgid "first"
+#: mod/cal.php:284 src/Model/User.php:415 src/Console/NewPassword.php:88
+msgid "User not found"
 msgstr ""
 
-#: mod/match.php:120 src/Content/Pager.php:258
-msgid "next"
+#: mod/cal.php:300
+msgid "This calendar format is not supported"
 msgstr ""
 
-#: mod/match.php:130 src/Module/BaseSearchModule.php:92
-msgid "No matches"
+#: mod/cal.php:302
+msgid "No exportable data found"
 msgstr ""
 
-#: mod/match.php:135
-msgid "Profile Match"
+#: mod/cal.php:319
+msgid "calendar"
 msgstr ""
 
-#: mod/profiles.php:43 mod/profiles.php:152 mod/profiles.php:196
-#: mod/profiles.php:511 mod/dfrn_confirm.php:70
-msgid "Profile not found."
+#: mod/common.php:90
+msgid "No contacts in common."
 msgstr ""
 
-#: mod/profiles.php:62
-msgid "Profile deleted."
+#: mod/common.php:141 src/Module/Contact.php:891
+msgid "Common Friends"
 msgstr ""
 
-#: mod/profiles.php:78 mod/profiles.php:114
-msgid "Profile-"
+#: mod/community.php:25 mod/dfrn_request.php:599 mod/display.php:200
+#: mod/photos.php:841 mod/videos.php:115 src/Module/Debug/Probe.php:20
+#: src/Module/Debug/WebFinger.php:19 src/Module/Search/Index.php:31
+#: src/Module/Search/Index.php:36 src/Module/Directory.php:31
+msgid "Public access denied."
 msgstr ""
 
-#: mod/profiles.php:97 mod/profiles.php:135
-msgid "New profile created."
+#: mod/community.php:68
+msgid "Community option not available."
 msgstr ""
 
-#: mod/profiles.php:120
-msgid "Profile unavailable to clone."
+#: mod/community.php:85
+msgid "Not available."
 msgstr ""
 
-#: mod/profiles.php:206
-msgid "Profile Name is required."
+#: mod/community.php:95
+msgid "Local Community"
 msgstr ""
 
-#: mod/profiles.php:346
-msgid "Marital Status"
+#: mod/community.php:98
+msgid "Posts from local users on this server"
 msgstr ""
 
-#: mod/profiles.php:349
-msgid "Romantic Partner"
+#: mod/community.php:106
+msgid "Global Community"
 msgstr ""
 
-#: mod/profiles.php:358
-msgid "Work/Employment"
+#: mod/community.php:109
+msgid "Posts from users of the whole federated network"
 msgstr ""
 
-#: mod/profiles.php:361
-msgid "Religion"
+#: mod/community.php:155 src/Module/Search/Index.php:178
+msgid "No results."
 msgstr ""
 
-#: mod/profiles.php:364
-msgid "Political Views"
+#: mod/community.php:207
+msgid ""
+"This community stream shows all public posts received by this node. They may "
+"not reflect the opinions of this node’s users."
 msgstr ""
 
-#: mod/profiles.php:367
-msgid "Gender"
+#: mod/crepair.php:79
+msgid "Contact settings applied."
 msgstr ""
 
-#: mod/profiles.php:370
-msgid "Sexual Preference"
+#: mod/crepair.php:81
+msgid "Contact update failed."
 msgstr ""
 
-#: mod/profiles.php:373
-msgid "XMPP"
+#: mod/crepair.php:102 mod/dfrn_confirm.php:126 mod/fsuggest.php:32
+#: mod/fsuggest.php:75 mod/redir.php:32 mod/redir.php:122 mod/redir.php:137
+#: src/Module/Group.php:92 src/Module/FollowConfirm.php:46
+msgid "Contact not found."
 msgstr ""
 
-#: mod/profiles.php:376
-msgid "Homepage"
+#: mod/crepair.php:115
+msgid ""
+"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
+"information your communications with this contact may stop working."
 msgstr ""
 
-#: mod/profiles.php:379 mod/profiles.php:578
-msgid "Interests"
+#: mod/crepair.php:116
+msgid ""
+"Please use your browser 'Back' button <strong>now</strong> if you are "
+"uncertain what to do on this page."
 msgstr ""
 
-#: mod/profiles.php:382
-msgid "Address"
+#: mod/crepair.php:130 mod/crepair.php:132
+msgid "No mirroring"
 msgstr ""
 
-#: mod/profiles.php:389 mod/profiles.php:574
-msgid "Location"
+#: mod/crepair.php:130
+msgid "Mirror as forwarded posting"
 msgstr ""
 
-#: mod/profiles.php:469
-msgid "Profile updated."
+#: mod/crepair.php:130 mod/crepair.php:132
+msgid "Mirror as my own posting"
 msgstr ""
 
-#: mod/profiles.php:523
-msgid "Hide contacts and friends:"
+#: mod/crepair.php:145
+msgid "Return to contact editor"
 msgstr ""
 
-#: mod/profiles.php:528
-msgid "Hide your contact/friend list from viewers of this profile?"
+#: mod/crepair.php:147
+msgid "Refetch contact data"
 msgstr ""
 
-#: mod/profiles.php:548
-msgid "Show more profile fields:"
+#: mod/crepair.php:149 mod/events.php:558 mod/fsuggest.php:92
+#: mod/message.php:261 mod/message.php:441 mod/photos.php:956
+#: mod/photos.php:1066 mod/photos.php:1352 mod/photos.php:1397
+#: mod/photos.php:1436 mod/photos.php:1501 mod/poke.php:185
+#: mod/profiles.php:562 view/theme/duepuntozero/config.php:72
+#: view/theme/frio/config.php:127 view/theme/quattro/config.php:74
+#: view/theme/vier/config.php:122 src/Module/Debug/Localtime.php:45
+#: src/Module/Invite.php:157 src/Module/Item/Compose.php:182
+#: src/Module/Contact.php:581 src/Module/Delegation.php:131
+#: src/Module/Install.php:212 src/Module/Install.php:252
+#: src/Module/Install.php:288 src/Object/Post.php:884
+msgid "Submit"
 msgstr ""
 
-#: mod/profiles.php:560
-msgid "Profile Actions"
+#: mod/crepair.php:150
+msgid "Remote Self"
 msgstr ""
 
-#: mod/profiles.php:561
-msgid "Edit Profile Details"
+#: mod/crepair.php:153
+msgid "Mirror postings from this contact"
 msgstr ""
 
-#: mod/profiles.php:562 mod/crepair.php:149 mod/fsuggest.php:92
-#: mod/manage.php:183 mod/message.php:261 mod/message.php:441
-#: mod/photos.php:991 mod/photos.php:1101 mod/photos.php:1387
-#: mod/photos.php:1432 mod/photos.php:1471 mod/photos.php:1531 mod/poke.php:184
-#: mod/events.php:552 view/theme/duepuntozero/config.php:72
-#: view/theme/frio/config.php:127 view/theme/quattro/config.php:74
-#: view/theme/vier/config.php:120 src/Module/Debug/Localtime.php:45
-#: src/Module/Invite.php:157 src/Module/Item/Compose.php:178
-#: src/Module/Contact.php:560 src/Module/Install.php:212
-#: src/Module/Install.php:252 src/Module/Install.php:288
-#: src/Object/Post.php:879
-msgid "Submit"
+#: mod/crepair.php:155
+msgid ""
+"Mark this contact as remote_self, this will cause friendica to repost new "
+"entries from this contact."
 msgstr ""
 
-#: mod/profiles.php:563
-msgid "Change Profile Photo"
+#: mod/crepair.php:159 mod/settings.php:671 mod/settings.php:697
+#: src/Module/Admin/Blocklist/Contact.php:73 src/Module/Admin/Users.php:272
+#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297
+#: src/Module/Admin/Users.php:313
+msgid "Name"
 msgstr ""
 
-#: mod/profiles.php:565
-msgid "View this profile"
+#: mod/crepair.php:160
+msgid "Account Nickname"
 msgstr ""
 
-#: mod/profiles.php:566
-msgid "View all profiles"
+#: mod/crepair.php:161
+msgid "@Tagname - overrides Name/Nickname"
 msgstr ""
 
-#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:423
-msgid "Edit visibility"
+#: mod/crepair.php:162
+msgid "Account URL"
 msgstr ""
 
-#: mod/profiles.php:568
-msgid "Create a new profile using these settings"
+#: mod/crepair.php:163
+msgid "Account URL Alias"
 msgstr ""
 
-#: mod/profiles.php:569
-msgid "Clone this profile"
+#: mod/crepair.php:164
+msgid "Friend Request URL"
 msgstr ""
 
-#: mod/profiles.php:570
-msgid "Delete this profile"
+#: mod/crepair.php:165
+msgid "Friend Confirm URL"
 msgstr ""
 
-#: mod/profiles.php:572
-msgid "Basic information"
+#: mod/crepair.php:166
+msgid "Notification Endpoint URL"
 msgstr ""
 
-#: mod/profiles.php:573
-msgid "Profile picture"
+#: mod/crepair.php:167
+msgid "Poll/Feed URL"
 msgstr ""
 
-#: mod/profiles.php:575
-msgid "Preferences"
+#: mod/crepair.php:168
+msgid "New photo from this URL"
 msgstr ""
 
-#: mod/profiles.php:576
-msgid "Status information"
+#: mod/dfrn_confirm.php:71 mod/profiles.php:43 mod/profiles.php:152
+#: mod/profiles.php:196 mod/profiles.php:511
+msgid "Profile not found."
 msgstr ""
 
-#: mod/profiles.php:577
-msgid "Additional information"
+#: mod/dfrn_confirm.php:127
+msgid ""
+"This may occasionally happen if contact was requested by both persons and it "
+"has already been approved."
 msgstr ""
 
-#: mod/profiles.php:579 mod/network.php:992
-#: src/Core/NotificationsManager.php:158
-msgid "Personal"
+#: mod/dfrn_confirm.php:228
+msgid "Response from remote site was not understood."
 msgstr ""
 
-#: mod/profiles.php:580
-msgid "Relation"
+#: mod/dfrn_confirm.php:235 mod/dfrn_confirm.php:241
+msgid "Unexpected response from remote site: "
 msgstr ""
 
-#: mod/profiles.php:581 src/Util/Temporal.php:79 src/Util/Temporal.php:81
-msgid "Miscellaneous"
+#: mod/dfrn_confirm.php:250
+msgid "Confirmation completed successfully."
 msgstr ""
 
-#: mod/profiles.php:583 mod/profile_photo.php:246 src/Module/Welcome.php:39
-msgid "Upload Profile Photo"
+#: mod/dfrn_confirm.php:262
+msgid "Temporary failure. Please wait and try again."
 msgstr ""
 
-#: mod/profiles.php:584
-msgid "Your Gender:"
+#: mod/dfrn_confirm.php:265
+msgid "Introduction failed or was revoked."
 msgstr ""
 
-#: mod/profiles.php:585
-msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
+#: mod/dfrn_confirm.php:270
+msgid "Remote site reported: "
 msgstr ""
 
-#: mod/profiles.php:586 src/Model/Profile.php:808
-msgid "Sexual Preference:"
+#: mod/dfrn_confirm.php:375
+#, php-format
+msgid "No user record found for '%s' "
 msgstr ""
 
-#: mod/profiles.php:587
-msgid "Example: fishing photography software"
+#: mod/dfrn_confirm.php:385
+msgid "Our site encryption key is apparently messed up."
 msgstr ""
 
-#: mod/profiles.php:592
-msgid "Profile Name:"
+#: mod/dfrn_confirm.php:396
+msgid "Empty site URL was provided or URL could not be decrypted by us."
 msgstr ""
 
-#: mod/profiles.php:592 mod/events.php:510 mod/events.php:542
-msgid "Required"
+#: mod/dfrn_confirm.php:412
+msgid "Contact record was not found for you on our site."
 msgstr ""
 
-#: mod/profiles.php:594
+#: mod/dfrn_confirm.php:426
+#, php-format
+msgid "Site public key not available in contact record for URL %s."
+msgstr ""
+
+#: mod/dfrn_confirm.php:442
 msgid ""
-"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
-"be visible to anybody using the internet."
+"The ID provided by your system is a duplicate on our system. It should work "
+"if you try again."
 msgstr ""
 
-#: mod/profiles.php:595
-msgid "Your Full Name:"
+#: mod/dfrn_confirm.php:453
+msgid "Unable to set your contact credentials on our system."
 msgstr ""
 
-#: mod/profiles.php:596
-msgid "Title/Description:"
+#: mod/dfrn_confirm.php:509
+msgid "Unable to update your contact profile details on our system"
 msgstr ""
 
-#: mod/profiles.php:599
-msgid "Street Address:"
+#: mod/dfrn_confirm.php:539 mod/dfrn_request.php:562 src/Model/Contact.php:2589
+msgid "[Name Withheld]"
 msgstr ""
 
-#: mod/profiles.php:600
-msgid "Locality/City:"
+#: mod/dfrn_poll.php:123 mod/dfrn_poll.php:526
+#, php-format
+msgid "%1$s welcomes %2$s"
 msgstr ""
 
-#: mod/profiles.php:601
-msgid "Region/State:"
+#: mod/dfrn_request.php:100
+msgid "This introduction has already been accepted."
 msgstr ""
 
-#: mod/profiles.php:602
-msgid "Postal/Zip Code:"
+#: mod/dfrn_request.php:118 mod/dfrn_request.php:356
+msgid "Profile location is not valid or does not contain profile information."
 msgstr ""
 
-#: mod/profiles.php:603
-msgid "Country:"
+#: mod/dfrn_request.php:122 mod/dfrn_request.php:360
+msgid "Warning: profile location has no identifiable owner name."
 msgstr ""
 
-#: mod/profiles.php:604 src/Util/Temporal.php:149
-msgid "Age: "
+#: mod/dfrn_request.php:125 mod/dfrn_request.php:363
+msgid "Warning: profile location has no profile photo."
 msgstr ""
 
-#: mod/profiles.php:607
-msgid "Who: (if applicable)"
-msgstr ""
+#: mod/dfrn_request.php:129 mod/dfrn_request.php:367
+#, php-format
+msgid "%d required parameter was not found at the given location"
+msgid_plural "%d required parameters were not found at the given location"
+msgstr[0] ""
+msgstr[1] ""
 
-#: mod/profiles.php:607
-msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
+#: mod/dfrn_request.php:167
+msgid "Introduction complete."
 msgstr ""
 
-#: mod/profiles.php:608
-msgid "Since [date]:"
+#: mod/dfrn_request.php:203
+msgid "Unrecoverable protocol error."
 msgstr ""
 
-#: mod/profiles.php:610
-msgid "Tell us about yourself..."
+#: mod/dfrn_request.php:230
+msgid "Profile unavailable."
 msgstr ""
 
-#: mod/profiles.php:611
-msgid "XMPP (Jabber) address:"
+#: mod/dfrn_request.php:251
+#, php-format
+msgid "%s has received too many connection requests today."
 msgstr ""
 
-#: mod/profiles.php:611
-msgid ""
-"The XMPP address will be propagated to your contacts so that they can follow "
-"you."
+#: mod/dfrn_request.php:252
+msgid "Spam protection measures have been invoked."
 msgstr ""
 
-#: mod/profiles.php:612
-msgid "Homepage URL:"
+#: mod/dfrn_request.php:253
+msgid "Friends are advised to please try again in 24 hours."
 msgstr ""
 
-#: mod/profiles.php:613 src/Model/Profile.php:816
-msgid "Hometown:"
+#: mod/dfrn_request.php:277
+msgid "Invalid locator"
 msgstr ""
 
-#: mod/profiles.php:614 src/Model/Profile.php:824
-msgid "Political Views:"
+#: mod/dfrn_request.php:313
+msgid "You have already introduced yourself here."
 msgstr ""
 
-#: mod/profiles.php:615
-msgid "Religious Views:"
+#: mod/dfrn_request.php:316
+#, php-format
+msgid "Apparently you are already friends with %s."
 msgstr ""
 
-#: mod/profiles.php:616
-msgid "Public Keywords:"
+#: mod/dfrn_request.php:336
+msgid "Invalid profile URL."
 msgstr ""
 
-#: mod/profiles.php:616
-msgid "(Used for suggesting potential friends, can be seen by others)"
+#: mod/dfrn_request.php:342 src/Model/Contact.php:2212
+msgid "Disallowed profile URL."
 msgstr ""
 
-#: mod/profiles.php:617
-msgid "Private Keywords:"
+#: mod/dfrn_request.php:348 src/Model/Contact.php:2217
+#: src/Module/Friendica.php:59
+msgid "Blocked domain"
 msgstr ""
 
-#: mod/profiles.php:617
-msgid "(Used for searching profiles, never shown to others)"
+#: mod/dfrn_request.php:415 src/Module/Contact.php:143
+msgid "Failed to update contact record."
 msgstr ""
 
-#: mod/profiles.php:618 src/Model/Profile.php:840
-msgid "Likes:"
+#: mod/dfrn_request.php:435
+msgid "Your introduction has been sent."
 msgstr ""
 
-#: mod/profiles.php:619 src/Model/Profile.php:844
-msgid "Dislikes:"
+#: mod/dfrn_request.php:473
+msgid ""
+"Remote subscription can't be done for your network. Please subscribe "
+"directly on your system."
 msgstr ""
 
-#: mod/profiles.php:620
-msgid "Musical interests"
+#: mod/dfrn_request.php:489
+msgid "Please login to confirm introduction."
 msgstr ""
 
-#: mod/profiles.php:621
-msgid "Books, literature"
+#: mod/dfrn_request.php:497
+msgid ""
+"Incorrect identity currently logged in. Please login to <strong>this</"
+"strong> profile."
 msgstr ""
 
-#: mod/profiles.php:622
-msgid "Television"
+#: mod/dfrn_request.php:511 mod/dfrn_request.php:526
+msgid "Confirm"
 msgstr ""
 
-#: mod/profiles.php:623
-msgid "Film/dance/culture/entertainment"
+#: mod/dfrn_request.php:522
+msgid "Hide this contact"
 msgstr ""
 
-#: mod/profiles.php:624
-msgid "Hobbies/Interests"
+#: mod/dfrn_request.php:524
+#, php-format
+msgid "Welcome home %s."
 msgstr ""
 
-#: mod/profiles.php:625
-msgid "Love/romance"
+#: mod/dfrn_request.php:525
+#, php-format
+msgid "Please confirm your introduction/connection request to %s."
 msgstr ""
 
-#: mod/profiles.php:626
-msgid "Work/employment"
+#: mod/dfrn_request.php:634
+msgid ""
+"Please enter your 'Identity Address' from one of the following supported "
+"communications networks:"
 msgstr ""
 
-#: mod/profiles.php:627
-msgid "School/education"
+#: mod/dfrn_request.php:636
+#, php-format
+msgid ""
+"If you are not yet a member of the free social web, <a href=\"%s\">follow "
+"this link to find a public Friendica site and join us today</a>."
 msgstr ""
 
-#: mod/profiles.php:628
-msgid "Contact information and Social Networks"
+#: mod/dfrn_request.php:639
+msgid "Friend/Connection Request"
 msgstr ""
 
-#: mod/profiles.php:659 src/Model/Profile.php:419
-msgid "Profile Image"
+#: mod/dfrn_request.php:640
+msgid ""
+"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
+"testuser@gnusocial.de"
 msgstr ""
 
-#: mod/profiles.php:661 src/Model/Profile.php:422
-msgid "visible to everybody"
+#: mod/dfrn_request.php:641 mod/follow.php:162
+msgid "Please answer the following:"
 msgstr ""
 
-#: mod/profiles.php:668
-msgid "Edit/Manage Profiles"
+#: mod/dfrn_request.php:642 mod/follow.php:163
+#, php-format
+msgid "Does %s know you?"
 msgstr ""
 
-#: mod/profiles.php:669 src/Model/Profile.php:409 src/Model/Profile.php:430
-msgid "Change profile photo"
+#: mod/dfrn_request.php:643 mod/follow.php:164
+msgid "Add a personal note:"
 msgstr ""
 
-#: mod/profiles.php:670 src/Model/Profile.php:410
-msgid "Create New Profile"
+#: mod/dfrn_request.php:645
+msgid "Friendica"
 msgstr ""
 
-#: mod/cal.php:34 mod/cal.php:38 mod/community.php:40 mod/follow.php:20
-#: src/Module/Debug/ItemBody.php:18
-msgid "Access denied."
+#: mod/dfrn_request.php:646
+msgid "GNU Social (Pleroma, Mastodon)"
 msgstr ""
 
-#: mod/cal.php:140 mod/display.php:303 src/Module/Profile.php:185
-msgid "Access to this profile has been restricted."
+#: mod/dfrn_request.php:647
+msgid "Diaspora (Socialhome, Hubzilla)"
 msgstr ""
 
-#: mod/cal.php:271 mod/events.php:383 view/theme/frio/theme.php:271
-#: view/theme/frio/theme.php:275 src/Content/Nav.php:164
-#: src/Content/Nav.php:228 src/Model/Profile.php:953 src/Model/Profile.php:964
-msgid "Events"
+#: mod/dfrn_request.php:648
+#, php-format
+msgid ""
+" - please do not use this form.  Instead, enter %s into your Diaspora search "
+"bar."
 msgstr ""
 
-#: mod/cal.php:272 mod/events.php:384
-msgid "View"
+#: mod/dfrn_request.php:649 mod/follow.php:170 mod/unfollow.php:128
+msgid "Your Identity Address:"
 msgstr ""
 
-#: mod/cal.php:273 mod/events.php:386
-msgid "Previous"
+#: mod/dfrn_request.php:651 mod/follow.php:76 mod/unfollow.php:131
+msgid "Submit Request"
 msgstr ""
 
-#: mod/cal.php:274 mod/events.php:387 src/Module/Install.php:174
-msgid "Next"
+#: mod/display.php:255 mod/display.php:332
+msgid "The requested item doesn't exist or has been deleted."
 msgstr ""
 
-#: mod/cal.php:277 mod/events.php:392 src/Model/Event.php:428
-msgid "today"
+#: mod/display.php:410
+msgid "The feed for this item is unavailable."
 msgstr ""
 
-#: mod/cal.php:278 mod/events.php:393 src/Util/Temporal.php:314
-#: src/Model/Event.php:429
-msgid "month"
+#: mod/editpost.php:29 mod/editpost.php:39
+msgid "Item not found"
 msgstr ""
 
-#: mod/cal.php:279 mod/events.php:394 src/Util/Temporal.php:315
-#: src/Model/Event.php:430
-msgid "week"
+#: mod/editpost.php:46
+msgid "Edit post"
 msgstr ""
 
-#: mod/cal.php:280 mod/events.php:395 src/Util/Temporal.php:316
-#: src/Model/Event.php:431
-msgid "day"
+#: mod/editpost.php:77 mod/message.php:259 mod/message.php:440
+#: mod/wallmessage.php:140
+msgid "Insert web link"
 msgstr ""
 
-#: mod/cal.php:281 mod/events.php:396
-msgid "list"
+#: mod/editpost.php:78
+msgid "web link"
 msgstr ""
 
-#: mod/cal.php:294 src/Model/User.php:384 src/Console/NewPassword.php:88
-msgid "User not found"
+#: mod/editpost.php:79
+msgid "Insert video link"
 msgstr ""
 
-#: mod/cal.php:310
-msgid "This calendar format is not supported"
+#: mod/editpost.php:80
+msgid "video link"
 msgstr ""
 
-#: mod/cal.php:312
-msgid "No exportable data found"
+#: mod/editpost.php:81
+msgid "Insert audio link"
 msgstr ""
 
-#: mod/cal.php:329
-msgid "calendar"
+#: mod/editpost.php:82
+msgid "audio link"
 msgstr ""
 
-#: mod/common.php:90
-msgid "No contacts in common."
+#: mod/editpost.php:96 src/Core/ACL.php:309 src/Module/Item/Compose.php:204
+msgid "CC: email addresses"
 msgstr ""
 
-#: mod/common.php:141 src/Module/Contact.php:870
-msgid "Common Friends"
+#: mod/editpost.php:103 src/Core/ACL.php:310
+msgid "Example: bob@example.com, mary@example.com"
 msgstr ""
 
-#: mod/community.php:33 mod/dfrn_request.php:597 mod/photos.php:850
-#: mod/search.php:87 mod/search.php:93 mod/videos.php:118 mod/display.php:201
-#: src/Module/Debug/Probe.php:20 src/Module/Debug/WebFinger.php:19
-#: src/Module/Directory.php:30
-msgid "Public access denied."
+#: mod/events.php:120 mod/events.php:122
+msgid "Event can not end before it has started."
 msgstr ""
 
-#: mod/community.php:76
-msgid "Community option not available."
+#: mod/events.php:129 mod/events.php:131
+msgid "Event title and start time are required."
 msgstr ""
 
-#: mod/community.php:93
-msgid "Not available."
+#: mod/events.php:391
+msgid "Create New Event"
 msgstr ""
 
-#: mod/community.php:103
-msgid "Local Community"
+#: mod/events.php:514
+msgid "Event details"
 msgstr ""
 
-#: mod/community.php:106
-msgid "Posts from local users on this server"
+#: mod/events.php:515
+msgid "Starting date and Title are required."
 msgstr ""
 
-#: mod/community.php:114
-msgid "Global Community"
+#: mod/events.php:516 mod/events.php:521
+msgid "Event Starts:"
 msgstr ""
 
-#: mod/community.php:117
-msgid "Posts from users of the whole federated network"
+#: mod/events.php:516 mod/events.php:548 mod/profiles.php:592
+msgid "Required"
 msgstr ""
 
-#: mod/community.php:163 mod/search.php:222
-msgid "No results."
+#: mod/events.php:529 mod/events.php:554
+msgid "Finish date/time is not known or not relevant"
 msgstr ""
 
-#: mod/community.php:215
-msgid ""
-"This community stream shows all public posts received by this node. They may "
-"not reflect the opinions of this node’s users."
+#: mod/events.php:531 mod/events.php:536
+msgid "Event Finishes:"
 msgstr ""
 
-#: mod/crepair.php:79
-msgid "Contact settings applied."
+#: mod/events.php:542 mod/events.php:555
+msgid "Adjust for viewer timezone"
 msgstr ""
 
-#: mod/crepair.php:81
-msgid "Contact update failed."
+#: mod/events.php:544
+msgid "Description:"
 msgstr ""
 
-#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:32
-#: mod/fsuggest.php:75 mod/redir.php:32 mod/redir.php:140
-#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92
-msgid "Contact not found."
+#: mod/events.php:546 mod/notifications.php:276 src/Model/Event.php:69
+#: src/Model/Event.php:96 src/Model/Event.php:438 src/Model/Event.php:934
+#: src/Model/Profile.php:443 src/Module/Contact.php:628
+#: src/Module/Directory.php:135
+msgid "Location:"
 msgstr ""
 
-#: mod/crepair.php:115
-msgid ""
-"<strong>WARNING: This is highly advanced</strong> and if you enter incorrect "
-"information your communications with this contact may stop working."
+#: mod/events.php:548 mod/events.php:550
+msgid "Title:"
 msgstr ""
 
-#: mod/crepair.php:116
-msgid ""
-"Please use your browser 'Back' button <strong>now</strong> if you are "
-"uncertain what to do on this page."
+#: mod/events.php:551 mod/events.php:552
+msgid "Share this event"
 msgstr ""
 
-#: mod/crepair.php:130 mod/crepair.php:132
-msgid "No mirroring"
+#: mod/events.php:559 src/Model/Profile.php:886
+msgid "Basic"
 msgstr ""
 
-#: mod/crepair.php:130
-msgid "Mirror as forwarded posting"
+#: mod/events.php:560 src/Model/Profile.php:887 src/Module/Admin/Site.php:573
+#: src/Module/Contact.php:901
+msgid "Advanced"
 msgstr ""
 
-#: mod/crepair.php:130 mod/crepair.php:132
-msgid "Mirror as my own posting"
+#: mod/events.php:561 mod/photos.php:974 mod/photos.php:1348
+#: src/Core/ACL.php:315
+msgid "Permissions"
 msgstr ""
 
-#: mod/crepair.php:145
-msgid "Return to contact editor"
+#: mod/events.php:577
+msgid "Failed to remove event"
 msgstr ""
 
-#: mod/crepair.php:147
-msgid "Refetch contact data"
+#: mod/events.php:579
+msgid "Event removed"
 msgstr ""
 
-#: mod/crepair.php:150
-msgid "Remote Self"
+#: mod/fbrowser.php:43 view/theme/frio/theme.php:269 src/Content/Nav.php:162
+#: src/Model/Profile.php:929
+msgid "Photos"
 msgstr ""
 
-#: mod/crepair.php:153
-msgid "Mirror postings from this contact"
+#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:181
+#: mod/photos.php:938 mod/photos.php:1055 mod/photos.php:1072
+#: mod/photos.php:1554 mod/photos.php:1569 src/Model/Photo.php:560
+#: src/Model/Photo.php:569
+msgid "Contact Photos"
 msgstr ""
 
-#: mod/crepair.php:155
-msgid ""
-"Mark this contact as remote_self, this will cause friendica to repost new "
-"entries from this contact."
+#: mod/fbrowser.php:136
+msgid "Files"
 msgstr ""
 
-#: mod/crepair.php:159 mod/settings.php:679 mod/settings.php:705
-#: src/Module/Admin/Blocklist/Contact.php:73 src/Module/Admin/Users.php:272
-#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297
-#: src/Module/Admin/Users.php:313
-msgid "Name"
+#: mod/follow.php:46
+msgid "The contact could not be added."
 msgstr ""
 
-#: mod/crepair.php:160
-msgid "Account Nickname"
+#: mod/follow.php:87
+msgid "You already added this contact."
 msgstr ""
 
-#: mod/crepair.php:161
-msgid "@Tagname - overrides Name/Nickname"
+#: mod/follow.php:99
+msgid "Diaspora support isn't enabled. Contact can't be added."
 msgstr ""
 
-#: mod/crepair.php:162
-msgid "Account URL"
+#: mod/follow.php:106
+msgid "OStatus support is disabled. Contact can't be added."
 msgstr ""
 
-#: mod/crepair.php:163
-msgid "Account URL Alias"
-msgstr ""
-
-#: mod/crepair.php:164
-msgid "Friend Request URL"
-msgstr ""
-
-#: mod/crepair.php:165
-msgid "Friend Confirm URL"
-msgstr ""
-
-#: mod/crepair.php:166
-msgid "Notification Endpoint URL"
-msgstr ""
-
-#: mod/crepair.php:167
-msgid "Poll/Feed URL"
-msgstr ""
-
-#: mod/crepair.php:168
-msgid "New photo from this URL"
-msgstr ""
-
-#: mod/dfrn_confirm.php:126
-msgid ""
-"This may occasionally happen if contact was requested by both persons and it "
-"has already been approved."
-msgstr ""
-
-#: mod/dfrn_confirm.php:227
-msgid "Response from remote site was not understood."
-msgstr ""
-
-#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240
-msgid "Unexpected response from remote site: "
-msgstr ""
-
-#: mod/dfrn_confirm.php:249
-msgid "Confirmation completed successfully."
-msgstr ""
-
-#: mod/dfrn_confirm.php:261
-msgid "Temporary failure. Please wait and try again."
-msgstr ""
-
-#: mod/dfrn_confirm.php:264
-msgid "Introduction failed or was revoked."
-msgstr ""
-
-#: mod/dfrn_confirm.php:269
-msgid "Remote site reported: "
-msgstr ""
-
-#: mod/dfrn_confirm.php:374
-#, php-format
-msgid "No user record found for '%s' "
-msgstr ""
-
-#: mod/dfrn_confirm.php:384
-msgid "Our site encryption key is apparently messed up."
-msgstr ""
-
-#: mod/dfrn_confirm.php:395
-msgid "Empty site URL was provided or URL could not be decrypted by us."
-msgstr ""
-
-#: mod/dfrn_confirm.php:411
-msgid "Contact record was not found for you on our site."
-msgstr ""
-
-#: mod/dfrn_confirm.php:425
-#, php-format
-msgid "Site public key not available in contact record for URL %s."
-msgstr ""
-
-#: mod/dfrn_confirm.php:441
-msgid ""
-"The ID provided by your system is a duplicate on our system. It should work "
-"if you try again."
-msgstr ""
-
-#: mod/dfrn_confirm.php:452
-msgid "Unable to set your contact credentials on our system."
-msgstr ""
-
-#: mod/dfrn_confirm.php:508
-msgid "Unable to update your contact profile details on our system"
-msgstr ""
-
-#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 src/Model/Contact.php:2551
-msgid "[Name Withheld]"
-msgstr ""
-
-#: mod/dfrn_poll.php:125 mod/dfrn_poll.php:530
-#, php-format
-msgid "%1$s welcomes %2$s"
-msgstr ""
-
-#: mod/dfrn_request.php:98
-msgid "This introduction has already been accepted."
-msgstr ""
-
-#: mod/dfrn_request.php:116 mod/dfrn_request.php:354
-msgid "Profile location is not valid or does not contain profile information."
-msgstr ""
-
-#: mod/dfrn_request.php:120 mod/dfrn_request.php:358
-msgid "Warning: profile location has no identifiable owner name."
-msgstr ""
-
-#: mod/dfrn_request.php:123 mod/dfrn_request.php:361
-msgid "Warning: profile location has no profile photo."
-msgstr ""
-
-#: mod/dfrn_request.php:127 mod/dfrn_request.php:365
-#, php-format
-msgid "%d required parameter was not found at the given location"
-msgid_plural "%d required parameters were not found at the given location"
-msgstr[0] ""
-msgstr[1] ""
-
-#: mod/dfrn_request.php:165
-msgid "Introduction complete."
-msgstr ""
-
-#: mod/dfrn_request.php:201
-msgid "Unrecoverable protocol error."
+#: mod/follow.php:113
+msgid "The network type couldn't be detected. Contact can't be added."
 msgstr ""
 
-#: mod/dfrn_request.php:228
-msgid "Profile unavailable."
+#: mod/follow.php:179 mod/notifications.php:194 mod/notifications.php:286
+#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:83
+#: src/Module/Contact.php:624
+msgid "Profile URL"
 msgstr ""
 
-#: mod/dfrn_request.php:249
-#, php-format
-msgid "%s has received too many connection requests today."
+#: mod/follow.php:183 mod/notifications.php:280 src/Model/Profile.php:816
+#: src/Module/Contact.php:634
+msgid "Tags:"
 msgstr ""
 
-#: mod/dfrn_request.php:250
-msgid "Spam protection measures have been invoked."
+#: mod/follow.php:195 mod/unfollow.php:147 src/Model/Profile.php:916
+#: src/Module/Contact.php:863
+msgid "Status Messages and Posts"
 msgstr ""
 
-#: mod/dfrn_request.php:251
-msgid "Friends are advised to please try again in 24 hours."
+#: mod/fsuggest.php:44
+msgid "Suggested contact not found."
 msgstr ""
 
-#: mod/dfrn_request.php:275
-msgid "Invalid locator"
+#: mod/fsuggest.php:57
+msgid "Friend suggestion sent."
 msgstr ""
 
-#: mod/dfrn_request.php:311
-msgid "You have already introduced yourself here."
+#: mod/fsuggest.php:79
+msgid "Suggest Friends"
 msgstr ""
 
-#: mod/dfrn_request.php:314
+#: mod/fsuggest.php:81
 #, php-format
-msgid "Apparently you are already friends with %s."
-msgstr ""
-
-#: mod/dfrn_request.php:334
-msgid "Invalid profile URL."
-msgstr ""
-
-#: mod/dfrn_request.php:340 src/Model/Contact.php:2182
-msgid "Disallowed profile URL."
-msgstr ""
-
-#: mod/dfrn_request.php:346 src/Model/Contact.php:2187
-#: src/Module/Friendica.php:59
-msgid "Blocked domain"
-msgstr ""
-
-#: mod/dfrn_request.php:413 src/Module/Contact.php:143
-msgid "Failed to update contact record."
-msgstr ""
-
-#: mod/dfrn_request.php:433
-msgid "Your introduction has been sent."
-msgstr ""
-
-#: mod/dfrn_request.php:471
-msgid ""
-"Remote subscription can't be done for your network. Please subscribe "
-"directly on your system."
-msgstr ""
-
-#: mod/dfrn_request.php:487
-msgid "Please login to confirm introduction."
-msgstr ""
-
-#: mod/dfrn_request.php:495
-msgid ""
-"Incorrect identity currently logged in. Please login to <strong>this</"
-"strong> profile."
-msgstr ""
-
-#: mod/dfrn_request.php:509 mod/dfrn_request.php:524
-msgid "Confirm"
-msgstr ""
-
-#: mod/dfrn_request.php:520
-msgid "Hide this contact"
+msgid "Suggest a friend for %s"
 msgstr ""
 
-#: mod/dfrn_request.php:522
-#, php-format
-msgid "Welcome home %s."
+#: mod/hcard.php:21
+msgid "No profile"
 msgstr ""
 
-#: mod/dfrn_request.php:523
-#, php-format
-msgid "Please confirm your introduction/connection request to %s."
+#: mod/item.php:127
+msgid "Unable to locate original post."
 msgstr ""
 
-#: mod/dfrn_request.php:632
-msgid ""
-"Please enter your 'Identity Address' from one of the following supported "
-"communications networks:"
+#: mod/item.php:330
+msgid "Empty post discarded."
 msgstr ""
 
-#: mod/dfrn_request.php:634
+#: mod/item.php:801
 #, php-format
 msgid ""
-"If you are not yet a member of the free social web, <a href=\"%s\">follow "
-"this link to find a public Friendica site and join us today</a>."
-msgstr ""
-
-#: mod/dfrn_request.php:637
-msgid "Friend/Connection Request"
-msgstr ""
-
-#: mod/dfrn_request.php:638
-msgid ""
-"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, "
-"testuser@gnusocial.de"
-msgstr ""
-
-#: mod/dfrn_request.php:639 mod/follow.php:162
-msgid "Please answer the following:"
+"This message was sent to you by %s, a member of the Friendica social network."
 msgstr ""
 
-#: mod/dfrn_request.php:640 mod/follow.php:163
+#: mod/item.php:803
 #, php-format
-msgid "Does %s know you?"
-msgstr ""
-
-#: mod/dfrn_request.php:641 mod/follow.php:164
-msgid "Add a personal note:"
-msgstr ""
-
-#: mod/dfrn_request.php:643
-msgid "Friendica"
-msgstr ""
-
-#: mod/dfrn_request.php:644
-msgid "GNU Social (Pleroma, Mastodon)"
-msgstr ""
-
-#: mod/dfrn_request.php:645
-msgid "Diaspora (Socialhome, Hubzilla)"
+msgid "You may visit them online at %s"
 msgstr ""
 
-#: mod/dfrn_request.php:646
-#, php-format
+#: mod/item.php:804
 msgid ""
-" - please do not use this form.  Instead, enter %s into your Diaspora search "
-"bar."
-msgstr ""
-
-#: mod/editpost.php:28 mod/editpost.php:38
-msgid "Item not found"
-msgstr ""
-
-#: mod/editpost.php:45
-msgid "Edit post"
-msgstr ""
-
-#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:887
-#: src/Module/Filer/SaveTag.php:49
-msgid "Save"
-msgstr ""
-
-#: mod/editpost.php:77
-msgid "web link"
-msgstr ""
-
-#: mod/editpost.php:78
-msgid "Insert video link"
-msgstr ""
-
-#: mod/editpost.php:79
-msgid "video link"
-msgstr ""
-
-#: mod/editpost.php:80
-msgid "Insert audio link"
-msgstr ""
-
-#: mod/editpost.php:81
-msgid "audio link"
-msgstr ""
-
-#: mod/editpost.php:95 src/Core/ACL.php:308 src/Module/Item/Compose.php:200
-msgid "CC: email addresses"
-msgstr ""
-
-#: mod/editpost.php:102 src/Core/ACL.php:309
-msgid "Example: bob@example.com, mary@example.com"
-msgstr ""
-
-#: mod/fbrowser.php:43 view/theme/frio/theme.php:269 src/Content/Nav.php:162
-#: src/Model/Profile.php:933
-msgid "Photos"
-msgstr ""
-
-#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:196
-#: mod/photos.php:973 mod/photos.php:1090 mod/photos.php:1107
-#: mod/photos.php:1584 mod/photos.php:1599 src/Model/Photo.php:574
-#: src/Model/Photo.php:583
-msgid "Contact Photos"
-msgstr ""
-
-#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:247
-msgid "Upload"
-msgstr ""
-
-#: mod/fbrowser.php:136
-msgid "Files"
-msgstr ""
-
-#: mod/follow.php:46
-msgid "The contact could not be added."
-msgstr ""
-
-#: mod/follow.php:87
-msgid "You already added this contact."
-msgstr ""
-
-#: mod/follow.php:99
-msgid "Diaspora support isn't enabled. Contact can't be added."
-msgstr ""
-
-#: mod/follow.php:106
-msgid "OStatus support is disabled. Contact can't be added."
-msgstr ""
-
-#: mod/follow.php:113
-msgid "The network type couldn't be detected. Contact can't be added."
-msgstr ""
-
-#: mod/follow.php:183 mod/notifications.php:276 src/Model/Profile.php:820
-#: src/Module/Contact.php:613
-msgid "Tags:"
-msgstr ""
-
-#: mod/fsuggest.php:44
-msgid "Suggested contact not found."
-msgstr ""
-
-#: mod/fsuggest.php:57
-msgid "Friend suggestion sent."
-msgstr ""
-
-#: mod/fsuggest.php:79
-msgid "Suggest Friends"
+"Please contact the sender by replying to this post if you do not wish to "
+"receive these messages."
 msgstr ""
 
-#: mod/fsuggest.php:81
+#: mod/item.php:808
 #, php-format
-msgid "Suggest a friend for %s"
-msgstr ""
-
-#: mod/hcard.php:20
-msgid "No profile"
+msgid "%s posted an update."
 msgstr ""
 
-#: mod/lockview.php:47 mod/lockview.php:58
+#: mod/lockview.php:49 mod/lockview.php:60
 msgid "Remote privacy information not available."
 msgstr ""
 
-#: mod/lockview.php:67
+#: mod/lockview.php:72
 msgid "Visible to:"
 msgstr ""
 
-#: mod/lockview.php:73 mod/lockview.php:108 src/Content/Widget.php:192
-#: src/Module/Item/Compose.php:97 src/Module/Profile/Contacts.php:126
-#: src/Module/Contact.php:771
+#: mod/lockview.php:78 mod/lockview.php:113 src/Content/Widget.php:193
+#: src/Module/Item/Compose.php:101 src/Module/Profile/Contacts.php:126
+#: src/Module/Contact.php:792
 msgid "Followers"
 msgstr ""
 
-#: mod/lockview.php:79 mod/lockview.php:114 src/Module/Item/Compose.php:104
+#: mod/lockview.php:84 mod/lockview.php:119 src/Module/Item/Compose.php:108
 msgid "Mutuals"
 msgstr ""
 
-#: mod/lostpass.php:26
+#: mod/lostpass.php:27
 msgid "No valid account found."
 msgstr ""
 
-#: mod/lostpass.php:38
+#: mod/lostpass.php:39
 msgid "Password reset request issued. Check your email."
 msgstr ""
 
-#: mod/lostpass.php:44
+#: mod/lostpass.php:45
 #, php-format
 msgid ""
 "\n"
@@ -2309,7 +1922,7 @@ msgid ""
 "\t\tissued this request."
 msgstr ""
 
-#: mod/lostpass.php:55
+#: mod/lostpass.php:56
 #, php-format
 msgid ""
 "\n"
@@ -2327,66 +1940,66 @@ msgid ""
 "\t\tLogin Name:\t%3$s"
 msgstr ""
 
-#: mod/lostpass.php:74
+#: mod/lostpass.php:75
 #, php-format
 msgid "Password reset requested at %s"
 msgstr ""
 
-#: mod/lostpass.php:89
+#: mod/lostpass.php:90
 msgid ""
 "Request could not be verified. (You may have previously submitted it.) "
 "Password reset failed."
 msgstr ""
 
-#: mod/lostpass.php:102
+#: mod/lostpass.php:103
 msgid "Request has expired, please make a new one."
 msgstr ""
 
-#: mod/lostpass.php:117
+#: mod/lostpass.php:118
 msgid "Forgot your Password?"
 msgstr ""
 
-#: mod/lostpass.php:118
+#: mod/lostpass.php:119
 msgid ""
 "Enter your email address and submit to have your password reset. Then check "
 "your email for further instructions."
 msgstr ""
 
-#: mod/lostpass.php:119 src/Module/Login.php:318
+#: mod/lostpass.php:120 src/Module/Login.php:355
 msgid "Nickname or Email: "
 msgstr ""
 
-#: mod/lostpass.php:120
+#: mod/lostpass.php:121
 msgid "Reset"
 msgstr ""
 
-#: mod/lostpass.php:135 src/Module/Login.php:330
+#: mod/lostpass.php:136 src/Module/Login.php:367
 msgid "Password Reset"
 msgstr ""
 
-#: mod/lostpass.php:136
+#: mod/lostpass.php:137
 msgid "Your password has been reset as requested."
 msgstr ""
 
-#: mod/lostpass.php:137
+#: mod/lostpass.php:138
 msgid "Your new password is"
 msgstr ""
 
-#: mod/lostpass.php:138
+#: mod/lostpass.php:139
 msgid "Save or copy your new password - and then"
 msgstr ""
 
-#: mod/lostpass.php:139
+#: mod/lostpass.php:140
 msgid "click here to login"
 msgstr ""
 
-#: mod/lostpass.php:140
+#: mod/lostpass.php:141
 msgid ""
 "Your password may be changed from the <em>Settings</em> page after "
 "successful login."
 msgstr ""
 
-#: mod/lostpass.php:147
+#: mod/lostpass.php:148
 #, php-format
 msgid ""
 "\n"
@@ -2397,7 +2010,7 @@ msgid ""
 "\t\t"
 msgstr ""
 
-#: mod/lostpass.php:153
+#: mod/lostpass.php:154
 #, php-format
 msgid ""
 "\n"
@@ -2412,35 +2025,57 @@ msgid ""
 "\t\t"
 msgstr ""
 
-#: mod/lostpass.php:169
+#: mod/lostpass.php:170
 #, php-format
 msgid "Your password has been changed at %s"
 msgstr ""
 
-#: mod/manage.php:179
-msgid "Manage Identities and/or Pages"
+#: mod/match.php:49
+msgid "No keywords to match. Please add keywords to your default profile."
 msgstr ""
 
-#: mod/manage.php:180
-msgid ""
-"Toggle between different identities or community/group pages which share "
-"your account details or which you have been granted \"manage\" permissions"
+#: mod/match.php:115 src/Content/Pager.php:198
+msgid "first"
 msgstr ""
 
-#: mod/manage.php:181
-msgid "Select an identity to manage: "
+#: mod/match.php:120 src/Content/Pager.php:258
+msgid "next"
+msgstr ""
+
+#: mod/match.php:130 src/Module/BaseSearchModule.php:96
+msgid "No matches"
+msgstr ""
+
+#: mod/match.php:135
+msgid "Profile Match"
 msgstr ""
 
 #: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:257
 msgid "New Message"
 msgstr ""
 
+#: mod/message.php:70 mod/wallmessage.php:60
+msgid "No recipient selected."
+msgstr ""
+
 #: mod/message.php:74
 msgid "Unable to locate contact information."
 msgstr ""
 
-#: mod/message.php:110 mod/notifications.php:49 mod/notifications.php:198
-#: mod/notifications.php:254
+#: mod/message.php:77 mod/wallmessage.php:66
+msgid "Message could not be sent."
+msgstr ""
+
+#: mod/message.php:80 mod/wallmessage.php:69
+msgid "Message collection failure."
+msgstr ""
+
+#: mod/message.php:83 mod/wallmessage.php:72
+msgid "Message sent."
+msgstr ""
+
+#: mod/message.php:110 mod/notifications.php:48 mod/notifications.php:202
+#: mod/notifications.php:258
 msgid "Discard"
 msgstr ""
 
@@ -2464,6 +2099,27 @@ msgstr ""
 msgid "Conversation removed."
 msgstr ""
 
+#: mod/message.php:204 mod/message.php:360 mod/wallmessage.php:123
+msgid "Please enter a link URL:"
+msgstr ""
+
+#: mod/message.php:246 mod/wallmessage.php:128
+msgid "Send Private Message"
+msgstr ""
+
+#: mod/message.php:247 mod/message.php:430 mod/wallmessage.php:130
+msgid "To:"
+msgstr ""
+
+#: mod/message.php:251 mod/message.php:432 mod/wallmessage.php:131
+msgid "Subject:"
+msgstr ""
+
+#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137
+#: src/Module/Invite.php:150
+msgid "Your message:"
+msgstr ""
+
 #: mod/message.php:289
 msgid "No messages."
 msgstr ""
@@ -2480,1026 +2136,1113 @@ msgstr ""
 msgid "D, d M Y - g:i A"
 msgstr ""
 
-#: mod/message.php:423 mod/message.php:537
-msgid "Delete conversation"
+#: mod/message.php:423 mod/message.php:537
+msgid "Delete conversation"
+msgstr ""
+
+#: mod/message.php:425
+msgid ""
+"No secure communications available. You <strong>may</strong> be able to "
+"respond from the sender's profile page."
+msgstr ""
+
+#: mod/message.php:429
+msgid "Send Reply"
+msgstr ""
+
+#: mod/message.php:512
+#, php-format
+msgid "Unknown sender - %s"
+msgstr ""
+
+#: mod/message.php:514
+#, php-format
+msgid "You and %s"
+msgstr ""
+
+#: mod/message.php:516
+#, php-format
+msgid "%s and You"
+msgstr ""
+
+#: mod/message.php:543
+#, php-format
+msgid "%d message"
+msgid_plural "%d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#: mod/network.php:525
+#, php-format
+msgid ""
+"Warning: This group contains %s member from a network that doesn't allow non "
+"public messages."
+msgid_plural ""
+"Warning: This group contains %s members from a network that doesn't allow "
+"non public messages."
+msgstr[0] ""
+msgstr[1] ""
+
+#: mod/network.php:528
+msgid "Messages in this group won't be send to these receivers."
+msgstr ""
+
+#: mod/network.php:595
+msgid "No such group"
+msgstr ""
+
+#: mod/network.php:616 src/Module/Group.php:288
+msgid "Group is empty"
+msgstr ""
+
+#: mod/network.php:620
+#, php-format
+msgid "Group: %s"
+msgstr ""
+
+#: mod/network.php:646
+msgid "Private messages to this person are at risk of public disclosure."
+msgstr ""
+
+#: mod/network.php:649 src/Module/AllFriends.php:35
+#: src/Module/AllFriends.php:43
+msgid "Invalid contact."
+msgstr ""
+
+#: mod/network.php:928
+msgid "Latest Activity"
+msgstr ""
+
+#: mod/network.php:931
+msgid "Sort by latest activity"
+msgstr ""
+
+#: mod/network.php:936
+msgid "Latest Posts"
+msgstr ""
+
+#: mod/network.php:939
+msgid "Sort by post received date"
+msgstr ""
+
+#: mod/network.php:946 mod/profiles.php:579
+msgid "Personal"
+msgstr ""
+
+#: mod/network.php:949
+msgid "Posts that mention or involve you"
+msgstr ""
+
+#: mod/network.php:956
+msgid "New"
+msgstr ""
+
+#: mod/network.php:959
+msgid "Activity Stream - by date"
+msgstr ""
+
+#: mod/network.php:967
+msgid "Shared Links"
+msgstr ""
+
+#: mod/network.php:970
+msgid "Interesting Links"
+msgstr ""
+
+#: mod/network.php:977
+msgid "Starred"
+msgstr ""
+
+#: mod/network.php:980
+msgid "Favourite Posts"
+msgstr ""
+
+#: mod/notifications.php:39
+msgid "Invalid request identifier."
+msgstr ""
+
+#: mod/notifications.php:100 src/Content/Nav.php:249
+msgid "Notifications"
+msgstr ""
+
+#: mod/notifications.php:119
+msgid "Network Notifications"
+msgstr ""
+
+#: mod/notifications.php:124
+msgid "System Notifications"
+msgstr ""
+
+#: mod/notifications.php:129
+msgid "Personal Notifications"
 msgstr ""
 
-#: mod/message.php:425
-msgid ""
-"No secure communications available. You <strong>may</strong> be able to "
-"respond from the sender's profile page."
+#: mod/notifications.php:134
+msgid "Home Notifications"
 msgstr ""
 
-#: mod/message.php:429
-msgid "Send Reply"
+#: mod/notifications.php:157
+msgid "Show unread"
 msgstr ""
 
-#: mod/message.php:512
-#, php-format
-msgid "Unknown sender - %s"
+#: mod/notifications.php:157
+msgid "Show all"
 msgstr ""
 
-#: mod/message.php:514
-#, php-format
-msgid "You and %s"
+#: mod/notifications.php:168
+msgid "Show Ignored Requests"
 msgstr ""
 
-#: mod/message.php:516
-#, php-format
-msgid "%s and You"
+#: mod/notifications.php:168
+msgid "Hide Ignored Requests"
 msgstr ""
 
-#: mod/message.php:543
-#, php-format
-msgid "%d message"
-msgid_plural "%d messages"
-msgstr[0] ""
-msgstr[1] ""
+#: mod/notifications.php:181 mod/notifications.php:266
+msgid "Notification type:"
+msgstr ""
 
-#: mod/network.php:183 mod/search.php:35
-msgid "Remove term"
+#: mod/notifications.php:184
+msgid "Suggested by:"
 msgstr ""
 
-#: mod/network.php:190 mod/search.php:44
-msgid "Saved Searches"
+#: mod/notifications.php:196 mod/notifications.php:283
+#: src/Module/Contact.php:615
+msgid "Hide this contact from others"
 msgstr ""
 
-#: mod/network.php:191 src/Model/Group.php:483
-msgid "add"
+#: mod/notifications.php:198 mod/notifications.php:292
+#: src/Model/Contact.php:1270 src/Module/Admin/Users.php:286
+msgid "Approve"
 msgstr ""
 
-#: mod/network.php:571
-#, php-format
-msgid ""
-"Warning: This group contains %s member from a network that doesn't allow non "
-"public messages."
-msgid_plural ""
-"Warning: This group contains %s members from a network that doesn't allow "
-"non public messages."
-msgstr[0] ""
-msgstr[1] ""
+#: mod/notifications.php:218
+msgid "Claims to be known to you: "
+msgstr ""
 
-#: mod/network.php:574
-msgid "Messages in this group won't be send to these receivers."
+#: mod/notifications.php:219
+msgid "yes"
 msgstr ""
 
-#: mod/network.php:641
-msgid "No such group"
+#: mod/notifications.php:219
+msgid "no"
 msgstr ""
 
-#: mod/network.php:662 src/Module/Group.php:288
-msgid "Group is empty"
+#: mod/notifications.php:220 mod/notifications.php:224
+msgid "Shall your connection be bidirectional or not?"
 msgstr ""
 
-#: mod/network.php:666
+#: mod/notifications.php:221 mod/notifications.php:225
 #, php-format
-msgid "Group: %s"
+msgid ""
+"Accepting %s as a friend allows %s to subscribe to your posts, and you will "
+"also receive updates from them in your news feed."
 msgstr ""
 
-#: mod/network.php:692
-msgid "Private messages to this person are at risk of public disclosure."
+#: mod/notifications.php:222
+#, php-format
+msgid ""
+"Accepting %s as a subscriber allows them to subscribe to your posts, but you "
+"will not receive updates from them in your news feed."
 msgstr ""
 
-#: mod/network.php:695 src/Module/AllFriends.php:35
-#: src/Module/AllFriends.php:43
-msgid "Invalid contact."
+#: mod/notifications.php:226
+#, php-format
+msgid ""
+"Accepting %s as a sharer allows them to subscribe to your posts, but you "
+"will not receive updates from them in your news feed."
 msgstr ""
 
-#: mod/network.php:974
-msgid "Commented Order"
+#: mod/notifications.php:237
+msgid "Friend"
 msgstr ""
 
-#: mod/network.php:977
-msgid "Sort by Comment Date"
+#: mod/notifications.php:238
+msgid "Sharer"
 msgstr ""
 
-#: mod/network.php:982
-msgid "Posted Order"
+#: mod/notifications.php:238
+msgid "Subscriber"
 msgstr ""
 
-#: mod/network.php:985
-msgid "Sort by Post Date"
+#: mod/notifications.php:278 src/Model/Profile.php:449
+#: src/Model/Profile.php:828 src/Module/Contact.php:632
+#: src/Module/Directory.php:143
+msgid "About:"
 msgstr ""
 
-#: mod/network.php:995
-msgid "Posts that mention or involve you"
+#: mod/notifications.php:282 src/Model/Profile.php:446
+#: src/Model/Profile.php:767 src/Module/Directory.php:140
+msgid "Gender:"
 msgstr ""
 
-#: mod/network.php:1002
-msgid "New"
+#: mod/notifications.php:289 src/Model/Profile.php:554
+#: src/Module/Contact.php:316
+msgid "Network:"
 msgstr ""
 
-#: mod/network.php:1005
-msgid "Activity Stream - by date"
+#: mod/notifications.php:303
+msgid "No introductions."
 msgstr ""
 
-#: mod/network.php:1013
-msgid "Shared Links"
+#: mod/notifications.php:337
+#, php-format
+msgid "No more %s notifications."
 msgstr ""
 
-#: mod/network.php:1016
-msgid "Interesting Links"
+#: mod/openid.php:30
+msgid "OpenID protocol error. No ID returned."
 msgstr ""
 
-#: mod/network.php:1023
-msgid "Starred"
+#: mod/openid.php:67
+msgid ""
+"Account not found. Please login to your existing account to add the OpenID "
+"to it."
 msgstr ""
 
-#: mod/network.php:1026
-msgid "Favourite Posts"
+#: mod/openid.php:69
+msgid ""
+"Account not found. Please register a new account or login to your existing "
+"account to add the OpenID to it."
 msgstr ""
 
-#: mod/notes.php:34 src/Model/Profile.php:975
-msgid "Personal Notes"
+#: mod/openid.php:75 src/Module/Login.php:90 src/Module/Login.php:144
+msgid "Login failed."
 msgstr ""
 
-#: mod/photos.php:113 src/Model/Profile.php:936
+#: mod/photos.php:112 src/Model/Profile.php:932
 msgid "Photo Albums"
 msgstr ""
 
-#: mod/photos.php:114 mod/photos.php:1639
+#: mod/photos.php:113 mod/photos.php:1609
 msgid "Recent Photos"
 msgstr ""
 
-#: mod/photos.php:116 mod/photos.php:1152 mod/photos.php:1641
+#: mod/photos.php:115 mod/photos.php:1117 mod/photos.php:1611
 msgid "Upload New Photos"
 msgstr ""
 
-#: mod/photos.php:134 mod/settings.php:60 src/Module/BaseSettingsModule.php:18
+#: mod/photos.php:133 mod/settings.php:62 src/Module/BaseSettingsModule.php:18
 msgid "everybody"
 msgstr ""
 
-#: mod/photos.php:185
+#: mod/photos.php:170
 msgid "Contact information unavailable"
 msgstr ""
 
-#: mod/photos.php:207
+#: mod/photos.php:192
 msgid "Album not found."
 msgstr ""
 
-#: mod/photos.php:265
+#: mod/photos.php:250
 msgid "Album successfully deleted"
 msgstr ""
 
-#: mod/photos.php:267
+#: mod/photos.php:252
 msgid "Album was empty."
 msgstr ""
 
-#: mod/photos.php:590
+#: mod/photos.php:578
 msgid "a photo"
 msgstr ""
 
-#: mod/photos.php:590
+#: mod/photos.php:578
 #, php-format
 msgid "%1$s was tagged in %2$s by %3$s"
 msgstr ""
 
-#: mod/photos.php:689
+#: mod/photos.php:680
 msgid "Image upload didn't complete, please try again"
 msgstr ""
 
-#: mod/photos.php:692
+#: mod/photos.php:683
 msgid "Image file is missing"
 msgstr ""
 
-#: mod/photos.php:697
+#: mod/photos.php:688
 msgid ""
 "Server can't accept new file upload at this time, please contact your "
 "administrator"
 msgstr ""
 
-#: mod/photos.php:723
+#: mod/photos.php:714
 msgid "Image file is empty."
 msgstr ""
 
-#: mod/photos.php:855
+#: mod/photos.php:846
 msgid "No photos selected"
 msgstr ""
 
-#: mod/photos.php:947 mod/videos.php:210
+#: mod/photos.php:912 mod/videos.php:168
 msgid "Access to this item is restricted."
 msgstr ""
 
-#: mod/photos.php:1001
+#: mod/photos.php:966
 msgid "Upload Photos"
 msgstr ""
 
-#: mod/photos.php:1005 mod/photos.php:1097
+#: mod/photos.php:970 mod/photos.php:1062
 msgid "New album name: "
 msgstr ""
 
-#: mod/photos.php:1006
+#: mod/photos.php:971
 msgid "or select existing album:"
 msgstr ""
 
-#: mod/photos.php:1007
+#: mod/photos.php:972
 msgid "Do not show a status post for this upload"
 msgstr ""
 
-#: mod/photos.php:1009 mod/photos.php:1383 mod/events.php:555
-#: src/Core/ACL.php:314
-msgid "Permissions"
-msgstr ""
-
-#: mod/photos.php:1023 mod/photos.php:1391 mod/settings.php:1213
+#: mod/photos.php:988 mod/photos.php:1356 mod/settings.php:1206
 msgid "Show to Groups"
 msgstr ""
 
-#: mod/photos.php:1024 mod/photos.php:1392 mod/settings.php:1214
+#: mod/photos.php:989 mod/photos.php:1357 mod/settings.php:1207
 msgid "Show to Contacts"
 msgstr ""
 
-#: mod/photos.php:1079
+#: mod/photos.php:1044
 msgid "Do you really want to delete this photo album and all its photos?"
 msgstr ""
 
-#: mod/photos.php:1081 mod/photos.php:1102
+#: mod/photos.php:1046 mod/photos.php:1067
 msgid "Delete Album"
 msgstr ""
 
-#: mod/photos.php:1108
+#: mod/photos.php:1073
 msgid "Edit Album"
 msgstr ""
 
-#: mod/photos.php:1109
+#: mod/photos.php:1074
 msgid "Drop Album"
 msgstr ""
 
-#: mod/photos.php:1114
+#: mod/photos.php:1079
 msgid "Show Newest First"
 msgstr ""
 
-#: mod/photos.php:1116
+#: mod/photos.php:1081
 msgid "Show Oldest First"
 msgstr ""
 
-#: mod/photos.php:1137 mod/photos.php:1624
+#: mod/photos.php:1102 mod/photos.php:1594
 msgid "View Photo"
 msgstr ""
 
-#: mod/photos.php:1174
+#: mod/photos.php:1139
 msgid "Permission denied. Access to this item may be restricted."
 msgstr ""
 
-#: mod/photos.php:1176
+#: mod/photos.php:1141
 msgid "Photo not available"
 msgstr ""
 
-#: mod/photos.php:1186
+#: mod/photos.php:1151
 msgid "Do you really want to delete this photo?"
 msgstr ""
 
-#: mod/photos.php:1188 mod/photos.php:1388
+#: mod/photos.php:1153 mod/photos.php:1353
 msgid "Delete Photo"
 msgstr ""
 
-#: mod/photos.php:1279
+#: mod/photos.php:1244
 msgid "View photo"
 msgstr ""
 
-#: mod/photos.php:1281
+#: mod/photos.php:1246
 msgid "Edit photo"
 msgstr ""
 
-#: mod/photos.php:1282
+#: mod/photos.php:1247
 msgid "Delete photo"
 msgstr ""
 
-#: mod/photos.php:1283
+#: mod/photos.php:1248
 msgid "Use as profile photo"
 msgstr ""
 
-#: mod/photos.php:1290
+#: mod/photos.php:1255
 msgid "Private Photo"
 msgstr ""
 
-#: mod/photos.php:1296
+#: mod/photos.php:1261
 msgid "View Full Size"
 msgstr ""
 
-#: mod/photos.php:1356
+#: mod/photos.php:1321
 msgid "Tags: "
 msgstr ""
 
-#: mod/photos.php:1359
+#: mod/photos.php:1324
 msgid "[Select tags to remove]"
 msgstr ""
 
-#: mod/photos.php:1374
+#: mod/photos.php:1339
 msgid "New album name"
 msgstr ""
 
-#: mod/photos.php:1375
+#: mod/photos.php:1340
 msgid "Caption"
 msgstr ""
 
-#: mod/photos.php:1376
+#: mod/photos.php:1341
 msgid "Add a Tag"
 msgstr ""
 
-#: mod/photos.php:1376
+#: mod/photos.php:1341
 msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
 msgstr ""
 
-#: mod/photos.php:1377
+#: mod/photos.php:1342
 msgid "Do not rotate"
 msgstr ""
 
-#: mod/photos.php:1378
+#: mod/photos.php:1343
 msgid "Rotate CW (right)"
 msgstr ""
 
-#: mod/photos.php:1379
+#: mod/photos.php:1344
 msgid "Rotate CCW (left)"
 msgstr ""
 
-#: mod/photos.php:1413 src/Object/Post.php:313
+#: mod/photos.php:1378 src/Object/Post.php:310
 msgid "I like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1414 src/Object/Post.php:314
+#: mod/photos.php:1379 src/Object/Post.php:311
 msgid "I don't like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1429 mod/photos.php:1468 mod/photos.php:1528
-#: src/Module/Item/Compose.php:176 src/Module/Contact.php:1002
-#: src/Object/Post.php:876
+#: mod/photos.php:1394 mod/photos.php:1433 mod/photos.php:1498
+#: src/Module/Item/Compose.php:180 src/Module/Contact.php:1023
+#: src/Object/Post.php:881
 msgid "This is you"
 msgstr ""
 
-#: mod/photos.php:1431 mod/photos.php:1470 mod/photos.php:1530
-#: src/Object/Post.php:420 src/Object/Post.php:878
+#: mod/photos.php:1396 mod/photos.php:1435 mod/photos.php:1500
+#: src/Object/Post.php:420 src/Object/Post.php:883
 msgid "Comment"
 msgstr ""
 
-#: mod/photos.php:1559
+#: mod/photos.php:1529
 msgid "Map"
 msgstr ""
 
-#: mod/photos.php:1630 mod/videos.php:287
+#: mod/photos.php:1600 mod/videos.php:245
 msgid "View Album"
 msgstr ""
 
-#: mod/ping.php:272
-msgid "{0} wants to be your friend"
-msgstr ""
-
-#: mod/ping.php:288
-msgid "{0} requested registration"
-msgstr ""
-
-#: mod/poke.php:177
+#: mod/poke.php:178
 msgid "Poke/Prod"
 msgstr ""
 
-#: mod/poke.php:178
+#: mod/poke.php:179
 msgid "poke, prod or do other things to somebody"
 msgstr ""
 
-#: mod/poke.php:179
+#: mod/poke.php:180
 msgid "Recipient"
 msgstr ""
 
-#: mod/poke.php:180
+#: mod/poke.php:181
 msgid "Choose what you wish to do to recipient"
 msgstr ""
 
-#: mod/poke.php:183
+#: mod/poke.php:184
 msgid "Make this post private"
 msgstr ""
 
-#: mod/profile_photo.php:58
-msgid "Image uploaded but image cropping failed."
-msgstr ""
-
-#: mod/profile_photo.php:88 mod/profile_photo.php:97 mod/profile_photo.php:106
-#: mod/profile_photo.php:311
-#, php-format
-msgid "Image size reduction [%s] failed."
-msgstr ""
-
-#: mod/profile_photo.php:125
-msgid ""
-"Shift-reload the page or clear browser cache if the new photo does not "
-"display immediately."
-msgstr ""
-
-#: mod/profile_photo.php:133
-msgid "Unable to process image"
-msgstr ""
-
-#: mod/profile_photo.php:244
-msgid "Upload File:"
-msgstr ""
-
-#: mod/profile_photo.php:245
-msgid "Select a profile:"
-msgstr ""
-
-#: mod/profile_photo.php:250
-msgid "or"
+#: mod/profiles.php:62
+msgid "Profile deleted."
 msgstr ""
 
-#: mod/profile_photo.php:251
-msgid "skip this step"
+#: mod/profiles.php:78 mod/profiles.php:114
+msgid "Profile-"
 msgstr ""
 
-#: mod/profile_photo.php:251
-msgid "select a photo from your photo albums"
+#: mod/profiles.php:97 mod/profiles.php:135
+msgid "New profile created."
 msgstr ""
 
-#: mod/profile_photo.php:264
-msgid "Crop Image"
+#: mod/profiles.php:120
+msgid "Profile unavailable to clone."
 msgstr ""
 
-#: mod/profile_photo.php:265
-msgid "Please adjust the image cropping for optimum viewing."
+#: mod/profiles.php:206
+msgid "Profile Name is required."
 msgstr ""
 
-#: mod/profile_photo.php:267
-msgid "Done Editing"
+#: mod/profiles.php:346
+msgid "Marital Status"
 msgstr ""
 
-#: mod/profile_photo.php:301
-msgid "Image uploaded successfully."
+#: mod/profiles.php:349
+msgid "Romantic Partner"
 msgstr ""
 
-#: mod/search.php:92
-msgid "Only logged in users are permitted to perform a search."
+#: mod/profiles.php:358
+msgid "Work/Employment"
 msgstr ""
 
-#: mod/search.php:114
-msgid "Only one search per minute is permitted for not logged in users."
+#: mod/profiles.php:361
+msgid "Religion"
 msgstr ""
 
-#: mod/search.php:134 src/Content/Text/HTML.php:893 src/Content/Nav.php:200
-msgid "Search"
+#: mod/profiles.php:364
+msgid "Political Views"
 msgstr ""
 
-#: mod/search.php:228
-#, php-format
-msgid "Items tagged with: %s"
+#: mod/profiles.php:367
+msgid "Gender"
 msgstr ""
 
-#: mod/search.php:230 src/Module/Contact.php:794
-#, php-format
-msgid "Results for: %s"
+#: mod/profiles.php:370
+msgid "Sexual Preference"
 msgstr ""
 
-#: mod/subthread.php:104
-#, php-format
-msgid "%1$s is following %2$s's %3$s"
+#: mod/profiles.php:373
+msgid "XMPP"
 msgstr ""
 
-#: mod/suggest.php:28
-msgid "Contact suggestion successfully ignored."
+#: mod/profiles.php:376
+msgid "Homepage"
 msgstr ""
 
-#: mod/suggest.php:52
-msgid ""
-"No suggestions available. If this is a new site, please try again in 24 "
-"hours."
+#: mod/profiles.php:379 mod/profiles.php:578
+msgid "Interests"
 msgstr ""
 
-#: mod/suggest.php:71
-msgid "Do you really want to delete this suggestion?"
+#: mod/profiles.php:382
+msgid "Address"
 msgstr ""
 
-#: mod/suggest.php:89 mod/suggest.php:109
-msgid "Ignore/Hide"
+#: mod/profiles.php:389 mod/profiles.php:574
+msgid "Location"
 msgstr ""
 
-#: mod/suggest.php:119 view/theme/vier/theme.php:204 src/Content/Widget.php:69
-msgid "Friend Suggestions"
+#: mod/profiles.php:469
+msgid "Profile updated."
 msgstr ""
 
-#: mod/uexport.php:52
-msgid "Export account"
+#: mod/profiles.php:523
+msgid "Hide contacts and friends:"
 msgstr ""
 
-#: mod/uexport.php:52
-msgid ""
-"Export your account info and contacts. Use this to make a backup of your "
-"account and/or to move it to another server."
+#: mod/profiles.php:528
+msgid "Hide your contact/friend list from viewers of this profile?"
 msgstr ""
 
-#: mod/uexport.php:53
-msgid "Export all"
+#: mod/profiles.php:548
+msgid "Show more profile fields:"
 msgstr ""
 
-#: mod/uexport.php:53
-msgid ""
-"Export your accout info, contacts and all your items as json. Could be a "
-"very big file, and could take a lot of time. Use this to make a full backup "
-"of your account (photos are not exported)"
+#: mod/profiles.php:560
+msgid "Profile Actions"
 msgstr ""
 
-#: mod/uexport.php:59 mod/settings.php:131 src/Module/BaseSettingsModule.php:89
-msgid "Export personal data"
+#: mod/profiles.php:561
+msgid "Edit Profile Details"
 msgstr ""
 
-#: mod/videos.php:123
-msgid "No videos selected"
+#: mod/profiles.php:563
+msgid "Change Profile Photo"
 msgstr ""
 
-#: mod/videos.php:280 src/Model/Item.php:3477
-msgid "View Video"
+#: mod/profiles.php:565
+msgid "View this profile"
 msgstr ""
 
-#: mod/videos.php:295
-msgid "Recent Videos"
+#: mod/profiles.php:566
+msgid "View all profiles"
 msgstr ""
 
-#: mod/videos.php:297
-msgid "Upload New Videos"
+#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419
+msgid "Edit visibility"
 msgstr ""
 
-#: mod/display.php:254 mod/display.php:339
-msgid "The requested item doesn't exist or has been deleted."
+#: mod/profiles.php:568
+msgid "Create a new profile using these settings"
 msgstr ""
 
-#: mod/display.php:417
-msgid "The feed for this item is unavailable."
+#: mod/profiles.php:569
+msgid "Clone this profile"
 msgstr ""
 
-#: mod/events.php:118 mod/events.php:120
-msgid "Event can not end before it has started."
+#: mod/profiles.php:570
+msgid "Delete this profile"
 msgstr ""
 
-#: mod/events.php:127 mod/events.php:129
-msgid "Event title and start time are required."
+#: mod/profiles.php:572
+msgid "Basic information"
 msgstr ""
 
-#: mod/events.php:385
-msgid "Create New Event"
+#: mod/profiles.php:573
+msgid "Profile picture"
 msgstr ""
 
-#: mod/events.php:508
-msgid "Event details"
+#: mod/profiles.php:575
+msgid "Preferences"
 msgstr ""
 
-#: mod/events.php:509
-msgid "Starting date and Title are required."
+#: mod/profiles.php:576
+msgid "Status information"
 msgstr ""
 
-#: mod/events.php:510 mod/events.php:515
-msgid "Event Starts:"
+#: mod/profiles.php:577
+msgid "Additional information"
 msgstr ""
 
-#: mod/events.php:523 mod/events.php:548
-msgid "Finish date/time is not known or not relevant"
+#: mod/profiles.php:580
+msgid "Relation"
 msgstr ""
 
-#: mod/events.php:525 mod/events.php:530
-msgid "Event Finishes:"
+#: mod/profiles.php:581 src/Util/Temporal.php:79 src/Util/Temporal.php:81
+msgid "Miscellaneous"
 msgstr ""
 
-#: mod/events.php:536 mod/events.php:549
-msgid "Adjust for viewer timezone"
+#: mod/profiles.php:584
+msgid "Your Gender:"
 msgstr ""
 
-#: mod/events.php:538
-msgid "Description:"
+#: mod/profiles.php:585
+msgid "<span class=\"heart\">&hearts;</span> Marital Status:"
 msgstr ""
 
-#: mod/events.php:540 mod/notifications.php:272 src/Model/Event.php:68
-#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933
-#: src/Model/Profile.php:447 src/Module/Directory.php:137
-#: src/Module/Contact.php:607
-msgid "Location:"
+#: mod/profiles.php:586 src/Model/Profile.php:804
+msgid "Sexual Preference:"
 msgstr ""
 
-#: mod/events.php:542 mod/events.php:544
-msgid "Title:"
+#: mod/profiles.php:587
+msgid "Example: fishing photography software"
 msgstr ""
 
-#: mod/events.php:545 mod/events.php:546
-msgid "Share this event"
+#: mod/profiles.php:592
+msgid "Profile Name:"
 msgstr ""
 
-#: mod/events.php:553 src/Model/Profile.php:890
-msgid "Basic"
+#: mod/profiles.php:594
+msgid ""
+"This is your <strong>public</strong> profile.<br />It <strong>may</strong> "
+"be visible to anybody using the internet."
 msgstr ""
 
-#: mod/events.php:554 src/Model/Profile.php:891 src/Module/Admin/Site.php:573
-#: src/Module/Contact.php:880
-msgid "Advanced"
+#: mod/profiles.php:595
+msgid "Your Full Name:"
 msgstr ""
 
-#: mod/events.php:571
-msgid "Failed to remove event"
+#: mod/profiles.php:596
+msgid "Title/Description:"
 msgstr ""
 
-#: mod/events.php:573
-msgid "Event removed"
+#: mod/profiles.php:599
+msgid "Street Address:"
 msgstr ""
 
-#: mod/item.php:123
-msgid "Unable to locate original post."
+#: mod/profiles.php:600
+msgid "Locality/City:"
 msgstr ""
 
-#: mod/item.php:323
-msgid "Empty post discarded."
+#: mod/profiles.php:601
+msgid "Region/State:"
 msgstr ""
 
-#: mod/item.php:803
-#, php-format
-msgid ""
-"This message was sent to you by %s, a member of the Friendica social network."
+#: mod/profiles.php:602
+msgid "Postal/Zip Code:"
 msgstr ""
 
-#: mod/item.php:805
-#, php-format
-msgid "You may visit them online at %s"
+#: mod/profiles.php:603
+msgid "Country:"
 msgstr ""
 
-#: mod/item.php:806
-msgid ""
-"Please contact the sender by replying to this post if you do not wish to "
-"receive these messages."
+#: mod/profiles.php:604 src/Util/Temporal.php:148
+msgid "Age: "
 msgstr ""
 
-#: mod/item.php:810
-#, php-format
-msgid "%s posted an update."
+#: mod/profiles.php:607
+msgid "Who: (if applicable)"
 msgstr ""
 
-#: mod/notifications.php:40
-msgid "Invalid request identifier."
+#: mod/profiles.php:607
+msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
 msgstr ""
 
-#: mod/notifications.php:96 src/Content/Nav.php:249
-msgid "Notifications"
+#: mod/profiles.php:608
+msgid "Since [date]:"
 msgstr ""
 
-#: mod/notifications.php:115
-msgid "Network Notifications"
+#: mod/profiles.php:610
+msgid "Tell us about yourself..."
 msgstr ""
 
-#: mod/notifications.php:120
-msgid "System Notifications"
+#: mod/profiles.php:611
+msgid "XMPP (Jabber) address:"
 msgstr ""
 
-#: mod/notifications.php:125
-msgid "Personal Notifications"
+#: mod/profiles.php:611
+msgid ""
+"The XMPP address will be propagated to your contacts so that they can follow "
+"you."
 msgstr ""
 
-#: mod/notifications.php:130
-msgid "Home Notifications"
+#: mod/profiles.php:612
+msgid "Homepage URL:"
 msgstr ""
 
-#: mod/notifications.php:153
-msgid "Show unread"
+#: mod/profiles.php:613 src/Model/Profile.php:812
+msgid "Hometown:"
 msgstr ""
 
-#: mod/notifications.php:153
-msgid "Show all"
+#: mod/profiles.php:614 src/Model/Profile.php:820
+msgid "Political Views:"
 msgstr ""
 
-#: mod/notifications.php:164
-msgid "Show Ignored Requests"
+#: mod/profiles.php:615
+msgid "Religious Views:"
 msgstr ""
 
-#: mod/notifications.php:164
-msgid "Hide Ignored Requests"
+#: mod/profiles.php:616
+msgid "Public Keywords:"
 msgstr ""
 
-#: mod/notifications.php:177 mod/notifications.php:262
-msgid "Notification type:"
+#: mod/profiles.php:616
+msgid "(Used for suggesting potential friends, can be seen by others)"
 msgstr ""
 
-#: mod/notifications.php:180
-msgid "Suggested by:"
+#: mod/profiles.php:617
+msgid "Private Keywords:"
 msgstr ""
 
-#: mod/notifications.php:192 mod/notifications.php:279
-#: src/Module/Contact.php:594
-msgid "Hide this contact from others"
+#: mod/profiles.php:617
+msgid "(Used for searching profiles, never shown to others)"
 msgstr ""
 
-#: mod/notifications.php:194 mod/notifications.php:288
-#: src/Model/Contact.php:1238 src/Module/Admin/Users.php:286
-msgid "Approve"
+#: mod/profiles.php:618 src/Model/Profile.php:836
+msgid "Likes:"
 msgstr ""
 
-#: mod/notifications.php:214
-msgid "Claims to be known to you: "
+#: mod/profiles.php:619 src/Model/Profile.php:840
+msgid "Dislikes:"
 msgstr ""
 
-#: mod/notifications.php:215
-msgid "yes"
+#: mod/profiles.php:620
+msgid "Musical interests"
 msgstr ""
 
-#: mod/notifications.php:215
-msgid "no"
+#: mod/profiles.php:621
+msgid "Books, literature"
 msgstr ""
 
-#: mod/notifications.php:216 mod/notifications.php:220
-msgid "Shall your connection be bidirectional or not?"
+#: mod/profiles.php:622
+msgid "Television"
 msgstr ""
 
-#: mod/notifications.php:217 mod/notifications.php:221
-#, php-format
-msgid ""
-"Accepting %s as a friend allows %s to subscribe to your posts, and you will "
-"also receive updates from them in your news feed."
+#: mod/profiles.php:623
+msgid "Film/dance/culture/entertainment"
 msgstr ""
 
-#: mod/notifications.php:218
-#, php-format
-msgid ""
-"Accepting %s as a subscriber allows them to subscribe to your posts, but you "
-"will not receive updates from them in your news feed."
+#: mod/profiles.php:624
+msgid "Hobbies/Interests"
 msgstr ""
 
-#: mod/notifications.php:222
-#, php-format
-msgid ""
-"Accepting %s as a sharer allows them to subscribe to your posts, but you "
-"will not receive updates from them in your news feed."
+#: mod/profiles.php:625
+msgid "Love/romance"
 msgstr ""
 
-#: mod/notifications.php:233
-msgid "Friend"
+#: mod/profiles.php:626
+msgid "Work/employment"
 msgstr ""
 
-#: mod/notifications.php:234
-msgid "Sharer"
+#: mod/profiles.php:627
+msgid "School/education"
 msgstr ""
 
-#: mod/notifications.php:234
-msgid "Subscriber"
+#: mod/profiles.php:628
+msgid "Contact information and Social Networks"
 msgstr ""
 
-#: mod/notifications.php:274 src/Model/Profile.php:453
-#: src/Model/Profile.php:832 src/Module/Directory.php:145
-#: src/Module/Contact.php:611
-msgid "About:"
+#: mod/profiles.php:659 src/Model/Profile.php:415
+msgid "Profile Image"
 msgstr ""
 
-#: mod/notifications.php:278 src/Model/Profile.php:450
-#: src/Model/Profile.php:771 src/Module/Directory.php:142
-msgid "Gender:"
+#: mod/profiles.php:661 src/Model/Profile.php:418
+msgid "visible to everybody"
 msgstr ""
 
-#: mod/notifications.php:285 src/Model/Profile.php:558
-#: src/Module/Contact.php:295
-msgid "Network:"
+#: mod/profiles.php:668
+msgid "Edit/Manage Profiles"
 msgstr ""
 
-#: mod/notifications.php:299
-msgid "No introductions."
+#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:426
+msgid "Change profile photo"
 msgstr ""
 
-#: mod/notifications.php:333
-#, php-format
-msgid "No more %s notifications."
+#: mod/profiles.php:670 src/Model/Profile.php:406
+msgid "Create New Profile"
 msgstr ""
 
-#: mod/openid.php:30
-msgid "OpenID protocol error. No ID returned."
+#: mod/regmod.php:53
+msgid "Account approved."
 msgstr ""
 
-#: mod/openid.php:60
-msgid ""
-"Account not found and OpenID registration is not permitted on this site."
+#: mod/regmod.php:77
+#, php-format
+msgid "Registration revoked for %s"
 msgstr ""
 
-#: mod/openid.php:108 src/Module/Login.php:88 src/Module/Login.php:139
-msgid "Login failed."
+#: mod/regmod.php:84
+msgid "Please login."
 msgstr ""
 
-#: mod/settings.php:65 src/Module/BaseSettingsModule.php:24
+#: mod/settings.php:67 src/Module/BaseSettingsModule.php:24
 msgid "Account"
 msgstr ""
 
-#: mod/settings.php:73 src/Module/BaseSettingsModule.php:31
-#: src/Module/Settings/TwoFactor/Index.php:89
-#: src/Module/TwoFactor/Verify.php:62
+#: mod/settings.php:75 src/Module/Settings/TwoFactor/Index.php:89
+#: src/Module/TwoFactor/Verify.php:62 src/Module/BaseSettingsModule.php:31
 msgid "Two-factor authentication"
 msgstr ""
 
-#: mod/settings.php:80 src/Content/Nav.php:268 src/Model/Profile.php:402
+#: mod/settings.php:82 src/Content/Nav.php:266 src/Model/Profile.php:398
 #: src/Module/BaseSettingsModule.php:38
 msgid "Profiles"
 msgstr ""
 
-#: mod/settings.php:88 src/Module/BaseAdminModule.php:84
+#: mod/settings.php:90 src/Module/BaseAdminModule.php:84
 #: src/Module/BaseSettingsModule.php:46
 msgid "Additional features"
 msgstr ""
 
-#: mod/settings.php:96 src/Module/BaseSettingsModule.php:54
+#: mod/settings.php:98 src/Module/BaseSettingsModule.php:54
 msgid "Display"
 msgstr ""
 
-#: mod/settings.php:103 mod/settings.php:843
+#: mod/settings.php:105 mod/settings.php:835
 #: src/Module/BaseSettingsModule.php:61
 msgid "Social Networks"
 msgstr ""
 
-#: mod/settings.php:110 src/Module/Admin/Addons/Details.php:100
+#: mod/settings.php:112 src/Module/Admin/Addons/Details.php:100
 #: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82
 #: src/Module/BaseSettingsModule.php:68
 msgid "Addons"
 msgstr ""
 
-#: mod/settings.php:117 src/Content/Nav.php:263
-#: src/Module/BaseSettingsModule.php:75
+#: mod/settings.php:119 src/Module/BaseSettingsModule.php:75
 msgid "Delegations"
 msgstr ""
 
-#: mod/settings.php:124 src/Module/BaseSettingsModule.php:82
+#: mod/settings.php:126 src/Module/BaseSettingsModule.php:82
 msgid "Connected apps"
 msgstr ""
 
-#: mod/settings.php:138 src/Module/BaseSettingsModule.php:96
+#: mod/settings.php:133 src/Module/Settings/UserExport.php:52
+#: src/Module/BaseSettingsModule.php:89
+msgid "Export personal data"
+msgstr ""
+
+#: mod/settings.php:140 src/Module/BaseSettingsModule.php:96
 msgid "Remove account"
 msgstr ""
 
-#: mod/settings.php:147 view/theme/frio/theme.php:277 src/Content/Nav.php:265
+#: mod/settings.php:149 view/theme/frio/theme.php:277 src/Content/Nav.php:263
 #: src/Module/Admin/Addons/Details.php:102
-#: src/Module/Admin/Themes/Details.php:107
-#: src/Module/BaseSettingsModule.php:105 src/Module/Welcome.php:33
+#: src/Module/Admin/Themes/Details.php:107 src/Module/Welcome.php:33
+#: src/Module/BaseSettingsModule.php:105
 msgid "Settings"
 msgstr ""
 
-#: mod/settings.php:190
+#: mod/settings.php:192
 msgid "Missing some important data!"
 msgstr ""
 
-#: mod/settings.php:192 mod/settings.php:703 src/Module/Contact.php:801
+#: mod/settings.php:194 mod/settings.php:695 src/Module/Contact.php:822
 msgid "Update"
 msgstr ""
 
-#: mod/settings.php:302
+#: mod/settings.php:301
 msgid "Failed to connect with email account using the settings provided."
 msgstr ""
 
-#: mod/settings.php:307
+#: mod/settings.php:306
 msgid "Email settings updated."
 msgstr ""
 
-#: mod/settings.php:323
+#: mod/settings.php:322
 msgid "Features updated"
 msgstr ""
 
-#: mod/settings.php:384
+#: mod/settings.php:383
 msgid "The theme you chose isn't available."
 msgstr ""
 
-#: mod/settings.php:396
+#: mod/settings.php:399
+msgid "Contact CSV file upload error"
+msgstr ""
+
+#: mod/settings.php:413
+msgid "Importing Contacts done"
+msgstr ""
+
+#: mod/settings.php:422
 msgid "Relocate message has been send to your contacts"
 msgstr ""
 
-#: mod/settings.php:408
+#: mod/settings.php:434
 msgid "Passwords do not match."
 msgstr ""
 
-#: mod/settings.php:416 src/Console/NewPassword.php:101
+#: mod/settings.php:442 src/Console/NewPassword.php:101
 msgid "Password update failed. Please try again."
 msgstr ""
 
-#: mod/settings.php:419 src/Console/NewPassword.php:104
+#: mod/settings.php:445 src/Console/NewPassword.php:104
 msgid "Password changed."
 msgstr ""
 
-#: mod/settings.php:422
+#: mod/settings.php:448
 msgid "Password unchanged."
 msgstr ""
 
-#: mod/settings.php:503
+#: mod/settings.php:530
 msgid " Please use a shorter name."
 msgstr ""
 
-#: mod/settings.php:506
+#: mod/settings.php:533
 msgid " Name too short."
 msgstr ""
 
-#: mod/settings.php:513 src/Module/Settings/TwoFactor/Index.php:72
+#: mod/settings.php:540 src/Module/Settings/TwoFactor/Index.php:72
 msgid "Wrong Password"
 msgstr ""
 
-#: mod/settings.php:518
+#: mod/settings.php:545
 msgid "Invalid email."
 msgstr ""
 
-#: mod/settings.php:524
+#: mod/settings.php:551
 msgid "Cannot change to that email."
 msgstr ""
 
-#: mod/settings.php:574
+#: mod/settings.php:589
 msgid "Private forum has no privacy permissions. Using default privacy group."
 msgstr ""
 
-#: mod/settings.php:577
+#: mod/settings.php:592
 msgid "Private forum has no privacy permissions and no default privacy group."
 msgstr ""
 
-#: mod/settings.php:617
+#: mod/settings.php:609
 msgid "Settings updated."
 msgstr ""
 
-#: mod/settings.php:676 mod/settings.php:702 mod/settings.php:736
+#: mod/settings.php:668 mod/settings.php:694 mod/settings.php:728
 msgid "Add application"
 msgstr ""
 
-#: mod/settings.php:680 mod/settings.php:706
+#: mod/settings.php:669 mod/settings.php:776 mod/settings.php:866
+#: mod/settings.php:945 mod/settings.php:1170
+#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69
+#: src/Module/Admin/Logs/Settings.php:65 src/Module/Admin/Themes/Index.php:97
+#: src/Module/Admin/Tos.php:50 src/Module/Admin/Site.php:568
+#: src/Module/Settings/Delegation.php:158
+msgid "Save Settings"
+msgstr ""
+
+#: mod/settings.php:672 mod/settings.php:698
 msgid "Consumer Key"
 msgstr ""
 
-#: mod/settings.php:681 mod/settings.php:707
+#: mod/settings.php:673 mod/settings.php:699
 msgid "Consumer Secret"
 msgstr ""
 
-#: mod/settings.php:682 mod/settings.php:708
+#: mod/settings.php:674 mod/settings.php:700
 msgid "Redirect"
 msgstr ""
 
-#: mod/settings.php:683 mod/settings.php:709
+#: mod/settings.php:675 mod/settings.php:701
 msgid "Icon url"
 msgstr ""
 
-#: mod/settings.php:694
+#: mod/settings.php:686
 msgid "You can't edit this application."
 msgstr ""
 
-#: mod/settings.php:735
+#: mod/settings.php:727
 msgid "Connected Apps"
 msgstr ""
 
-#: mod/settings.php:737 src/Object/Post.php:168 src/Object/Post.php:170
+#: mod/settings.php:729 src/Object/Post.php:165 src/Object/Post.php:167
 msgid "Edit"
 msgstr ""
 
-#: mod/settings.php:739
+#: mod/settings.php:731
 msgid "Client key starts with"
 msgstr ""
 
-#: mod/settings.php:740
+#: mod/settings.php:732
 msgid "No name"
 msgstr ""
 
-#: mod/settings.php:741
+#: mod/settings.php:733
 msgid "Remove authorization"
 msgstr ""
 
-#: mod/settings.php:752
+#: mod/settings.php:744
 msgid "No Addon settings configured"
 msgstr ""
 
-#: mod/settings.php:761
+#: mod/settings.php:753
 msgid "Addon Settings"
 msgstr ""
 
-#: mod/settings.php:775 src/Module/Admin/Features.php:58
+#: mod/settings.php:767 src/Module/Admin/Features.php:58
 #: src/Module/Admin/Features.php:59
 msgid "Off"
 msgstr ""
 
-#: mod/settings.php:775 src/Module/Admin/Features.php:58
+#: mod/settings.php:767 src/Module/Admin/Features.php:58
 #: src/Module/Admin/Features.php:59
 msgid "On"
 msgstr ""
 
-#: mod/settings.php:782
+#: mod/settings.php:774
 msgid "Additional Features"
 msgstr ""
 
-#: mod/settings.php:806 src/Content/ContactSelector.php:120
+#: mod/settings.php:798 src/Content/ContactSelector.php:120
 msgid "Diaspora"
 msgstr ""
 
-#: mod/settings.php:806 mod/settings.php:807
+#: mod/settings.php:798 mod/settings.php:799
 msgid "enabled"
 msgstr ""
 
-#: mod/settings.php:806 mod/settings.php:807
+#: mod/settings.php:798 mod/settings.php:799
 msgid "disabled"
 msgstr ""
 
-#: mod/settings.php:806 mod/settings.php:807
+#: mod/settings.php:798 mod/settings.php:799
 #, php-format
 msgid "Built-in support for %s connectivity is %s"
 msgstr ""
 
-#: mod/settings.php:807
+#: mod/settings.php:799
 msgid "GNU Social (OStatus)"
 msgstr ""
 
-#: mod/settings.php:838
+#: mod/settings.php:830
 msgid "Email access is disabled on this site."
 msgstr ""
 
-#: mod/settings.php:848
+#: mod/settings.php:840
 msgid "General Social Media Settings"
 msgstr ""
 
-#: mod/settings.php:849
+#: mod/settings.php:841
 msgid "Accept only top level posts by contacts you follow"
 msgstr ""
 
-#: mod/settings.php:849
+#: mod/settings.php:841
 msgid ""
 "The system does an auto completion of threads when a comment arrives. This "
 "has got the side effect that you can receive posts that had been started by "
@@ -3508,11 +3251,11 @@ msgid ""
 "posts from people you really do follow."
 msgstr ""
 
-#: mod/settings.php:850
+#: mod/settings.php:842
 msgid "Disable Content Warning"
 msgstr ""
 
-#: mod/settings.php:850
+#: mod/settings.php:842
 msgid ""
 "Users on networks like Mastodon or Pleroma are able to set a content warning "
 "field which collapse their post by default. This disables the automatic "
@@ -3520,352 +3263,352 @@ msgid ""
 "any other content filtering you eventually set up."
 msgstr ""
 
-#: mod/settings.php:851
+#: mod/settings.php:843
 msgid "Disable intelligent shortening"
 msgstr ""
 
-#: mod/settings.php:851
+#: mod/settings.php:843
 msgid ""
 "Normally the system tries to find the best link to add to shortened posts. "
 "If this option is enabled then every shortened post will always point to the "
 "original friendica post."
 msgstr ""
 
-#: mod/settings.php:852
+#: mod/settings.php:844
 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners"
 msgstr ""
 
-#: mod/settings.php:852
+#: mod/settings.php:844
 msgid ""
 "If you receive a message from an unknown OStatus user, this option decides "
 "what to do. If it is checked, a new contact will be created for every "
 "unknown user."
 msgstr ""
 
-#: mod/settings.php:853
+#: mod/settings.php:845
 msgid "Default group for OStatus contacts"
 msgstr ""
 
-#: mod/settings.php:854
+#: mod/settings.php:846
 msgid "Your legacy GNU Social account"
 msgstr ""
 
-#: mod/settings.php:854
+#: mod/settings.php:846
 msgid ""
 "If you enter your old GNU Social/Statusnet account name here (in the format "
 "user@domain.tld), your contacts will be added automatically. The field will "
 "be emptied when done."
 msgstr ""
 
-#: mod/settings.php:857
+#: mod/settings.php:849
 msgid "Repair OStatus subscriptions"
 msgstr ""
 
-#: mod/settings.php:861
+#: mod/settings.php:853
 msgid "Email/Mailbox Setup"
 msgstr ""
 
-#: mod/settings.php:862
+#: mod/settings.php:854
 msgid ""
 "If you wish to communicate with email contacts using this service "
 "(optional), please specify how to connect to your mailbox."
 msgstr ""
 
-#: mod/settings.php:863
+#: mod/settings.php:855
 msgid "Last successful email check:"
 msgstr ""
 
-#: mod/settings.php:865
+#: mod/settings.php:857
 msgid "IMAP server name:"
 msgstr ""
 
-#: mod/settings.php:866
+#: mod/settings.php:858
 msgid "IMAP port:"
 msgstr ""
 
-#: mod/settings.php:867
+#: mod/settings.php:859
 msgid "Security:"
 msgstr ""
 
-#: mod/settings.php:867 mod/settings.php:872
+#: mod/settings.php:859 mod/settings.php:864
 msgid "None"
 msgstr ""
 
-#: mod/settings.php:868
+#: mod/settings.php:860
 msgid "Email login name:"
 msgstr ""
 
-#: mod/settings.php:869
+#: mod/settings.php:861
 msgid "Email password:"
 msgstr ""
 
-#: mod/settings.php:870
+#: mod/settings.php:862
 msgid "Reply-to address:"
 msgstr ""
 
-#: mod/settings.php:871
+#: mod/settings.php:863
 msgid "Send public posts to all email contacts:"
 msgstr ""
 
-#: mod/settings.php:872
+#: mod/settings.php:864
 msgid "Action after import:"
 msgstr ""
 
-#: mod/settings.php:872 src/Content/Nav.php:251
+#: mod/settings.php:864 src/Content/Nav.php:251
 msgid "Mark as seen"
 msgstr ""
 
-#: mod/settings.php:872
+#: mod/settings.php:864
 msgid "Move to folder"
 msgstr ""
 
-#: mod/settings.php:873
+#: mod/settings.php:865
 msgid "Move to folder:"
 msgstr ""
 
-#: mod/settings.php:897 src/Module/Admin/Site.php:433
+#: mod/settings.php:889 src/Module/Admin/Site.php:433
 msgid "No special theme for mobile devices"
 msgstr ""
 
-#: mod/settings.php:905
+#: mod/settings.php:897
 #, php-format
 msgid "%s - (Unsupported)"
 msgstr ""
 
-#: mod/settings.php:907 src/Module/Admin/Site.php:450
+#: mod/settings.php:899 src/Module/Admin/Site.php:450
 #, php-format
 msgid "%s - (Experimental)"
 msgstr ""
 
-#: mod/settings.php:935 src/Core/L10n/L10n.php:370 src/Model/Event.php:395
+#: mod/settings.php:927 src/Core/L10n/L10n.php:404 src/Model/Event.php:396
 msgid "Sunday"
 msgstr ""
 
-#: mod/settings.php:935 src/Core/L10n/L10n.php:370 src/Model/Event.php:396
+#: mod/settings.php:927 src/Core/L10n/L10n.php:404 src/Model/Event.php:397
 msgid "Monday"
 msgstr ""
 
-#: mod/settings.php:951
+#: mod/settings.php:943
 msgid "Display Settings"
 msgstr ""
 
-#: mod/settings.php:957
+#: mod/settings.php:949
 msgid "Display Theme:"
 msgstr ""
 
-#: mod/settings.php:958
+#: mod/settings.php:950
 msgid "Mobile Theme:"
 msgstr ""
 
-#: mod/settings.php:959
+#: mod/settings.php:951
 msgid "Suppress warning of insecure networks"
 msgstr ""
 
-#: mod/settings.php:959
+#: mod/settings.php:951
 msgid ""
 "Should the system suppress the warning that the current group contains "
 "members of networks that can't receive non public postings."
 msgstr ""
 
-#: mod/settings.php:960
+#: mod/settings.php:952
 msgid "Update browser every xx seconds"
 msgstr ""
 
-#: mod/settings.php:960
+#: mod/settings.php:952
 msgid "Minimum of 10 seconds. Enter -1 to disable it."
 msgstr ""
 
-#: mod/settings.php:961
+#: mod/settings.php:953
 msgid "Number of items to display per page:"
 msgstr ""
 
-#: mod/settings.php:961 mod/settings.php:962
+#: mod/settings.php:953 mod/settings.php:954
 msgid "Maximum of 100 items"
 msgstr ""
 
-#: mod/settings.php:962
+#: mod/settings.php:954
 msgid "Number of items to display per page when viewed from mobile device:"
 msgstr ""
 
-#: mod/settings.php:963
+#: mod/settings.php:955
 msgid "Don't show emoticons"
 msgstr ""
 
-#: mod/settings.php:964
+#: mod/settings.php:956
 msgid "Calendar"
 msgstr ""
 
-#: mod/settings.php:965
+#: mod/settings.php:957
 msgid "Beginning of week:"
 msgstr ""
 
-#: mod/settings.php:966
+#: mod/settings.php:958
 msgid "Don't show notices"
 msgstr ""
 
-#: mod/settings.php:967
+#: mod/settings.php:959
 msgid "Infinite scroll"
 msgstr ""
 
-#: mod/settings.php:968
+#: mod/settings.php:960
 msgid "Automatic updates only at the top of the network page"
 msgstr ""
 
-#: mod/settings.php:968
+#: mod/settings.php:960
 msgid ""
 "When disabled, the network page is updated all the time, which could be "
 "confusing while reading."
 msgstr ""
 
-#: mod/settings.php:969
+#: mod/settings.php:961
 msgid "Bandwidth Saver Mode"
 msgstr ""
 
-#: mod/settings.php:969
+#: mod/settings.php:961
 msgid ""
 "When enabled, embedded content is not displayed on automatic updates, they "
 "only show on page reload."
 msgstr ""
 
-#: mod/settings.php:970
+#: mod/settings.php:962
 msgid "Smart Threading"
 msgstr ""
 
-#: mod/settings.php:970
+#: mod/settings.php:962
 msgid ""
 "When enabled, suppress extraneous thread indentation while keeping it where "
 "it matters. Only works if threading is available and enabled."
 msgstr ""
 
-#: mod/settings.php:972
+#: mod/settings.php:964
 msgid "General Theme Settings"
 msgstr ""
 
-#: mod/settings.php:973
+#: mod/settings.php:965
 msgid "Custom Theme Settings"
 msgstr ""
 
-#: mod/settings.php:974
+#: mod/settings.php:966
 msgid "Content Settings"
 msgstr ""
 
-#: mod/settings.php:975 view/theme/duepuntozero/config.php:73
+#: mod/settings.php:967 view/theme/duepuntozero/config.php:73
 #: view/theme/frio/config.php:128 view/theme/quattro/config.php:75
-#: view/theme/vier/config.php:121
+#: view/theme/vier/config.php:123
 msgid "Theme settings"
 msgstr ""
 
-#: mod/settings.php:989
+#: mod/settings.php:981
 msgid "Unable to find your profile. Please contact your admin."
 msgstr ""
 
-#: mod/settings.php:1028
+#: mod/settings.php:1020
 msgid "Account Types"
 msgstr ""
 
-#: mod/settings.php:1029
+#: mod/settings.php:1021
 msgid "Personal Page Subtypes"
 msgstr ""
 
-#: mod/settings.php:1030
+#: mod/settings.php:1022
 msgid "Community Forum Subtypes"
 msgstr ""
 
-#: mod/settings.php:1037 src/Module/Admin/Users.php:229
+#: mod/settings.php:1029 src/Module/Admin/Users.php:229
 msgid "Personal Page"
 msgstr ""
 
-#: mod/settings.php:1038
+#: mod/settings.php:1030
 msgid "Account for a personal profile."
 msgstr ""
 
-#: mod/settings.php:1041 src/Module/Admin/Users.php:230
+#: mod/settings.php:1033 src/Module/Admin/Users.php:230
 msgid "Organisation Page"
 msgstr ""
 
-#: mod/settings.php:1042
+#: mod/settings.php:1034
 msgid ""
 "Account for an organisation that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: mod/settings.php:1045 src/Module/Admin/Users.php:231
+#: mod/settings.php:1037 src/Module/Admin/Users.php:231
 msgid "News Page"
 msgstr ""
 
-#: mod/settings.php:1046
+#: mod/settings.php:1038
 msgid ""
 "Account for a news reflector that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: mod/settings.php:1049 src/Module/Admin/Users.php:232
+#: mod/settings.php:1041 src/Module/Admin/Users.php:232
 msgid "Community Forum"
 msgstr ""
 
-#: mod/settings.php:1050
+#: mod/settings.php:1042
 msgid "Account for community discussions."
 msgstr ""
 
-#: mod/settings.php:1053 src/Module/Admin/Users.php:222
+#: mod/settings.php:1045 src/Module/Admin/Users.php:222
 msgid "Normal Account Page"
 msgstr ""
 
-#: mod/settings.php:1054
+#: mod/settings.php:1046
 msgid ""
 "Account for a regular personal profile that requires manual approval of "
 "\"Friends\" and \"Followers\"."
 msgstr ""
 
-#: mod/settings.php:1057 src/Module/Admin/Users.php:223
+#: mod/settings.php:1049 src/Module/Admin/Users.php:223
 msgid "Soapbox Page"
 msgstr ""
 
-#: mod/settings.php:1058
+#: mod/settings.php:1050
 msgid ""
 "Account for a public profile that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: mod/settings.php:1061 src/Module/Admin/Users.php:224
+#: mod/settings.php:1053 src/Module/Admin/Users.php:224
 msgid "Public Forum"
 msgstr ""
 
-#: mod/settings.php:1062
+#: mod/settings.php:1054
 msgid "Automatically approves all contact requests."
 msgstr ""
 
-#: mod/settings.php:1065 src/Module/Admin/Users.php:225
+#: mod/settings.php:1057 src/Module/Admin/Users.php:225
 msgid "Automatic Friend Page"
 msgstr ""
 
-#: mod/settings.php:1066
+#: mod/settings.php:1058
 msgid ""
 "Account for a popular profile that automatically approves contact requests "
 "as \"Friends\"."
 msgstr ""
 
-#: mod/settings.php:1069
+#: mod/settings.php:1061
 msgid "Private Forum [Experimental]"
 msgstr ""
 
-#: mod/settings.php:1070
+#: mod/settings.php:1062
 msgid "Requires manual approval of contact requests."
 msgstr ""
 
-#: mod/settings.php:1081
+#: mod/settings.php:1073
 msgid "OpenID:"
 msgstr ""
 
-#: mod/settings.php:1081
+#: mod/settings.php:1073
 msgid "(Optional) Allow this OpenID to login to this account."
 msgstr ""
 
-#: mod/settings.php:1089
+#: mod/settings.php:1081
 msgid "Publish your default profile in your local site directory?"
 msgstr ""
 
-#: mod/settings.php:1089
+#: mod/settings.php:1081
 #, php-format
 msgid ""
 "Your profile will be published in this node's <a href=\"%s\">local "
@@ -3873,324 +3616,487 @@ msgid ""
 "system settings."
 msgstr ""
 
-#: mod/settings.php:1095
+#: mod/settings.php:1087
 msgid "Publish your default profile in the global social directory?"
 msgstr ""
 
-#: mod/settings.php:1095
+#: mod/settings.php:1087
 #, php-format
 msgid ""
 "Your profile will be published in the global friendica directories (e.g. <a "
 "href=\"%s\">%s</a>). Your profile will be visible in public."
 msgstr ""
 
-#: mod/settings.php:1095
+#: mod/settings.php:1087
 msgid ""
 "This setting also determines whether Friendica will inform search engines "
 "that your profile should be indexed or not. Third-party search engines may "
 "or may not respect this setting."
 msgstr ""
 
-#: mod/settings.php:1102
+#: mod/settings.php:1094
 msgid "Hide your contact/friend list from viewers of your default profile?"
 msgstr ""
 
-#: mod/settings.php:1102
+#: mod/settings.php:1094
 msgid ""
 "Your contact list won't be shown in your default profile page. You can "
 "decide to show your contact list separately for each additional profile you "
 "create"
 msgstr ""
 
-#: mod/settings.php:1106
+#: mod/settings.php:1098
 msgid "Hide your profile details from anonymous viewers?"
 msgstr ""
 
-#: mod/settings.php:1106
+#: mod/settings.php:1098
 msgid ""
 "Anonymous visitors will only see your profile picture, your display name and "
 "the nickname you are using on your profile page. Your public posts and "
 "replies will still be accessible by other means."
 msgstr ""
 
-#: mod/settings.php:1110
+#: mod/settings.php:1102
 msgid "Allow friends to post to your profile page?"
 msgstr ""
 
-#: mod/settings.php:1110
+#: mod/settings.php:1102
 msgid ""
 "Your contacts may write posts on your profile wall. These posts will be "
 "distributed to your contacts"
 msgstr ""
 
-#: mod/settings.php:1114
+#: mod/settings.php:1106
 msgid "Allow friends to tag your posts?"
 msgstr ""
 
-#: mod/settings.php:1114
+#: mod/settings.php:1106
 msgid "Your contacts can add additional tags to your posts."
 msgstr ""
 
-#: mod/settings.php:1118
+#: mod/settings.php:1110
 msgid "Allow us to suggest you as a potential friend to new members?"
 msgstr ""
 
-#: mod/settings.php:1118
+#: mod/settings.php:1110
 msgid "If you like, Friendica may suggest new members to add you as a contact."
 msgstr ""
 
-#: mod/settings.php:1122
+#: mod/settings.php:1114
 msgid "Permit unknown people to send you private mail?"
 msgstr ""
 
-#: mod/settings.php:1122
+#: mod/settings.php:1114
 msgid ""
 "Friendica network users may send you private messages even if they are not "
 "in your contact list."
 msgstr ""
 
-#: mod/settings.php:1126
+#: mod/settings.php:1118
 msgid "Profile is <strong>not published</strong>."
 msgstr ""
 
-#: mod/settings.php:1132
+#: mod/settings.php:1124
 #, php-format
 msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
 msgstr ""
 
-#: mod/settings.php:1139
+#: mod/settings.php:1131
 msgid "Automatically expire posts after this many days:"
 msgstr ""
 
-#: mod/settings.php:1139
+#: mod/settings.php:1131
 msgid "If empty, posts will not expire. Expired posts will be deleted"
 msgstr ""
 
-#: mod/settings.php:1140
+#: mod/settings.php:1132
 msgid "Advanced expiration settings"
 msgstr ""
 
-#: mod/settings.php:1141
+#: mod/settings.php:1133
 msgid "Advanced Expiration"
 msgstr ""
 
-#: mod/settings.php:1142
+#: mod/settings.php:1134
 msgid "Expire posts:"
 msgstr ""
 
-#: mod/settings.php:1143
+#: mod/settings.php:1135
 msgid "Expire personal notes:"
 msgstr ""
 
-#: mod/settings.php:1144
+#: mod/settings.php:1136
 msgid "Expire starred posts:"
 msgstr ""
 
-#: mod/settings.php:1145
+#: mod/settings.php:1137
 msgid "Expire photos:"
 msgstr ""
 
-#: mod/settings.php:1146
+#: mod/settings.php:1138
 msgid "Only expire posts by others:"
 msgstr ""
 
-#: mod/settings.php:1176
+#: mod/settings.php:1168
 msgid "Account Settings"
 msgstr ""
 
-#: mod/settings.php:1184
+#: mod/settings.php:1176
 msgid "Password Settings"
 msgstr ""
 
-#: mod/settings.php:1185 src/Module/Register.php:130
+#: mod/settings.php:1177 src/Module/Register.php:124
 msgid "New Password:"
 msgstr ""
 
-#: mod/settings.php:1185
+#: mod/settings.php:1177
 msgid ""
 "Allowed characters are a-z, A-Z, 0-9 and special characters except white "
 "spaces, accentuated letters and colon (:)."
 msgstr ""
 
-#: mod/settings.php:1186 src/Module/Register.php:131
+#: mod/settings.php:1178 src/Module/Register.php:125
 msgid "Confirm:"
 msgstr ""
 
-#: mod/settings.php:1186
+#: mod/settings.php:1178
 msgid "Leave password fields blank unless changing"
 msgstr ""
 
-#: mod/settings.php:1187
+#: mod/settings.php:1179
 msgid "Current Password:"
 msgstr ""
 
-#: mod/settings.php:1187 mod/settings.php:1188
+#: mod/settings.php:1179 mod/settings.php:1180
 msgid "Your current password to confirm the changes"
 msgstr ""
 
-#: mod/settings.php:1188
+#: mod/settings.php:1180
 msgid "Password:"
 msgstr ""
 
-#: mod/settings.php:1192
+#: mod/settings.php:1183
+msgid "Delete OpenID URL"
+msgstr ""
+
+#: mod/settings.php:1185
 msgid "Basic Settings"
 msgstr ""
 
-#: mod/settings.php:1193 src/Model/Profile.php:764
+#: mod/settings.php:1186 src/Model/Profile.php:760
 msgid "Full Name:"
 msgstr ""
 
-#: mod/settings.php:1194
+#: mod/settings.php:1187
 msgid "Email Address:"
 msgstr ""
 
-#: mod/settings.php:1195
+#: mod/settings.php:1188
 msgid "Your Timezone:"
 msgstr ""
 
-#: mod/settings.php:1196
+#: mod/settings.php:1189
 msgid "Your Language:"
 msgstr ""
 
-#: mod/settings.php:1196
+#: mod/settings.php:1189
 msgid ""
 "Set the language we use to show you friendica interface and to send you "
 "emails"
 msgstr ""
 
-#: mod/settings.php:1197
+#: mod/settings.php:1190
 msgid "Default Post Location:"
 msgstr ""
 
-#: mod/settings.php:1198
+#: mod/settings.php:1191
 msgid "Use Browser Location:"
 msgstr ""
 
-#: mod/settings.php:1201
+#: mod/settings.php:1194
 msgid "Security and Privacy Settings"
 msgstr ""
 
-#: mod/settings.php:1203
+#: mod/settings.php:1196
 msgid "Maximum Friend Requests/Day:"
 msgstr ""
 
-#: mod/settings.php:1203 mod/settings.php:1232
+#: mod/settings.php:1196 mod/settings.php:1225
 msgid "(to prevent spam abuse)"
 msgstr ""
 
-#: mod/settings.php:1204
+#: mod/settings.php:1197
 msgid "Default Post Permissions"
 msgstr ""
 
-#: mod/settings.php:1205
+#: mod/settings.php:1198
 msgid "(click to open/close)"
 msgstr ""
 
-#: mod/settings.php:1215
+#: mod/settings.php:1208
 msgid "Default Private Post"
 msgstr ""
 
-#: mod/settings.php:1216
+#: mod/settings.php:1209
 msgid "Default Public Post"
 msgstr ""
 
-#: mod/settings.php:1220
+#: mod/settings.php:1213
 msgid "Default Permissions for New Posts"
 msgstr ""
 
-#: mod/settings.php:1232
+#: mod/settings.php:1225
 msgid "Maximum private messages per day from unknown people:"
 msgstr ""
 
-#: mod/settings.php:1235
+#: mod/settings.php:1228
 msgid "Notification Settings"
 msgstr ""
 
-#: mod/settings.php:1236
+#: mod/settings.php:1229
 msgid "Send a notification email when:"
 msgstr ""
 
-#: mod/settings.php:1237
+#: mod/settings.php:1230
 msgid "You receive an introduction"
 msgstr ""
 
-#: mod/settings.php:1238
+#: mod/settings.php:1231
 msgid "Your introductions are confirmed"
 msgstr ""
 
-#: mod/settings.php:1239
+#: mod/settings.php:1232
 msgid "Someone writes on your profile wall"
 msgstr ""
 
-#: mod/settings.php:1240
+#: mod/settings.php:1233
 msgid "Someone writes a followup comment"
 msgstr ""
 
-#: mod/settings.php:1241
+#: mod/settings.php:1234
 msgid "You receive a private message"
 msgstr ""
 
-#: mod/settings.php:1242
+#: mod/settings.php:1235
 msgid "You receive a friend suggestion"
 msgstr ""
 
-#: mod/settings.php:1243
+#: mod/settings.php:1236
 msgid "You are tagged in a post"
 msgstr ""
 
-#: mod/settings.php:1244
+#: mod/settings.php:1237
 msgid "You are poked/prodded/etc. in a post"
 msgstr ""
 
-#: mod/settings.php:1246
+#: mod/settings.php:1239
 msgid "Activate desktop notifications"
 msgstr ""
 
-#: mod/settings.php:1246
+#: mod/settings.php:1239
 msgid "Show desktop popup on new notifications"
 msgstr ""
 
-#: mod/settings.php:1248
+#: mod/settings.php:1241
 msgid "Text-only notification emails"
 msgstr ""
 
-#: mod/settings.php:1250
+#: mod/settings.php:1243
 msgid "Send text only notification emails, without the html part"
 msgstr ""
 
-#: mod/settings.php:1252
+#: mod/settings.php:1245
 msgid "Show detailled notifications"
 msgstr ""
 
-#: mod/settings.php:1254
+#: mod/settings.php:1247
 msgid ""
 "Per default, notifications are condensed to a single notification per item. "
 "When enabled every notification is displayed."
 msgstr ""
 
-#: mod/settings.php:1256
+#: mod/settings.php:1249
 msgid "Advanced Account/Page Type Settings"
 msgstr ""
 
-#: mod/settings.php:1257
+#: mod/settings.php:1250
 msgid "Change the behaviour of this account for special situations"
 msgstr ""
 
-#: mod/settings.php:1260
+#: mod/settings.php:1253
+msgid "Import Contacts"
+msgstr ""
+
+#: mod/settings.php:1254
+msgid ""
+"Upload a CSV file that contains the handle of your followed accounts in the "
+"first column you exported from the old account."
+msgstr ""
+
+#: mod/settings.php:1255
+msgid "Upload File"
+msgstr ""
+
+#: mod/settings.php:1257
 msgid "Relocate"
 msgstr ""
 
-#: mod/settings.php:1261
+#: mod/settings.php:1258
 msgid ""
 "If you have moved this profile from another server, and some of your "
 "contacts don't receive your updates, try pushing this button."
 msgstr ""
 
-#: mod/settings.php:1262
+#: mod/settings.php:1259
 msgid "Resend relocate message to contacts"
 msgstr ""
 
-#: view/theme/duepuntozero/config.php:55 src/Model/User.php:745
+#: mod/subthread.php:107
+#, php-format
+msgid "%1$s is following %2$s's %3$s"
+msgstr ""
+
+#: mod/tagrm.php:31
+msgid "Tag(s) removed"
+msgstr ""
+
+#: mod/tagrm.php:101
+msgid "Remove Item Tag"
+msgstr ""
+
+#: mod/tagrm.php:103
+msgid "Select a tag to remove: "
+msgstr ""
+
+#: mod/tagrm.php:114 src/Module/Settings/Delegation.php:167
+msgid "Remove"
+msgstr ""
+
+#: mod/uimport.php:30
+msgid "User imports on closed servers can only be done by an administrator."
+msgstr ""
+
+#: mod/uimport.php:39 src/Module/Register.php:60
+msgid ""
+"This site has exceeded the number of allowed daily account registrations. "
+"Please try again tomorrow."
+msgstr ""
+
+#: mod/uimport.php:46 src/Module/Register.php:135
+msgid "Import"
+msgstr ""
+
+#: mod/uimport.php:48
+msgid "Move account"
+msgstr ""
+
+#: mod/uimport.php:49
+msgid "You can import an account from another Friendica server."
+msgstr ""
+
+#: mod/uimport.php:50
+msgid ""
+"You need to export your account from the old server and upload it here. We "
+"will recreate your old account here with all your contacts. We will try also "
+"to inform your friends that you moved here."
+msgstr ""
+
+#: mod/uimport.php:51
+msgid ""
+"This feature is experimental. We can't import contacts from the OStatus "
+"network (GNU Social/Statusnet) or from Diaspora"
+msgstr ""
+
+#: mod/uimport.php:52
+msgid "Account file"
+msgstr ""
+
+#: mod/uimport.php:52
+msgid ""
+"To export your account, go to \"Settings->Export your personal data\" and "
+"select \"Export account\""
+msgstr ""
+
+#: mod/unfollow.php:36 mod/unfollow.php:92
+msgid "You aren't following this contact."
+msgstr ""
+
+#: mod/unfollow.php:46 mod/unfollow.php:98
+msgid "Unfollowing is currently not supported by your network."
+msgstr ""
+
+#: mod/unfollow.php:67
+msgid "Contact unfollowed"
+msgstr ""
+
+#: mod/unfollow.php:118
+msgid "Disconnect/Unfollow"
+msgstr ""
+
+#: mod/videos.php:120
+msgid "No videos selected"
+msgstr ""
+
+#: mod/videos.php:238 src/Model/Item.php:3514
+msgid "View Video"
+msgstr ""
+
+#: mod/videos.php:253
+msgid "Recent Videos"
+msgstr ""
+
+#: mod/videos.php:255
+msgid "Upload New Videos"
+msgstr ""
+
+#: mod/wall_attach.php:27 mod/wall_attach.php:34 mod/wall_attach.php:72
+#: mod/wall_upload.php:43 mod/wall_upload.php:59 mod/wall_upload.php:104
+#: mod/wall_upload.php:155 mod/wall_upload.php:158
+msgid "Invalid request."
+msgstr ""
+
+#: mod/wall_attach.php:90
+msgid "Sorry, maybe your upload is bigger than the PHP configuration allows"
+msgstr ""
+
+#: mod/wall_attach.php:90
+msgid "Or - did you try to upload an empty file?"
+msgstr ""
+
+#: mod/wall_attach.php:101
+#, php-format
+msgid "File exceeds size limit of %s"
+msgstr ""
+
+#: mod/wall_attach.php:116
+msgid "File upload failed."
+msgstr ""
+
+#: mod/wall_upload.php:231
+msgid "Wall Photos"
+msgstr ""
+
+#: mod/wallmessage.php:52 mod/wallmessage.php:115
+#, php-format
+msgid "Number of daily wall messages for %s exceeded. Message failed."
+msgstr ""
+
+#: mod/wallmessage.php:63
+msgid "Unable to check your home location."
+msgstr ""
+
+#: mod/wallmessage.php:89 mod/wallmessage.php:98
+msgid "No recipient."
+msgstr ""
+
+#: mod/wallmessage.php:129
+#, php-format
+msgid ""
+"If you wish for %s to respond, please check that the privacy settings on "
+"your site allow private mail from unknown senders."
+msgstr ""
+
+#: view/theme/duepuntozero/config.php:55 src/Model/User.php:790
 msgid "default"
 msgstr ""
 
@@ -4250,12 +4156,84 @@ msgid ""
 "Resize image to repeat it on a single row, either vertical or horizontal."
 msgstr ""
 
-#: view/theme/frio/php/Image.php:27
-msgid "Mosaic"
+#: view/theme/frio/php/Image.php:27
+msgid "Mosaic"
+msgstr ""
+
+#: view/theme/frio/php/Image.php:27
+msgid "Repeat image to fill the screen."
+msgstr ""
+
+#: view/theme/frio/theme.php:246
+msgid "Guest"
+msgstr ""
+
+#: view/theme/frio/theme.php:251
+msgid "Visitor"
+msgstr ""
+
+#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
+#: src/Model/Profile.php:913 src/Module/Settings/TwoFactor/Index.php:91
+#: src/Module/Contact.php:637 src/Module/Contact.php:852
+msgid "Status"
+msgstr ""
+
+#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
+#: src/Content/Nav.php:244
+msgid "Your posts and conversations"
+msgstr ""
+
+#: view/theme/frio/theme.php:268 src/Content/Nav.php:161
+msgid "Your profile page"
+msgstr ""
+
+#: view/theme/frio/theme.php:269 src/Content/Nav.php:162
+msgid "Your photos"
+msgstr ""
+
+#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
+#: src/Model/Profile.php:937 src/Model/Profile.php:940
+msgid "Videos"
+msgstr ""
+
+#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
+msgid "Your videos"
+msgstr ""
+
+#: view/theme/frio/theme.php:271 src/Content/Nav.php:164
+msgid "Your events"
+msgstr ""
+
+#: view/theme/frio/theme.php:274 src/Content/Nav.php:241
+msgid "Network"
+msgstr ""
+
+#: view/theme/frio/theme.php:274 src/Content/Nav.php:241
+msgid "Conversations from your friends"
+msgstr ""
+
+#: view/theme/frio/theme.php:275 src/Content/Nav.php:228
+#: src/Model/Profile.php:952 src/Model/Profile.php:963
+msgid "Events and Calendar"
+msgstr ""
+
+#: view/theme/frio/theme.php:276 src/Content/Nav.php:254
+msgid "Private mail"
+msgstr ""
+
+#: view/theme/frio/theme.php:277 src/Content/Nav.php:263
+msgid "Account settings"
+msgstr ""
+
+#: view/theme/frio/theme.php:278 src/Content/Text/HTML.php:922
+#: src/Content/Nav.php:205 src/Content/Nav.php:269 src/Model/Profile.php:992
+#: src/Model/Profile.php:995 src/Module/Contact.php:795
+#: src/Module/Contact.php:880
+msgid "Contacts"
 msgstr ""
 
-#: view/theme/frio/php/Image.php:27
-msgid "Repeat image to fill the screen."
+#: view/theme/frio/theme.php:278 src/Content/Nav.php:269
+msgid "Manage/edit friends and contacts"
 msgstr ""
 
 #: view/theme/frio/config.php:111
@@ -4334,79 +4312,6 @@ msgstr ""
 msgid "Leave background image and color empty for theme defaults"
 msgstr ""
 
-#: view/theme/frio/theme.php:246
-msgid "Guest"
-msgstr ""
-
-#: view/theme/frio/theme.php:251
-msgid "Visitor"
-msgstr ""
-
-#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
-#: src/Model/Profile.php:917 src/Module/Settings/TwoFactor/Index.php:91
-#: src/Module/Contact.php:616 src/Module/Contact.php:831
-msgid "Status"
-msgstr ""
-
-#: view/theme/frio/theme.php:267 src/Content/Nav.php:160
-#: src/Content/Nav.php:244
-msgid "Your posts and conversations"
-msgstr ""
-
-#: view/theme/frio/theme.php:268 src/Content/Nav.php:161
-msgid "Your profile page"
-msgstr ""
-
-#: view/theme/frio/theme.php:269 src/Content/Nav.php:162
-msgid "Your photos"
-msgstr ""
-
-#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
-#: src/Model/Profile.php:941 src/Model/Profile.php:944
-msgid "Videos"
-msgstr ""
-
-#: view/theme/frio/theme.php:270 src/Content/Nav.php:163
-msgid "Your videos"
-msgstr ""
-
-#: view/theme/frio/theme.php:271 src/Content/Nav.php:164
-msgid "Your events"
-msgstr ""
-
-#: view/theme/frio/theme.php:274 src/Core/NotificationsManager.php:151
-#: src/Content/Nav.php:241
-msgid "Network"
-msgstr ""
-
-#: view/theme/frio/theme.php:274 src/Content/Nav.php:241
-msgid "Conversations from your friends"
-msgstr ""
-
-#: view/theme/frio/theme.php:275 src/Content/Nav.php:228
-#: src/Model/Profile.php:956 src/Model/Profile.php:967
-msgid "Events and Calendar"
-msgstr ""
-
-#: view/theme/frio/theme.php:276 src/Content/Nav.php:254
-msgid "Private mail"
-msgstr ""
-
-#: view/theme/frio/theme.php:277 src/Content/Nav.php:265
-msgid "Account settings"
-msgstr ""
-
-#: view/theme/frio/theme.php:278 src/Content/Text/HTML.php:904
-#: src/Content/Nav.php:205 src/Content/Nav.php:271 src/Model/Profile.php:996
-#: src/Model/Profile.php:999 src/Module/Contact.php:774
-#: src/Module/Contact.php:859
-msgid "Contacts"
-msgstr ""
-
-#: view/theme/frio/theme.php:278 src/Content/Nav.php:271
-msgid "Manage/edit friends and contacts"
-msgstr ""
-
 #: view/theme/quattro/config.php:76
 msgid "Alignment"
 msgstr ""
@@ -4431,296 +4336,296 @@ msgstr ""
 msgid "Textareas font size"
 msgstr ""
 
-#: view/theme/vier/config.php:76
+#: view/theme/vier/config.php:78
 msgid "Comma separated list of helper forums"
 msgstr ""
 
-#: view/theme/vier/config.php:116 src/Core/ACL.php:302
+#: view/theme/vier/config.php:118 src/Core/ACL.php:303
 msgid "don't show"
 msgstr ""
 
-#: view/theme/vier/config.php:116 src/Core/ACL.php:301
+#: view/theme/vier/config.php:118 src/Core/ACL.php:302
 msgid "show"
 msgstr ""
 
-#: view/theme/vier/config.php:122
+#: view/theme/vier/config.php:124
 msgid "Set style"
 msgstr ""
 
-#: view/theme/vier/config.php:123
+#: view/theme/vier/config.php:125
 msgid "Community Pages"
 msgstr ""
 
-#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151
+#: view/theme/vier/config.php:126 view/theme/vier/theme.php:128
 msgid "Community Profiles"
 msgstr ""
 
-#: view/theme/vier/config.php:125
+#: view/theme/vier/config.php:127
 msgid "Help or @NewHere ?"
 msgstr ""
 
-#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373
+#: view/theme/vier/config.php:128 view/theme/vier/theme.php:350
 msgid "Connect Services"
 msgstr ""
 
-#: view/theme/vier/config.php:127
+#: view/theme/vier/config.php:129
 msgid "Find Friends"
 msgstr ""
 
-#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181
+#: view/theme/vier/config.php:130 view/theme/vier/theme.php:158
 msgid "Last users"
 msgstr ""
 
-#: view/theme/vier/theme.php:199 src/Content/Widget.php:64
+#: view/theme/vier/theme.php:176 src/Content/Widget.php:65
 msgid "Find People"
 msgstr ""
 
-#: view/theme/vier/theme.php:200 src/Content/Widget.php:65
+#: view/theme/vier/theme.php:177 src/Content/Widget.php:66
 msgid "Enter name or interest"
 msgstr ""
 
-#: view/theme/vier/theme.php:202 src/Content/Widget.php:67
+#: view/theme/vier/theme.php:179 src/Content/Widget.php:68
 msgid "Examples: Robert Morgenstein, Fishing"
 msgstr ""
 
-#: view/theme/vier/theme.php:203 src/Content/Widget.php:68
-#: src/Module/Directory.php:86 src/Module/Contact.php:795
+#: view/theme/vier/theme.php:180 src/Content/Widget.php:69
+#: src/Module/Contact.php:816 src/Module/Directory.php:84
 msgid "Find"
 msgstr ""
 
-#: view/theme/vier/theme.php:205 src/Content/Widget.php:70
+#: view/theme/vier/theme.php:182 src/Content/Widget.php:71
 msgid "Similar Interests"
 msgstr ""
 
-#: view/theme/vier/theme.php:206 src/Content/Widget.php:71
+#: view/theme/vier/theme.php:183 src/Content/Widget.php:72
 msgid "Random Profile"
 msgstr ""
 
-#: view/theme/vier/theme.php:207 src/Content/Widget.php:72
+#: view/theme/vier/theme.php:184 src/Content/Widget.php:73
 msgid "Invite Friends"
 msgstr ""
 
-#: view/theme/vier/theme.php:208 src/Content/Widget.php:73
-#: src/Module/Directory.php:78
+#: view/theme/vier/theme.php:185 src/Content/Widget.php:74
+#: src/Module/Directory.php:76
 msgid "Global Directory"
 msgstr ""
 
-#: view/theme/vier/theme.php:210 src/Content/Widget.php:75
+#: view/theme/vier/theme.php:187 src/Content/Widget.php:76
 msgid "Local Directory"
 msgstr ""
 
-#: view/theme/vier/theme.php:250 src/Content/Text/HTML.php:907
-#: src/Content/Nav.php:209 src/Content/ForumManager.php:130
+#: view/theme/vier/theme.php:227 src/Content/Text/HTML.php:926
+#: src/Content/ForumManager.php:130 src/Content/Nav.php:209
 msgid "Forums"
 msgstr ""
 
-#: view/theme/vier/theme.php:252 src/Content/ForumManager.php:132
+#: view/theme/vier/theme.php:229 src/Content/ForumManager.php:132
 msgid "External link to forum"
 msgstr ""
 
-#: view/theme/vier/theme.php:255 src/Content/Widget.php:407
-#: src/Content/Widget.php:507 src/Content/ForumManager.php:135
+#: view/theme/vier/theme.php:232 src/Content/ForumManager.php:135
+#: src/Content/Widget.php:405 src/Content/Widget.php:505
 msgid "show more"
 msgstr ""
 
-#: view/theme/vier/theme.php:288
+#: view/theme/vier/theme.php:265
 msgid "Quick Start"
 msgstr ""
 
-#: view/theme/vier/theme.php:294 src/Content/Nav.php:192 src/Module/Help.php:50
+#: view/theme/vier/theme.php:271 src/Content/Nav.php:192 src/Module/Help.php:50
 #: src/Module/Settings/TwoFactor/AppSpecific.php:99
-#: src/Module/Settings/TwoFactor/Index.php:90
 #: src/Module/Settings/TwoFactor/Recovery.php:77
+#: src/Module/Settings/TwoFactor/Index.php:90
 #: src/Module/Settings/TwoFactor/Verify.php:117
 msgid "Help"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:370 src/Model/Event.php:397
+#: src/Core/L10n/L10n.php:404 src/Model/Event.php:398
 msgid "Tuesday"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:370 src/Model/Event.php:398
+#: src/Core/L10n/L10n.php:404 src/Model/Event.php:399
 msgid "Wednesday"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:370 src/Model/Event.php:399
+#: src/Core/L10n/L10n.php:404 src/Model/Event.php:400
 msgid "Thursday"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:370 src/Model/Event.php:400
+#: src/Core/L10n/L10n.php:404 src/Model/Event.php:401
 msgid "Friday"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:370 src/Model/Event.php:401
+#: src/Core/L10n/L10n.php:404 src/Model/Event.php:402
 msgid "Saturday"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:416
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:417
 msgid "January"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:417
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:418
 msgid "February"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:418
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:419
 msgid "March"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:419
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:420
 msgid "April"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Core/L10n/L10n.php:394
-#: src/Model/Event.php:407
+#: src/Core/L10n/L10n.php:408 src/Core/L10n/L10n.php:428
+#: src/Model/Event.php:408
 msgid "May"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:420
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:421
 msgid "June"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:421
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:422
 msgid "July"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:422
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:423
 msgid "August"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:423
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:424
 msgid "September"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:424
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:425
 msgid "October"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:425
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:426
 msgid "November"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:374 src/Model/Event.php:426
+#: src/Core/L10n/L10n.php:408 src/Model/Event.php:427
 msgid "December"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:388
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:389
 msgid "Mon"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:389
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:390
 msgid "Tue"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:390
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:391
 msgid "Wed"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:391
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:392
 msgid "Thu"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:392
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:393
 msgid "Fri"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:393
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:394
 msgid "Sat"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:390 src/Model/Event.php:387
+#: src/Core/L10n/L10n.php:424 src/Model/Event.php:388
 msgid "Sun"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:403
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:404
 msgid "Jan"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:404
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:405
 msgid "Feb"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:405
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:406
 msgid "Mar"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:406
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:407
 msgid "Apr"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:408
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:409
 msgid "Jun"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:409
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:410
 msgid "Jul"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:410
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:411
 msgid "Aug"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394
+#: src/Core/L10n/L10n.php:428
 msgid "Sep"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:412
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:413
 msgid "Oct"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:413
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:414
 msgid "Nov"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:394 src/Model/Event.php:414
+#: src/Core/L10n/L10n.php:428 src/Model/Event.php:415
 msgid "Dec"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:413
+#: src/Core/L10n/L10n.php:447
 msgid "poke"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:413
+#: src/Core/L10n/L10n.php:447
 msgid "poked"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:414
+#: src/Core/L10n/L10n.php:448
 msgid "ping"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:414
+#: src/Core/L10n/L10n.php:448
 msgid "pinged"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:415
+#: src/Core/L10n/L10n.php:449
 msgid "prod"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:415
+#: src/Core/L10n/L10n.php:449
 msgid "prodded"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:416
+#: src/Core/L10n/L10n.php:450
 msgid "slap"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:416
+#: src/Core/L10n/L10n.php:450
 msgid "slapped"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:417
+#: src/Core/L10n/L10n.php:451
 msgid "finger"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:417
+#: src/Core/L10n/L10n.php:451
 msgid "fingered"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:418
+#: src/Core/L10n/L10n.php:452
 msgid "rebuff"
 msgstr ""
 
-#: src/Core/L10n/L10n.php:418
+#: src/Core/L10n/L10n.php:452
 msgid "rebuffed"
 msgstr ""
 
@@ -4791,6 +4696,31 @@ msgstr[1] ""
 msgid "Done. You can now login with your username and password"
 msgstr ""
 
+#: src/Core/ACL.php:289 src/Module/Item/Compose.php:143
+msgid "Post to Email"
+msgstr ""
+
+#: src/Core/ACL.php:301
+msgid "Visible to everybody"
+msgstr ""
+
+#: src/Core/ACL.php:312
+msgid "Connectors"
+msgstr ""
+
+#: src/Core/ACL.php:314
+msgid "Hide your profile details from unknown viewers?"
+msgstr ""
+
+#: src/Core/ACL.php:314
+#, php-format
+msgid "Connectors disabled, since \"%s\" is enabled."
+msgstr ""
+
+#: src/Core/ACL.php:316
+msgid "Close"
+msgstr ""
+
 #: src/Core/Installer.php:162
 msgid ""
 "The database configuration file \"config/local.config.php\" could not be "
@@ -5050,8 +4980,8 @@ msgstr ""
 msgid "ImageMagick PHP extension is installed"
 msgstr ""
 
-#: src/Core/Installer.php:582 tests/src/Core/InstallerTest.php:372
-#: tests/src/Core/InstallerTest.php:400
+#: src/Core/Installer.php:582 tests/src/Core/InstallerTest.php:366
+#: tests/src/Core/InstallerTest.php:389
 msgid "ImageMagick supports GIF"
 msgstr ""
 
@@ -5063,265 +4993,153 @@ msgstr ""
 msgid "Could not connect to database."
 msgstr ""
 
-#: src/Core/NotificationsManager.php:144
-msgid "System"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:165 src/Content/Nav.php:182
-#: src/Content/Nav.php:244
-msgid "Home"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:172 src/Content/Nav.php:248
-msgid "Introductions"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246
-#, php-format
-msgid "%s commented on %s's post"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:245
-#, php-format
-msgid "%s created a new post"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:259
-#, php-format
-msgid "%s liked %s's post"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:272
-#, php-format
-msgid "%s disliked %s's post"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:285
-#, php-format
-msgid "%s is attending %s's event"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:298
-#, php-format
-msgid "%s is not attending %s's event"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:311
-#, php-format
-msgid "%s may attend %s's event"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:344
-#, php-format
-msgid "%s is now friends with %s"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:629
-msgid "Friend Suggestion"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:663
-msgid "Friend/Connect Request"
-msgstr ""
-
-#: src/Core/NotificationsManager.php:663
-msgid "New Follower"
-msgstr ""
-
-#: src/Core/Session.php:186
+#: src/Core/Session.php:199
 #, php-format
 msgid "Welcome %s"
 msgstr ""
 
-#: src/Core/Session.php:187
+#: src/Core/Session.php:200
 msgid "Please upload a profile photo."
 msgstr ""
 
-#: src/Core/Session.php:190
+#: src/Core/Session.php:203
 #, php-format
 msgid "Welcome back %s"
 msgstr ""
 
-#: src/Core/ACL.php:288 src/Module/Item/Compose.php:139
-msgid "Post to Email"
-msgstr ""
-
-#: src/Core/ACL.php:300
-msgid "Visible to everybody"
-msgstr ""
-
-#: src/Core/ACL.php:311
-msgid "Connectors"
-msgstr ""
-
-#: src/Core/ACL.php:313
-msgid "Hide your profile details from unknown viewers?"
-msgstr ""
-
-#: src/Core/ACL.php:313
-#, php-format
-msgid "Connectors disabled, since \"%s\" is enabled."
-msgstr ""
-
-#: src/Core/ACL.php:315
-msgid "Close"
-msgstr ""
-
-#: src/Util/Temporal.php:147 src/Model/Profile.php:784
+#: src/Util/Temporal.php:146 src/Model/Profile.php:780
 msgid "Birthday:"
 msgstr ""
 
-#: src/Util/Temporal.php:151
+#: src/Util/Temporal.php:150
 msgid "YYYY-MM-DD or MM-DD"
 msgstr ""
 
-#: src/Util/Temporal.php:298
+#: src/Util/Temporal.php:297
 msgid "never"
 msgstr ""
 
-#: src/Util/Temporal.php:305
+#: src/Util/Temporal.php:304
 msgid "less than a second ago"
 msgstr ""
 
-#: src/Util/Temporal.php:313
+#: src/Util/Temporal.php:312
 msgid "year"
 msgstr ""
 
-#: src/Util/Temporal.php:313
+#: src/Util/Temporal.php:312
 msgid "years"
 msgstr ""
 
-#: src/Util/Temporal.php:314
+#: src/Util/Temporal.php:313
 msgid "months"
 msgstr ""
 
-#: src/Util/Temporal.php:315
+#: src/Util/Temporal.php:314
 msgid "weeks"
 msgstr ""
 
-#: src/Util/Temporal.php:316
+#: src/Util/Temporal.php:315
 msgid "days"
 msgstr ""
 
-#: src/Util/Temporal.php:317
+#: src/Util/Temporal.php:316
 msgid "hour"
 msgstr ""
 
-#: src/Util/Temporal.php:317
+#: src/Util/Temporal.php:316
 msgid "hours"
 msgstr ""
 
-#: src/Util/Temporal.php:318
+#: src/Util/Temporal.php:317
 msgid "minute"
 msgstr ""
 
-#: src/Util/Temporal.php:318
+#: src/Util/Temporal.php:317
 msgid "minutes"
 msgstr ""
 
-#: src/Util/Temporal.php:319
+#: src/Util/Temporal.php:318
 msgid "second"
 msgstr ""
 
-#: src/Util/Temporal.php:319
+#: src/Util/Temporal.php:318
 msgid "seconds"
 msgstr ""
 
-#: src/Util/Temporal.php:329
+#: src/Util/Temporal.php:328
 #, php-format
 msgid "in %1$d %2$s"
 msgstr ""
 
-#: src/Util/Temporal.php:332
+#: src/Util/Temporal.php:331
 #, php-format
 msgid "%1$d %2$s ago"
 msgstr ""
 
-#: src/Content/Text/HTML.php:793
-msgid "Loading more entries..."
-msgstr ""
-
-#: src/Content/Text/HTML.php:794
-msgid "The end"
-msgstr ""
-
-#: src/Content/Text/HTML.php:887 src/Model/Profile.php:544
-#: src/Module/Contact.php:297
-msgid "Follow"
-msgstr ""
-
-#: src/Content/Text/HTML.php:896 src/Content/Nav.php:79
-msgid "@name, !forum, #tags, content"
-msgstr ""
-
-#: src/Content/Text/HTML.php:902 src/Content/Nav.php:203
-msgid "Full Text"
-msgstr ""
-
-#: src/Content/Text/HTML.php:903 src/Content/Widget/TagCloud.php:54
-#: src/Content/Nav.php:204
-msgid "Tags"
-msgstr ""
-
-#: src/Content/Text/HTML.php:944 src/Content/Text/BBCode.php:1478
-msgid "Click to open/close"
-msgstr ""
-
-#: src/Content/Text/BBCode.php:465
+#: src/Content/Text/BBCode.php:467
 msgid "view full size"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:899 src/Content/Text/BBCode.php:1560
-#: src/Content/Text/BBCode.php:1561
+#: src/Content/Text/BBCode.php:913 src/Content/Text/BBCode.php:1579
+#: src/Content/Text/BBCode.php:1580
 msgid "Image/photo"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1017
+#: src/Content/Text/BBCode.php:1031
 #, php-format
 msgid "<a href=\"%1$s\" target=\"_blank\">%2$s</a> %3$s"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1509
+#: src/Content/Text/BBCode.php:1497 src/Content/Text/HTML.php:963
+msgid "Click to open/close"
+msgstr ""
+
+#: src/Content/Text/BBCode.php:1528
 msgid "$1 wrote:"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1563 src/Content/Text/BBCode.php:1564
+#: src/Content/Text/BBCode.php:1582 src/Content/Text/BBCode.php:1583
 msgid "Encrypted content"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1788
+#: src/Content/Text/BBCode.php:1805
 msgid "Invalid source protocol"
 msgstr ""
 
-#: src/Content/Text/BBCode.php:1803
+#: src/Content/Text/BBCode.php:1820
 msgid "Invalid link protocol"
 msgstr ""
 
-#: src/Content/Widget/CalendarExport.php:64
-msgid "Export"
+#: src/Content/Text/HTML.php:811
+msgid "Loading more entries..."
 msgstr ""
 
-#: src/Content/Widget/CalendarExport.php:65
-msgid "Export calendar as ical"
+#: src/Content/Text/HTML.php:812
+msgid "The end"
 msgstr ""
 
-#: src/Content/Widget/CalendarExport.php:66
-msgid "Export calendar as csv"
+#: src/Content/Text/HTML.php:905 src/Model/Profile.php:540
+#: src/Module/Contact.php:318
+msgid "Follow"
 msgstr ""
 
-#: src/Content/Widget/ContactBlock.php:58
-msgid "No contacts"
+#: src/Content/Text/HTML.php:911 src/Content/Nav.php:200
+#: src/Module/Search/Index.php:80
+msgid "Search"
 msgstr ""
 
-#: src/Content/Widget/ContactBlock.php:90
-#, php-format
-msgid "%d Contact"
-msgid_plural "%d Contacts"
-msgstr[0] ""
-msgstr[1] ""
+#: src/Content/Text/HTML.php:913 src/Content/Nav.php:79
+msgid "@name, !forum, #tags, content"
+msgstr ""
 
-#: src/Content/Widget/ContactBlock.php:109
-msgid "View Contacts"
+#: src/Content/Text/HTML.php:920 src/Content/Nav.php:203
+msgid "Full Text"
+msgstr ""
+
+#: src/Content/Text/HTML.php:921 src/Content/Widget/TagCloud.php:54
+#: src/Content/Nav.php:204
+msgid "Tags"
 msgstr ""
 
 #: src/Content/Widget/TrendingTags.php:34
@@ -5335,20 +5153,39 @@ msgstr[1] ""
 msgid "More Trending Tags"
 msgstr ""
 
-#: src/Content/Pager.php:153
-msgid "newer"
+#: src/Content/Widget/CalendarExport.php:64
+msgid "Export"
+msgstr ""
+
+#: src/Content/Widget/CalendarExport.php:65
+msgid "Export calendar as ical"
+msgstr ""
+
+#: src/Content/Widget/CalendarExport.php:66
+msgid "Export calendar as csv"
+msgstr ""
+
+#: src/Content/Widget/ContactBlock.php:58
+msgid "No contacts"
 msgstr ""
 
-#: src/Content/Pager.php:158
-msgid "older"
+#: src/Content/Widget/ContactBlock.php:90
+#, php-format
+msgid "%d Contact"
+msgid_plural "%d Contacts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Content/Widget/ContactBlock.php:109
+msgid "View Contacts"
 msgstr ""
 
-#: src/Content/Pager.php:203
-msgid "prev"
+#: src/Content/Widget/SavedSearches.php:29
+msgid "Remove term"
 msgstr ""
 
-#: src/Content/Pager.php:263
-msgid "last"
+#: src/Content/Widget/SavedSearches.php:37
+msgid "Saved Searches"
 msgstr ""
 
 #: src/Content/Feature.php:82
@@ -5418,7 +5255,7 @@ msgstr ""
 msgid "Network Sidebar"
 msgstr ""
 
-#: src/Content/Feature.php:100 src/Content/Widget.php:501
+#: src/Content/Feature.php:100 src/Content/Widget.php:499
 msgid "Archives"
 msgstr ""
 
@@ -5494,156 +5331,6 @@ msgstr ""
 msgid "Display membership date in profile"
 msgstr ""
 
-#: src/Content/Nav.php:74
-msgid "Nothing new here"
-msgstr ""
-
-#: src/Content/Nav.php:78
-msgid "Clear notifications"
-msgstr ""
-
-#: src/Content/Nav.php:153 src/Module/Login.php:315
-msgid "Logout"
-msgstr ""
-
-#: src/Content/Nav.php:153
-msgid "End this session"
-msgstr ""
-
-#: src/Content/Nav.php:155 src/Module/Login.php:316
-#: src/Module/Bookmarklet.php:25
-msgid "Login"
-msgstr ""
-
-#: src/Content/Nav.php:155
-msgid "Sign in"
-msgstr ""
-
-#: src/Content/Nav.php:165
-msgid "Personal notes"
-msgstr ""
-
-#: src/Content/Nav.php:165
-msgid "Your personal notes"
-msgstr ""
-
-#: src/Content/Nav.php:182
-msgid "Home Page"
-msgstr ""
-
-#: src/Content/Nav.php:186 src/Module/Login.php:287 src/Module/Register.php:136
-msgid "Register"
-msgstr ""
-
-#: src/Content/Nav.php:186
-msgid "Create an account"
-msgstr ""
-
-#: src/Content/Nav.php:192
-msgid "Help and documentation"
-msgstr ""
-
-#: src/Content/Nav.php:196
-msgid "Apps"
-msgstr ""
-
-#: src/Content/Nav.php:196
-msgid "Addon applications, utilities, games"
-msgstr ""
-
-#: src/Content/Nav.php:200
-msgid "Search site content"
-msgstr ""
-
-#: src/Content/Nav.php:224
-msgid "Community"
-msgstr ""
-
-#: src/Content/Nav.php:224
-msgid "Conversations on this and other servers"
-msgstr ""
-
-#: src/Content/Nav.php:231
-msgid "Directory"
-msgstr ""
-
-#: src/Content/Nav.php:231
-msgid "People directory"
-msgstr ""
-
-#: src/Content/Nav.php:233 src/Module/BaseAdminModule.php:75
-msgid "Information"
-msgstr ""
-
-#: src/Content/Nav.php:233
-msgid "Information about this friendica instance"
-msgstr ""
-
-#: src/Content/Nav.php:236 src/Module/Tos.php:73 src/Module/Admin/Tos.php:43
-#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144
-msgid "Terms of Service"
-msgstr ""
-
-#: src/Content/Nav.php:236
-msgid "Terms of Service of this Friendica instance"
-msgstr ""
-
-#: src/Content/Nav.php:242
-msgid "Network Reset"
-msgstr ""
-
-#: src/Content/Nav.php:242
-msgid "Load Network page with no filters"
-msgstr ""
-
-#: src/Content/Nav.php:248
-msgid "Friend Requests"
-msgstr ""
-
-#: src/Content/Nav.php:250
-msgid "See all notifications"
-msgstr ""
-
-#: src/Content/Nav.php:251
-msgid "Mark all system notifications seen"
-msgstr ""
-
-#: src/Content/Nav.php:255
-msgid "Inbox"
-msgstr ""
-
-#: src/Content/Nav.php:256
-msgid "Outbox"
-msgstr ""
-
-#: src/Content/Nav.php:260
-msgid "Manage"
-msgstr ""
-
-#: src/Content/Nav.php:260
-msgid "Manage other pages"
-msgstr ""
-
-#: src/Content/Nav.php:268
-msgid "Manage/Edit Profiles"
-msgstr ""
-
-#: src/Content/Nav.php:276 src/Module/BaseAdminModule.php:114
-msgid "Admin"
-msgstr ""
-
-#: src/Content/Nav.php:276
-msgid "Site setup and configuration"
-msgstr ""
-
-#: src/Content/Nav.php:279
-msgid "Navigation"
-msgstr ""
-
-#: src/Content/Nav.php:279
-msgid "Site map"
-msgstr ""
-
 #: src/Content/OEmbed.php:254
 msgid "Embedding disabled"
 msgstr ""
@@ -5652,71 +5339,6 @@ msgstr ""
 msgid "Embedded content"
 msgstr ""
 
-#: src/Content/Widget.php:38
-msgid "Add New Contact"
-msgstr ""
-
-#: src/Content/Widget.php:39
-msgid "Enter address or web location"
-msgstr ""
-
-#: src/Content/Widget.php:40
-msgid "Example: bob@example.com, http://example.com/barbara"
-msgstr ""
-
-#: src/Content/Widget.php:58
-#, php-format
-msgid "%d invitation available"
-msgid_plural "%d invitations available"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Content/Widget.php:193 src/Module/Profile/Contacts.php:127
-#: src/Module/Contact.php:772
-msgid "Following"
-msgstr ""
-
-#: src/Content/Widget.php:194 src/Module/Profile/Contacts.php:128
-#: src/Module/Contact.php:773
-msgid "Mutual friends"
-msgstr ""
-
-#: src/Content/Widget.php:199
-msgid "Relationships"
-msgstr ""
-
-#: src/Content/Widget.php:201 src/Module/Group.php:287
-#: src/Module/Contact.php:660
-msgid "All Contacts"
-msgstr ""
-
-#: src/Content/Widget.php:244
-msgid "Protocols"
-msgstr ""
-
-#: src/Content/Widget.php:246
-msgid "All Protocols"
-msgstr ""
-
-#: src/Content/Widget.php:279
-msgid "Saved Folders"
-msgstr ""
-
-#: src/Content/Widget.php:281 src/Content/Widget.php:320
-msgid "Everything"
-msgstr ""
-
-#: src/Content/Widget.php:318
-msgid "Categories"
-msgstr ""
-
-#: src/Content/Widget.php:402
-#, php-format
-msgid "%d contact in common"
-msgid_plural "%d contacts in common"
-msgstr[0] ""
-msgstr[1] ""
-
 #: src/Content/ContactSelector.php:58
 msgid "Frequently"
 msgstr ""
@@ -5944,7 +5566,7 @@ msgstr ""
 msgid "Sex Addict"
 msgstr ""
 
-#: src/Content/ContactSelector.php:316 src/Model/User.php:762
+#: src/Content/ContactSelector.php:316 src/Model/User.php:807
 msgid "Friends"
 msgstr ""
 
@@ -6032,419 +5654,462 @@ msgstr ""
 msgid "Ask me"
 msgstr ""
 
-#: src/Database/DBStructure.php:50
-msgid "There are no tables on MyISAM."
+#: src/Content/Nav.php:74
+msgid "Nothing new here"
 msgstr ""
 
-#: src/Database/DBStructure.php:74
-#, php-format
-msgid ""
-"\n"
-"Error %d occurred during database update:\n"
-"%s\n"
+#: src/Content/Nav.php:78
+msgid "Clear notifications"
 msgstr ""
 
-#: src/Database/DBStructure.php:77
-msgid "Errors encountered performing database changes: "
+#: src/Content/Nav.php:153 src/Module/Login.php:352
+msgid "Logout"
 msgstr ""
 
-#: src/Database/DBStructure.php:266
-#, php-format
-msgid "%s: Database update"
+#: src/Content/Nav.php:153
+msgid "End this session"
 msgstr ""
 
-#: src/Database/DBStructure.php:527
-#, php-format
-msgid "%s: updating %s table."
+#: src/Content/Nav.php:155 src/Module/Bookmarklet.php:25
+#: src/Module/Login.php:353
+msgid "Login"
 msgstr ""
 
-#: src/Model/Storage/Filesystem.php:63
-#, php-format
-msgid ""
-"Filesystem storage failed to create \"%s\". Check you write permissions."
+#: src/Content/Nav.php:155
+msgid "Sign in"
 msgstr ""
 
-#: src/Model/Storage/Filesystem.php:105
-#, php-format
-msgid ""
-"Filesystem storage failed to save data to \"%s\". Check your write "
-"permissions"
+#: src/Content/Nav.php:165
+msgid "Personal notes"
 msgstr ""
 
-#: src/Model/Storage/Filesystem.php:126
-msgid "Storage base path"
+#: src/Content/Nav.php:165
+msgid "Your personal notes"
 msgstr ""
 
-#: src/Model/Storage/Filesystem.php:128
-msgid ""
-"Folder where uploaded files are saved. For maximum security, This should be "
-"a path outside web server folder tree"
+#: src/Content/Nav.php:182 src/Content/Nav.php:244
+msgid "Home"
+msgstr ""
+
+#: src/Content/Nav.php:182
+msgid "Home Page"
+msgstr ""
+
+#: src/Content/Nav.php:186 src/Module/Login.php:313 src/Module/Register.php:130
+msgid "Register"
 msgstr ""
 
-#: src/Model/Storage/Filesystem.php:138
-msgid "Enter a valid existing folder"
+#: src/Content/Nav.php:186
+msgid "Create an account"
 msgstr ""
 
-#: src/Model/Storage/Database.php:36
-#, php-format
-msgid "Database storage failed to update %s"
+#: src/Content/Nav.php:192
+msgid "Help and documentation"
 msgstr ""
 
-#: src/Model/Storage/Database.php:43
-msgid "Database storage failed to insert data"
+#: src/Content/Nav.php:196
+msgid "Apps"
 msgstr ""
 
-#: src/Model/Event.php:34 src/Model/Event.php:847
-#: src/Module/Debug/Localtime.php:17
-msgid "l F d, Y \\@ g:i A"
+#: src/Content/Nav.php:196
+msgid "Addon applications, utilities, games"
 msgstr ""
 
-#: src/Model/Event.php:61 src/Model/Event.php:78 src/Model/Event.php:435
-#: src/Model/Event.php:915
-msgid "Starts:"
+#: src/Content/Nav.php:200
+msgid "Search site content"
 msgstr ""
 
-#: src/Model/Event.php:64 src/Model/Event.php:84 src/Model/Event.php:436
-#: src/Model/Event.php:919
-msgid "Finishes:"
+#: src/Content/Nav.php:224
+msgid "Community"
 msgstr ""
 
-#: src/Model/Event.php:385
-msgid "all-day"
+#: src/Content/Nav.php:224
+msgid "Conversations on this and other servers"
 msgstr ""
 
-#: src/Model/Event.php:411
-msgid "Sept"
+#: src/Content/Nav.php:231
+msgid "Directory"
 msgstr ""
 
-#: src/Model/Event.php:433
-msgid "No events to display"
+#: src/Content/Nav.php:231
+msgid "People directory"
 msgstr ""
 
-#: src/Model/Event.php:561
-msgid "l, F j"
+#: src/Content/Nav.php:233 src/Module/BaseAdminModule.php:75
+msgid "Information"
 msgstr ""
 
-#: src/Model/Event.php:592
-msgid "Edit event"
+#: src/Content/Nav.php:233
+msgid "Information about this friendica instance"
 msgstr ""
 
-#: src/Model/Event.php:593
-msgid "Duplicate event"
+#: src/Content/Nav.php:236 src/Module/Admin/Tos.php:43
+#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:138
+#: src/Module/Tos.php:73
+msgid "Terms of Service"
 msgstr ""
 
-#: src/Model/Event.php:594
-msgid "Delete event"
+#: src/Content/Nav.php:236
+msgid "Terms of Service of this Friendica instance"
 msgstr ""
 
-#: src/Model/Event.php:626 src/Model/Item.php:3547 src/Model/Item.php:3554
-msgid "link to source"
+#: src/Content/Nav.php:242
+msgid "Network Reset"
 msgstr ""
 
-#: src/Model/Event.php:848
-msgid "D g:i A"
+#: src/Content/Nav.php:242
+msgid "Load Network page with no filters"
 msgstr ""
 
-#: src/Model/Event.php:849
-msgid "g:i A"
+#: src/Content/Nav.php:248
+msgid "Introductions"
 msgstr ""
 
-#: src/Model/Event.php:934 src/Model/Event.php:936
-msgid "Show map"
+#: src/Content/Nav.php:248
+msgid "Friend Requests"
 msgstr ""
 
-#: src/Model/Event.php:935
-msgid "Hide map"
+#: src/Content/Nav.php:250
+msgid "See all notifications"
 msgstr ""
 
-#: src/Model/Event.php:1027
-#, php-format
-msgid "%s's birthday"
+#: src/Content/Nav.php:251
+msgid "Mark all system notifications seen"
 msgstr ""
 
-#: src/Model/Event.php:1028
-#, php-format
-msgid "Happy Birthday %s"
+#: src/Content/Nav.php:255
+msgid "Inbox"
 msgstr ""
 
-#: src/Model/FileTag.php:265
-msgid "Item filed"
+#: src/Content/Nav.php:256
+msgid "Outbox"
 msgstr ""
 
-#: src/Model/User.php:331
-msgid "Login failed"
+#: src/Content/Nav.php:260
+msgid "Delegation"
 msgstr ""
 
-#: src/Model/User.php:362
-msgid "Not enough information to authenticate"
+#: src/Content/Nav.php:260
+msgid "Manage other pages"
 msgstr ""
 
-#: src/Model/User.php:440
-msgid "Password can't be empty"
+#: src/Content/Nav.php:266
+msgid "Manage/Edit Profiles"
 msgstr ""
 
-#: src/Model/User.php:459
-msgid "Empty passwords are not allowed."
+#: src/Content/Nav.php:274 src/Module/BaseAdminModule.php:114
+msgid "Admin"
 msgstr ""
 
-#: src/Model/User.php:463
-msgid ""
-"The new password has been exposed in a public data dump, please choose "
-"another."
+#: src/Content/Nav.php:274
+msgid "Site setup and configuration"
 msgstr ""
 
-#: src/Model/User.php:469
-msgid ""
-"The password can't contain accentuated letters, white spaces or colons (:)"
+#: src/Content/Nav.php:277
+msgid "Navigation"
 msgstr ""
 
-#: src/Model/User.php:569
-msgid "Passwords do not match. Password unchanged."
+#: src/Content/Nav.php:277
+msgid "Site map"
 msgstr ""
 
-#: src/Model/User.php:576
-msgid "An invitation is required."
+#: src/Content/Pager.php:153
+msgid "newer"
 msgstr ""
 
-#: src/Model/User.php:580
-msgid "Invitation could not be verified."
+#: src/Content/Pager.php:158
+msgid "older"
 msgstr ""
 
-#: src/Model/User.php:587
-msgid "Invalid OpenID url"
+#: src/Content/Pager.php:203
+msgid "prev"
 msgstr ""
 
-#: src/Model/User.php:600 src/Module/Login.php:102
-msgid ""
-"We encountered a problem while logging in with the OpenID you provided. "
-"Please check the correct spelling of the ID."
+#: src/Content/Pager.php:263
+msgid "last"
 msgstr ""
 
-#: src/Model/User.php:600 src/Module/Login.php:102
-msgid "The error message was:"
+#: src/Content/Widget.php:39
+msgid "Add New Contact"
 msgstr ""
 
-#: src/Model/User.php:606
-msgid "Please enter the required information."
+#: src/Content/Widget.php:40
+msgid "Enter address or web location"
 msgstr ""
 
-#: src/Model/User.php:620
-#, php-format
-msgid ""
-"system.username_min_length (%s) and system.username_max_length (%s) are "
-"excluding each other, swapping values."
+#: src/Content/Widget.php:41
+msgid "Example: bob@example.com, http://example.com/barbara"
 msgstr ""
 
-#: src/Model/User.php:627
+#: src/Content/Widget.php:59
 #, php-format
-msgid "Username should be at least %s character."
-msgid_plural "Username should be at least %s characters."
+msgid "%d invitation available"
+msgid_plural "%d invitations available"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/Model/User.php:631
-#, php-format
-msgid "Username should be at most %s character."
-msgid_plural "Username should be at most %s characters."
-msgstr[0] ""
-msgstr[1] ""
+#: src/Content/Widget.php:194 src/Module/Profile/Contacts.php:127
+#: src/Module/Contact.php:793
+msgid "Following"
+msgstr ""
 
-#: src/Model/User.php:639
-msgid "That doesn't appear to be your full (First Last) name."
+#: src/Content/Widget.php:195 src/Module/Profile/Contacts.php:128
+#: src/Module/Contact.php:794
+msgid "Mutual friends"
 msgstr ""
 
-#: src/Model/User.php:644
-msgid "Your email domain is not among those allowed on this site."
+#: src/Content/Widget.php:200
+msgid "Relationships"
 msgstr ""
 
-#: src/Model/User.php:648
-msgid "Not a valid email address."
+#: src/Content/Widget.php:202 src/Module/Group.php:287
+#: src/Module/Contact.php:681
+msgid "All Contacts"
 msgstr ""
 
-#: src/Model/User.php:651
-msgid "The nickname was blocked from registration by the nodes admin."
+#: src/Content/Widget.php:245
+msgid "Protocols"
 msgstr ""
 
-#: src/Model/User.php:655 src/Model/User.php:663
-msgid "Cannot use that email."
+#: src/Content/Widget.php:247
+msgid "All Protocols"
 msgstr ""
 
-#: src/Model/User.php:670
-msgid "Your nickname can only contain a-z, 0-9 and _."
+#: src/Content/Widget.php:284
+msgid "Saved Folders"
 msgstr ""
 
-#: src/Model/User.php:677 src/Model/User.php:734
-msgid "Nickname is already registered. Please choose another."
+#: src/Content/Widget.php:286 src/Content/Widget.php:325
+msgid "Everything"
 msgstr ""
 
-#: src/Model/User.php:687
-msgid "SERIOUS ERROR: Generation of security keys failed."
+#: src/Content/Widget.php:323
+msgid "Categories"
 msgstr ""
 
-#: src/Model/User.php:721 src/Model/User.php:725
-msgid "An error occurred during registration. Please try again."
+#: src/Content/Widget.php:400
+#, php-format
+msgid "%d contact in common"
+msgid_plural "%d contacts in common"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Database/DBStructure.php:50
+msgid "There are no tables on MyISAM."
 msgstr ""
 
-#: src/Model/User.php:750
-msgid "An error occurred creating your default profile. Please try again."
+#: src/Database/DBStructure.php:74
+#, php-format
+msgid ""
+"\n"
+"Error %d occurred during database update:\n"
+"%s\n"
 msgstr ""
 
-#: src/Model/User.php:757
-msgid "An error occurred creating your self contact. Please try again."
+#: src/Database/DBStructure.php:77
+msgid "Errors encountered performing database changes: "
 msgstr ""
 
-#: src/Model/User.php:766
-msgid ""
-"An error occurred creating your default contact group. Please try again."
+#: src/Database/DBStructure.php:266
+#, php-format
+msgid "%s: Database update"
 msgstr ""
 
-#: src/Model/User.php:842
+#: src/Database/DBStructure.php:527
 #, php-format
-msgid ""
-"\n"
-"\t\t\tDear %1$s,\n"
-"\t\t\t\tThank you for registering at %2$s. Your account is pending for "
-"approval by the administrator.\n"
-"\n"
-"\t\t\tYour login details are as follows:\n"
-"\n"
-"\t\t\tSite Location:\t%3$s\n"
-"\t\t\tLogin Name:\t\t%4$s\n"
-"\t\t\tPassword:\t\t%5$s\n"
-"\t\t"
+msgid "%s: updating %s table."
 msgstr ""
 
-#: src/Model/User.php:859
+#: src/Model/Storage/Database.php:36
 #, php-format
-msgid "Registration at %s"
+msgid "Database storage failed to update %s"
+msgstr ""
+
+#: src/Model/Storage/Database.php:43
+msgid "Database storage failed to insert data"
 msgstr ""
 
-#: src/Model/User.php:878
+#: src/Model/Storage/Filesystem.php:63
 #, php-format
 msgid ""
-"\n"
-"\t\t\tDear %1$s,\n"
-"\t\t\t\tThank you for registering at %2$s. Your account has been created.\n"
-"\t\t"
+"Filesystem storage failed to create \"%s\". Check you write permissions."
 msgstr ""
 
-#: src/Model/User.php:884
+#: src/Model/Storage/Filesystem.php:105
 #, php-format
 msgid ""
-"\n"
-"\t\t\tThe login details are as follows:\n"
-"\n"
-"\t\t\tSite Location:\t%3$s\n"
-"\t\t\tLogin Name:\t\t%1$s\n"
-"\t\t\tPassword:\t\t%5$s\n"
-"\n"
-"\t\t\tYou may change your password from your account \"Settings\" page after "
-"logging\n"
-"\t\t\tin.\n"
-"\n"
-"\t\t\tPlease take a few moments to review the other account settings on that "
-"page.\n"
-"\n"
-"\t\t\tYou may also wish to add some basic information to your default "
-"profile\n"
-"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
-"\n"
-"\t\t\tWe recommend setting your full name, adding a profile photo,\n"
-"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - "
-"and\n"
-"\t\t\tperhaps what country you live in; if you do not wish to be more "
-"specific\n"
-"\t\t\tthan that.\n"
-"\n"
-"\t\t\tWe fully respect your right to privacy, and none of these items are "
-"necessary.\n"
-"\t\t\tIf you are new and do not know anybody here, they may help\n"
-"\t\t\tyou to make some new and interesting friends.\n"
-"\n"
-"\t\t\tIf you ever want to delete your account, you can do so at %3$s/"
-"removeme\n"
-"\n"
-"\t\t\tThank you and welcome to %2$s."
+"Filesystem storage failed to save data to \"%s\". Check your write "
+"permissions"
 msgstr ""
 
-#: src/Model/User.php:919 src/Module/Admin/Users.php:88
-#, php-format
-msgid "Registration details for %s"
+#: src/Model/Storage/Filesystem.php:126
+msgid "Storage base path"
+msgstr ""
+
+#: src/Model/Storage/Filesystem.php:128
+msgid ""
+"Folder where uploaded files are saved. For maximum security, This should be "
+"a path outside web server folder tree"
+msgstr ""
+
+#: src/Model/Storage/Filesystem.php:138
+msgid "Enter a valid existing folder"
+msgstr ""
+
+#: src/Model/FileTag.php:265
+msgid "Item filed"
+msgstr ""
+
+#: src/Model/Contact.php:1251 src/Model/Contact.php:1264
+msgid "UnFollow"
 msgstr ""
 
-#: src/Model/Contact.php:1230
+#: src/Model/Contact.php:1260
 msgid "Drop Contact"
 msgstr ""
 
-#: src/Model/Contact.php:1783
+#: src/Model/Contact.php:1814
 msgid "Organisation"
 msgstr ""
 
-#: src/Model/Contact.php:1787
+#: src/Model/Contact.php:1818
 msgid "News"
 msgstr ""
 
-#: src/Model/Contact.php:1791
+#: src/Model/Contact.php:1822
 msgid "Forum"
 msgstr ""
 
-#: src/Model/Contact.php:2192
+#: src/Model/Contact.php:2222
 msgid "Connect URL missing."
 msgstr ""
 
-#: src/Model/Contact.php:2201
+#: src/Model/Contact.php:2231
 msgid ""
 "The contact could not be added. Please check the relevant network "
 "credentials in your Settings -> Social Networks page."
 msgstr ""
 
-#: src/Model/Contact.php:2242
+#: src/Model/Contact.php:2272
 msgid ""
 "This site is not configured to allow communications with other networks."
 msgstr ""
 
-#: src/Model/Contact.php:2243 src/Model/Contact.php:2256
+#: src/Model/Contact.php:2273 src/Model/Contact.php:2286
 msgid "No compatible communication protocols or feeds were discovered."
 msgstr ""
 
-#: src/Model/Contact.php:2254
+#: src/Model/Contact.php:2284
 msgid "The profile address specified does not provide adequate information."
 msgstr ""
 
-#: src/Model/Contact.php:2259
+#: src/Model/Contact.php:2289
 msgid "An author or name was not found."
 msgstr ""
 
-#: src/Model/Contact.php:2262
+#: src/Model/Contact.php:2292
 msgid "No browser URL could be matched to this address."
 msgstr ""
 
-#: src/Model/Contact.php:2265
+#: src/Model/Contact.php:2295
 msgid ""
 "Unable to match @-style Identity Address with a known protocol or email "
 "contact."
 msgstr ""
 
-#: src/Model/Contact.php:2266
+#: src/Model/Contact.php:2296
 msgid "Use mailto: in front of address to force email check."
 msgstr ""
 
-#: src/Model/Contact.php:2272
+#: src/Model/Contact.php:2302
 msgid ""
 "The profile address specified belongs to a network which has been disabled "
 "on this site."
 msgstr ""
 
-#: src/Model/Contact.php:2277
+#: src/Model/Contact.php:2307
 msgid ""
 "Limited profile. This person will be unable to receive direct/personal "
 "notifications from you."
 msgstr ""
 
-#: src/Model/Contact.php:2332
+#: src/Model/Contact.php:2368
 msgid "Unable to retrieve contact information."
 msgstr ""
 
+#: src/Model/Event.php:35 src/Model/Event.php:848
+#: src/Module/Debug/Localtime.php:17
+msgid "l F d, Y \\@ g:i A"
+msgstr ""
+
+#: src/Model/Event.php:62 src/Model/Event.php:79 src/Model/Event.php:436
+#: src/Model/Event.php:916
+msgid "Starts:"
+msgstr ""
+
+#: src/Model/Event.php:65 src/Model/Event.php:85 src/Model/Event.php:437
+#: src/Model/Event.php:920
+msgid "Finishes:"
+msgstr ""
+
+#: src/Model/Event.php:386
+msgid "all-day"
+msgstr ""
+
+#: src/Model/Event.php:412
+msgid "Sept"
+msgstr ""
+
+#: src/Model/Event.php:434
+msgid "No events to display"
+msgstr ""
+
+#: src/Model/Event.php:562
+msgid "l, F j"
+msgstr ""
+
+#: src/Model/Event.php:593
+msgid "Edit event"
+msgstr ""
+
+#: src/Model/Event.php:594
+msgid "Duplicate event"
+msgstr ""
+
+#: src/Model/Event.php:595
+msgid "Delete event"
+msgstr ""
+
+#: src/Model/Event.php:627 src/Model/Item.php:3584 src/Model/Item.php:3591
+msgid "link to source"
+msgstr ""
+
+#: src/Model/Event.php:849
+msgid "D g:i A"
+msgstr ""
+
+#: src/Model/Event.php:850
+msgid "g:i A"
+msgstr ""
+
+#: src/Model/Event.php:935 src/Model/Event.php:937
+msgid "Show map"
+msgstr ""
+
+#: src/Model/Event.php:936
+msgid "Hide map"
+msgstr ""
+
+#: src/Model/Event.php:1028
+#, php-format
+msgid "%s's birthday"
+msgstr ""
+
+#: src/Model/Event.php:1029
+#, php-format
+msgid "Happy Birthday %s"
+msgstr ""
+
 #: src/Model/Group.php:77
 msgid ""
 "A deleted group with this name was revived. Existing item permissions "
@@ -6464,7 +6129,11 @@ msgstr ""
 msgid "edit"
 msgstr ""
 
-#: src/Model/Group.php:484 src/Module/Welcome.php:57 src/Module/Contact.php:708
+#: src/Model/Group.php:483
+msgid "add"
+msgstr ""
+
+#: src/Model/Group.php:484 src/Module/Welcome.php:57 src/Module/Contact.php:729
 msgid "Groups"
 msgstr ""
 
@@ -6489,266 +6158,481 @@ msgstr ""
 msgid "Edit groups"
 msgstr ""
 
-#: src/Model/Mail.php:113 src/Model/Mail.php:250
+#: src/Model/Item.php:3326
+msgid "activity"
+msgstr ""
+
+#: src/Model/Item.php:3328 src/Object/Post.php:474
+msgid "comment"
+msgid_plural "comments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Model/Item.php:3331
+msgid "post"
+msgstr ""
+
+#: src/Model/Item.php:3454
+#, php-format
+msgid "Content warning: %s"
+msgstr ""
+
+#: src/Model/Item.php:3531
+msgid "bytes"
+msgstr ""
+
+#: src/Model/Item.php:3578
+msgid "View on separate page"
+msgstr ""
+
+#: src/Model/Item.php:3579
+msgid "view on separate page"
+msgstr ""
+
+#: src/Model/Mail.php:114 src/Model/Mail.php:251
 msgid "[no subject]"
 msgstr ""
 
-#: src/Model/Profile.php:212 src/Model/Profile.php:428
-#: src/Model/Profile.php:885
+#: src/Model/Notify.php:275 src/Model/Notify.php:287
+#, php-format
+msgid "%s commented on %s's post"
+msgstr ""
+
+#: src/Model/Notify.php:286
+#, php-format
+msgid "%s created a new post"
+msgstr ""
+
+#: src/Model/Notify.php:300
+#, php-format
+msgid "%s liked %s's post"
+msgstr ""
+
+#: src/Model/Notify.php:313
+#, php-format
+msgid "%s disliked %s's post"
+msgstr ""
+
+#: src/Model/Notify.php:326
+#, php-format
+msgid "%s is attending %s's event"
+msgstr ""
+
+#: src/Model/Notify.php:339
+#, php-format
+msgid "%s is not attending %s's event"
+msgstr ""
+
+#: src/Model/Notify.php:352
+#, php-format
+msgid "%s may attend %s's event"
+msgstr ""
+
+#: src/Model/Notify.php:385
+#, php-format
+msgid "%s is now friends with %s"
+msgstr ""
+
+#: src/Model/Notify.php:678
+msgid "Friend Suggestion"
+msgstr ""
+
+#: src/Model/Notify.php:712
+msgid "Friend/Connect Request"
+msgstr ""
+
+#: src/Model/Notify.php:712
+msgid "New Follower"
+msgstr ""
+
+#: src/Model/Profile.php:213 src/Model/Profile.php:424
+#: src/Model/Profile.php:881
 msgid "Edit profile"
 msgstr ""
 
-#: src/Model/Profile.php:402
+#: src/Model/Profile.php:398
 msgid "Manage/edit profiles"
 msgstr ""
 
-#: src/Model/Profile.php:451 src/Model/Profile.php:795
-#: src/Module/Directory.php:143
+#: src/Model/Profile.php:447 src/Model/Profile.php:791
+#: src/Module/Directory.php:141
 msgid "Status:"
 msgstr ""
 
-#: src/Model/Profile.php:452 src/Model/Profile.php:812
-#: src/Module/Directory.php:144
+#: src/Model/Profile.php:448 src/Model/Profile.php:808
+#: src/Module/Directory.php:142
 msgid "Homepage:"
 msgstr ""
 
-#: src/Model/Profile.php:454 src/Module/Contact.php:609
+#: src/Model/Profile.php:450 src/Module/Contact.php:630
 msgid "XMPP:"
 msgstr ""
 
-#: src/Model/Profile.php:546 src/Module/Contact.php:299
+#: src/Model/Profile.php:542 src/Module/Contact.php:320
 msgid "Unfollow"
 msgstr ""
 
-#: src/Model/Profile.php:548
+#: src/Model/Profile.php:544
 msgid "Atom feed"
 msgstr ""
 
-#: src/Model/Profile.php:588 src/Model/Profile.php:685
+#: src/Model/Profile.php:584 src/Model/Profile.php:681
 msgid "g A l F d"
 msgstr ""
 
-#: src/Model/Profile.php:589
+#: src/Model/Profile.php:585
 msgid "F d"
 msgstr ""
 
-#: src/Model/Profile.php:651 src/Model/Profile.php:736
+#: src/Model/Profile.php:647 src/Model/Profile.php:732
 msgid "[today]"
 msgstr ""
 
-#: src/Model/Profile.php:661
+#: src/Model/Profile.php:657
 msgid "Birthday Reminders"
 msgstr ""
 
-#: src/Model/Profile.php:662
+#: src/Model/Profile.php:658
 msgid "Birthdays this week:"
 msgstr ""
 
-#: src/Model/Profile.php:723
+#: src/Model/Profile.php:719
 msgid "[No description]"
 msgstr ""
 
-#: src/Model/Profile.php:749
+#: src/Model/Profile.php:745
 msgid "Event Reminders"
 msgstr ""
 
-#: src/Model/Profile.php:750
+#: src/Model/Profile.php:746
 msgid "Upcoming events the next 7 days:"
 msgstr ""
 
-#: src/Model/Profile.php:767
+#: src/Model/Profile.php:763
 msgid "Member since:"
 msgstr ""
 
-#: src/Model/Profile.php:775
+#: src/Model/Profile.php:771
 msgid "j F, Y"
 msgstr ""
 
-#: src/Model/Profile.php:776
+#: src/Model/Profile.php:772
 msgid "j F"
 msgstr ""
 
-#: src/Model/Profile.php:791
+#: src/Model/Profile.php:787
 msgid "Age:"
 msgstr ""
 
-#: src/Model/Profile.php:804
+#: src/Model/Profile.php:800
 #, php-format
 msgid "for %1$d %2$s"
 msgstr ""
 
-#: src/Model/Profile.php:828
+#: src/Model/Profile.php:824
 msgid "Religion:"
 msgstr ""
 
-#: src/Model/Profile.php:836
+#: src/Model/Profile.php:832
 msgid "Hobbies/Interests:"
 msgstr ""
 
-#: src/Model/Profile.php:848
+#: src/Model/Profile.php:844
 msgid "Contact information and Social Networks:"
 msgstr ""
 
-#: src/Model/Profile.php:852
+#: src/Model/Profile.php:848
 msgid "Musical interests:"
 msgstr ""
 
-#: src/Model/Profile.php:856
+#: src/Model/Profile.php:852
 msgid "Books, literature:"
 msgstr ""
 
-#: src/Model/Profile.php:860
+#: src/Model/Profile.php:856
 msgid "Television:"
 msgstr ""
 
-#: src/Model/Profile.php:864
+#: src/Model/Profile.php:860
 msgid "Film/dance/culture/entertainment:"
 msgstr ""
 
-#: src/Model/Profile.php:868
+#: src/Model/Profile.php:864
 msgid "Love/Romance:"
 msgstr ""
 
-#: src/Model/Profile.php:872
+#: src/Model/Profile.php:868
 msgid "Work/employment:"
 msgstr ""
 
-#: src/Model/Profile.php:876
+#: src/Model/Profile.php:872
 msgid "School/education:"
 msgstr ""
 
-#: src/Model/Profile.php:881
+#: src/Model/Profile.php:877
 msgid "Forums:"
 msgstr ""
 
-#: src/Model/Profile.php:928 src/Module/Contact.php:850
+#: src/Model/Profile.php:924 src/Module/Contact.php:871
 msgid "Profile Details"
 msgstr ""
 
-#: src/Model/Profile.php:978
+#: src/Model/Profile.php:974
 msgid "Only You Can See This"
 msgstr ""
 
-#: src/Model/Profile.php:986 src/Model/Profile.php:989
+#: src/Model/Profile.php:982 src/Model/Profile.php:985
 msgid "Tips for New Members"
 msgstr ""
 
-#: src/Model/Profile.php:1186
+#: src/Model/Profile.php:1180
+#, php-format
+msgid "OpenWebAuth: %1$s welcomes %2$s"
+msgstr ""
+
+#: src/Model/User.php:357
+msgid "Login failed"
+msgstr ""
+
+#: src/Model/User.php:389
+msgid "Not enough information to authenticate"
+msgstr ""
+
+#: src/Model/User.php:483
+msgid "Password can't be empty"
+msgstr ""
+
+#: src/Model/User.php:502
+msgid "Empty passwords are not allowed."
+msgstr ""
+
+#: src/Model/User.php:506
+msgid ""
+"The new password has been exposed in a public data dump, please choose "
+"another."
+msgstr ""
+
+#: src/Model/User.php:512
+msgid ""
+"The password can't contain accentuated letters, white spaces or colons (:)"
+msgstr ""
+
+#: src/Model/User.php:612
+msgid "Passwords do not match. Password unchanged."
+msgstr ""
+
+#: src/Model/User.php:619
+msgid "An invitation is required."
+msgstr ""
+
+#: src/Model/User.php:623
+msgid "Invitation could not be verified."
+msgstr ""
+
+#: src/Model/User.php:631
+msgid "Invalid OpenID url"
+msgstr ""
+
+#: src/Model/User.php:644 src/Module/Login.php:105
+msgid ""
+"We encountered a problem while logging in with the OpenID you provided. "
+"Please check the correct spelling of the ID."
+msgstr ""
+
+#: src/Model/User.php:644 src/Module/Login.php:105
+msgid "The error message was:"
+msgstr ""
+
+#: src/Model/User.php:650
+msgid "Please enter the required information."
+msgstr ""
+
+#: src/Model/User.php:664
+#, php-format
+msgid ""
+"system.username_min_length (%s) and system.username_max_length (%s) are "
+"excluding each other, swapping values."
+msgstr ""
+
+#: src/Model/User.php:671
+#, php-format
+msgid "Username should be at least %s character."
+msgid_plural "Username should be at least %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Model/User.php:675
+#, php-format
+msgid "Username should be at most %s character."
+msgid_plural "Username should be at most %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Model/User.php:683
+msgid "That doesn't appear to be your full (First Last) name."
+msgstr ""
+
+#: src/Model/User.php:688
+msgid "Your email domain is not among those allowed on this site."
+msgstr ""
+
+#: src/Model/User.php:692
+msgid "Not a valid email address."
+msgstr ""
+
+#: src/Model/User.php:695
+msgid "The nickname was blocked from registration by the nodes admin."
+msgstr ""
+
+#: src/Model/User.php:699 src/Model/User.php:707
+msgid "Cannot use that email."
+msgstr ""
+
+#: src/Model/User.php:714
+msgid "Your nickname can only contain a-z, 0-9 and _."
+msgstr ""
+
+#: src/Model/User.php:722 src/Model/User.php:779
+msgid "Nickname is already registered. Please choose another."
+msgstr ""
+
+#: src/Model/User.php:732
+msgid "SERIOUS ERROR: Generation of security keys failed."
+msgstr ""
+
+#: src/Model/User.php:766 src/Model/User.php:770
+msgid "An error occurred during registration. Please try again."
+msgstr ""
+
+#: src/Model/User.php:795
+msgid "An error occurred creating your default profile. Please try again."
+msgstr ""
+
+#: src/Model/User.php:802
+msgid "An error occurred creating your self contact. Please try again."
+msgstr ""
+
+#: src/Model/User.php:811
+msgid ""
+"An error occurred creating your default contact group. Please try again."
+msgstr ""
+
+#: src/Model/User.php:888
+#, php-format
+msgid ""
+"\n"
+"\t\t\tDear %1$s,\n"
+"\t\t\t\tThank you for registering at %2$s. Your account is pending for "
+"approval by the administrator.\n"
+"\n"
+"\t\t\tYour login details are as follows:\n"
+"\n"
+"\t\t\tSite Location:\t%3$s\n"
+"\t\t\tLogin Name:\t\t%4$s\n"
+"\t\t\tPassword:\t\t%5$s\n"
+"\t\t"
+msgstr ""
+
+#: src/Model/User.php:909
 #, php-format
-msgid "OpenWebAuth: %1$s welcomes %2$s"
-msgstr ""
-
-#: src/Model/Item.php:3313
-msgid "activity"
-msgstr ""
-
-#: src/Model/Item.php:3315 src/Object/Post.php:474
-msgid "comment"
-msgid_plural "comments"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Model/Item.php:3318
-msgid "post"
+msgid "Registration at %s"
 msgstr ""
 
-#: src/Model/Item.php:3417
+#: src/Model/User.php:929
 #, php-format
-msgid "Content warning: %s"
+msgid ""
+"\n"
+"\t\t\t\tDear %1$s,\n"
+"\t\t\t\tThank you for registering at %2$s. Your account has been created.\n"
+"\t\t\t"
 msgstr ""
 
-#: src/Model/Item.php:3494
-msgid "bytes"
+#: src/Model/User.php:937
+#, php-format
+msgid ""
+"\n"
+"\t\t\tThe login details are as follows:\n"
+"\n"
+"\t\t\tSite Location:\t%3$s\n"
+"\t\t\tLogin Name:\t\t%1$s\n"
+"\t\t\tPassword:\t\t%5$s\n"
+"\n"
+"\t\t\tYou may change your password from your account \"Settings\" page after "
+"logging\n"
+"\t\t\tin.\n"
+"\n"
+"\t\t\tPlease take a few moments to review the other account settings on that "
+"page.\n"
+"\n"
+"\t\t\tYou may also wish to add some basic information to your default "
+"profile\n"
+"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
+"\n"
+"\t\t\tWe recommend setting your full name, adding a profile photo,\n"
+"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - "
+"and\n"
+"\t\t\tperhaps what country you live in; if you do not wish to be more "
+"specific\n"
+"\t\t\tthan that.\n"
+"\n"
+"\t\t\tWe fully respect your right to privacy, and none of these items are "
+"necessary.\n"
+"\t\t\tIf you are new and do not know anybody here, they may help\n"
+"\t\t\tyou to make some new and interesting friends.\n"
+"\n"
+"\t\t\tIf you ever want to delete your account, you can do so at %3$s/"
+"removeme\n"
+"\n"
+"\t\t\tThank you and welcome to %2$s."
 msgstr ""
 
-#: src/Model/Item.php:3541
-msgid "View on separate page"
+#: src/Model/User.php:976 src/Module/Admin/Users.php:88
+#, php-format
+msgid "Registration details for %s"
 msgstr ""
 
-#: src/Model/Item.php:3542
-msgid "view on separate page"
+#: src/Protocol/Diaspora.php:3604
+msgid "Attachments:"
 msgstr ""
 
-#: src/Protocol/OStatus.php:1300 src/Module/Profile.php:119
-#: src/Module/Profile.php:122
+#: src/Protocol/OStatus.php:1302 src/Module/Profile.php:117
+#: src/Module/Profile.php:120
 #, php-format
 msgid "%s's timeline"
 msgstr ""
 
-#: src/Protocol/OStatus.php:1304 src/Module/Profile.php:120
+#: src/Protocol/OStatus.php:1306 src/Module/Profile.php:118
 #, php-format
 msgid "%s's posts"
 msgstr ""
 
-#: src/Protocol/OStatus.php:1307 src/Module/Profile.php:121
+#: src/Protocol/OStatus.php:1309 src/Module/Profile.php:119
 #, php-format
 msgid "%s's comments"
 msgstr ""
 
-#: src/Protocol/OStatus.php:1861
+#: src/Protocol/OStatus.php:1864
 #, php-format
 msgid "%s is now following %s."
 msgstr ""
 
-#: src/Protocol/OStatus.php:1862
+#: src/Protocol/OStatus.php:1865
 msgid "following"
 msgstr ""
 
-#: src/Protocol/OStatus.php:1865
+#: src/Protocol/OStatus.php:1868
 #, php-format
 msgid "%s stopped following %s."
 msgstr ""
 
-#: src/Protocol/OStatus.php:1866
+#: src/Protocol/OStatus.php:1869
 msgid "stopped following"
 msgstr ""
 
-#: src/Protocol/Diaspora.php:2527
-msgid "Sharing notification from Diaspora network"
-msgstr ""
-
-#: src/Protocol/Diaspora.php:3674
-msgid "Attachments:"
-msgstr ""
-
-#: src/Worker/Delivery.php:508
+#: src/Worker/Delivery.php:516
 msgid "(no subject)"
 msgstr ""
 
-#: src/Module/Tos.php:35 src/Module/Tos.php:77
-msgid ""
-"At the time of registration, and for providing communications between the "
-"user account and their contacts, the user has to provide a display name (pen "
-"name), an username (nickname) and a working email address. The names will be "
-"accessible on the profile page of the account by any visitor of the page, "
-"even if other profile details are not displayed. The email address will only "
-"be used to send the user notifications about interactions, but wont be "
-"visibly displayed. The listing of an account in the node's user directory or "
-"the global user directory is optional and can be controlled in the user "
-"settings, it is not necessary for communication."
-msgstr ""
-
-#: src/Module/Tos.php:36 src/Module/Tos.php:78
-msgid ""
-"This data is required for communication and is passed on to the nodes of the "
-"communication partners and is stored there. Users can enter additional "
-"private data that may be transmitted to the communication partners accounts."
-msgstr ""
-
-#: src/Module/Tos.php:37 src/Module/Tos.php:79
-#, php-format
-msgid ""
-"At any point in time a logged in user can export their account data from the "
-"<a href=\"%1$s/settings/uexport\">account settings</a>. If the user wants to "
-"delete their account they can do so at <a href=\"%1$s/removeme\">%1$s/"
-"removeme</a>. The deletion of the account will be permanent. Deletion of the "
-"data will also be requested from the nodes of the communication partners."
-msgstr ""
-
-#: src/Module/Tos.php:40 src/Module/Tos.php:76
-msgid "Privacy Statement"
-msgstr ""
-
 #: src/Module/Apps.php:29
 msgid "No installed applications."
 msgstr ""
@@ -6793,13 +6677,14 @@ msgid "Enable"
 msgstr ""
 
 #: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50
+#: src/Module/Admin/Blocklist/Server.php:73
 #: src/Module/Admin/Blocklist/Contact.php:61
-#: src/Module/Admin/Blocklist/Server.php:73 src/Module/Admin/Federation.php:187
-#: src/Module/Admin/Item/Delete.php:46 src/Module/Admin/Logs/Settings.php:63
-#: src/Module/Admin/Logs/View.php:46 src/Module/Admin/Themes/Details.php:104
-#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:42
-#: src/Module/Admin/Users.php:277 src/Module/Admin/Queue.php:56
-#: src/Module/Admin/Site.php:566 src/Module/Admin/Summary.php:173
+#: src/Module/Admin/Federation.php:187 src/Module/Admin/Item/Delete.php:46
+#: src/Module/Admin/Logs/View.php:46 src/Module/Admin/Logs/Settings.php:63
+#: src/Module/Admin/Themes/Details.php:104 src/Module/Admin/Themes/Index.php:95
+#: src/Module/Admin/Tos.php:42 src/Module/Admin/Queue.php:56
+#: src/Module/Admin/Site.php:566 src/Module/Admin/Summary.php:192
+#: src/Module/Admin/Users.php:277
 msgid "Administration"
 msgstr ""
 
@@ -6835,87 +6720,6 @@ msgid ""
 "the open addon registry at %2$s"
 msgstr ""
 
-#: src/Module/Admin/Blocklist/Contact.php:28
-#: src/Console/GlobalCommunityBlock.php:87
-msgid "The contact has been blocked from the node"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:30
-#: src/Console/GlobalCommunityBlock.php:82
-#, php-format
-msgid "Could not find any contact entry for this URL (%s)"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:38
-#, php-format
-msgid "%s contact unblocked"
-msgid_plural "%s contacts unblocked"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Module/Admin/Blocklist/Contact.php:62
-msgid "Remote Contact Blocklist"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:63
-msgid ""
-"This page allows you to prevent any message from a remote contact to reach "
-"your node."
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:64
-msgid "Block Remote Contact"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:65 src/Module/Admin/Users.php:280
-msgid "select all"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:66
-msgid "select none"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:68 src/Module/Admin/Users.php:291
-#: src/Module/Contact.php:585 src/Module/Contact.php:802
-#: src/Module/Contact.php:1061
-msgid "Unblock"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:69
-msgid "No remote contact is blocked from this node."
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:71
-msgid "Blocked Remote Contacts"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:72
-msgid "Block New Remote Contact"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:73
-msgid "Photo"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:73
-msgid "Reason"
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:81
-#, php-format
-msgid "%s total blocked contact"
-msgid_plural "%s total blocked contacts"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Module/Admin/Blocklist/Contact.php:83
-msgid "URL of the remote contact to block."
-msgstr ""
-
-#: src/Module/Admin/Blocklist/Contact.php:84
-msgid "Block Reason"
-msgstr ""
-
 #: src/Module/Admin/Blocklist/Server.php:31
 msgid "Server domain pattern added to blocklist."
 msgstr ""
@@ -6997,20 +6801,101 @@ msgstr ""
 msgid "Add Entry"
 msgstr ""
 
-#: src/Module/Admin/Blocklist/Server.php:87
-msgid "Save changes to the blocklist"
+#: src/Module/Admin/Blocklist/Server.php:87
+msgid "Save changes to the blocklist"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Server.php:88
+msgid "Current Entries in the Blocklist"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Server.php:91
+msgid "Delete entry from blocklist"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Server.php:94
+msgid "Delete entry from blocklist?"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:28
+#: src/Console/GlobalCommunityBlock.php:87
+msgid "The contact has been blocked from the node"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:30
+#: src/Console/GlobalCommunityBlock.php:82
+#, php-format
+msgid "Could not find any contact entry for this URL (%s)"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:38
+#, php-format
+msgid "%s contact unblocked"
+msgid_plural "%s contacts unblocked"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Module/Admin/Blocklist/Contact.php:62
+msgid "Remote Contact Blocklist"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:63
+msgid ""
+"This page allows you to prevent any message from a remote contact to reach "
+"your node."
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:64
+msgid "Block Remote Contact"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:65 src/Module/Admin/Users.php:280
+msgid "select all"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:66
+msgid "select none"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:68 src/Module/Admin/Users.php:291
+#: src/Module/Contact.php:606 src/Module/Contact.php:823
+#: src/Module/Contact.php:1082
+msgid "Unblock"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:69
+msgid "No remote contact is blocked from this node."
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:71
+msgid "Blocked Remote Contacts"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:72
+msgid "Block New Remote Contact"
+msgstr ""
+
+#: src/Module/Admin/Blocklist/Contact.php:73
+msgid "Photo"
 msgstr ""
 
-#: src/Module/Admin/Blocklist/Server.php:88
-msgid "Current Entries in the Blocklist"
+#: src/Module/Admin/Blocklist/Contact.php:73
+msgid "Reason"
 msgstr ""
 
-#: src/Module/Admin/Blocklist/Server.php:91
-msgid "Delete entry from blocklist"
+#: src/Module/Admin/Blocklist/Contact.php:81
+#, php-format
+msgid "%s total blocked contact"
+msgid_plural "%s total blocked contacts"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Module/Admin/Blocklist/Contact.php:83
+msgid "URL of the remote contact to block."
 msgstr ""
 
-#: src/Module/Admin/Blocklist/Server.php:94
-msgid "Delete entry from blocklist?"
+#: src/Module/Admin/Blocklist/Contact.php:84
+msgid "Block Reason"
 msgstr ""
 
 #: src/Module/Admin/DBSync.php:32
@@ -7146,8 +7031,25 @@ msgstr ""
 msgid "Item Guid"
 msgstr ""
 
-#: src/Module/Admin/Logs/Settings.php:27 src/Module/Admin/Summary.php:83
-#: src/Module/Admin/Summary.php:90
+#: src/Module/Admin/Logs/View.php:22
+#, php-format
+msgid ""
+"Error trying to open <strong>%1$s</strong> log file.\\r\\n<br/>Check to see "
+"if file %1$s exist and is readable."
+msgstr ""
+
+#: src/Module/Admin/Logs/View.php:26
+#, php-format
+msgid ""
+"Couldn't open <strong>%1$s</strong> log file.\\r\\n<br/>Check to see if file "
+"%1$s is readable."
+msgstr ""
+
+#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99
+msgid "View Logs"
+msgstr ""
+
+#: src/Module/Admin/Logs/Settings.php:27
 #, php-format
 msgid "The logfile '%s' is not writable. No logging possible"
 msgstr ""
@@ -7204,24 +7106,6 @@ msgid ""
 "'display_errors' is to enable these options, set to '0' to disable them."
 msgstr ""
 
-#: src/Module/Admin/Logs/View.php:22
-#, php-format
-msgid ""
-"Error trying to open <strong>%1$s</strong> log file.\\r\\n<br/>Check to see "
-"if file %1$s exist and is readable."
-msgstr ""
-
-#: src/Module/Admin/Logs/View.php:26
-#, php-format
-msgid ""
-"Couldn't open <strong>%1$s</strong> log file.\\r\\n<br/>Check to see if file "
-"%1$s is readable."
-msgstr ""
-
-#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99
-msgid "View Logs"
-msgstr ""
-
 #: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46
 msgid "Theme settings updated."
 msgstr ""
@@ -7245,261 +7129,69 @@ msgstr ""
 msgid "Screenshot"
 msgstr ""
 
-#: src/Module/Admin/Themes/Details.php:105 src/Module/Admin/Themes/Index.php:96
-#: src/Module/BaseAdminModule.php:83
-msgid "Themes"
-msgstr ""
-
-#: src/Module/Admin/Themes/Embed.php:67
-msgid "Unknown theme."
-msgstr ""
-
-#: src/Module/Admin/Themes/Index.php:98
-msgid "Reload active themes"
-msgstr ""
-
-#: src/Module/Admin/Themes/Index.php:103
-#, php-format
-msgid "No themes found on the system. They should be placed in %1$s"
-msgstr ""
-
-#: src/Module/Admin/Themes/Index.php:104
-msgid "[Experimental]"
-msgstr ""
-
-#: src/Module/Admin/Themes/Index.php:105
-msgid "[Unsupported]"
-msgstr ""
-
-#: src/Module/Admin/Tos.php:30
-msgid "The Terms of Service settings have been updated."
-msgstr ""
-
-#: src/Module/Admin/Tos.php:44
-msgid "Display Terms of Service"
-msgstr ""
-
-#: src/Module/Admin/Tos.php:44
-msgid ""
-"Enable the Terms of Service page. If this is enabled a link to the terms "
-"will be added to the registration form and the general information page."
-msgstr ""
-
-#: src/Module/Admin/Tos.php:45
-msgid "Display Privacy Statement"
-msgstr ""
-
-#: src/Module/Admin/Tos.php:45
-#, php-format
-msgid ""
-"Show some informations regarding the needed information to operate the node "
-"according e.g. to <a href=\"%s\" target=\"_blank\">EU-GDPR</a>."
-msgstr ""
-
-#: src/Module/Admin/Tos.php:46
-msgid "Privacy Statement Preview"
-msgstr ""
-
-#: src/Module/Admin/Tos.php:48
-msgid "The Terms of Service"
-msgstr ""
-
-#: src/Module/Admin/Tos.php:48
-msgid ""
-"Enter the Terms of Service for your node here. You can use BBCode. Headers "
-"of sections should be [h2] and below."
-msgstr ""
-
-#: src/Module/Admin/Users.php:48
-#, php-format
-msgid ""
-"\n"
-"\t\t\tDear %1$s,\n"
-"\t\t\t\tthe administrator of %2$s has set up an account for you."
-msgstr ""
-
-#: src/Module/Admin/Users.php:51
-#, php-format
-msgid ""
-"\n"
-"\t\t\tThe login details are as follows:\n"
-"\n"
-"\t\t\tSite Location:\t%1$s\n"
-"\t\t\tLogin Name:\t\t%2$s\n"
-"\t\t\tPassword:\t\t%3$s\n"
-"\n"
-"\t\t\tYou may change your password from your account \"Settings\" page after "
-"logging\n"
-"\t\t\tin.\n"
-"\n"
-"\t\t\tPlease take a few moments to review the other account settings on that "
-"page.\n"
-"\n"
-"\t\t\tYou may also wish to add some basic information to your default "
-"profile\n"
-"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
-"\n"
-"\t\t\tWe recommend setting your full name, adding a profile photo,\n"
-"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - "
-"and\n"
-"\t\t\tperhaps what country you live in; if you do not wish to be more "
-"specific\n"
-"\t\t\tthan that.\n"
-"\n"
-"\t\t\tWe fully respect your right to privacy, and none of these items are "
-"necessary.\n"
-"\t\t\tIf you are new and do not know anybody here, they may help\n"
-"\t\t\tyou to make some new and interesting friends.\n"
-"\n"
-"\t\t\tIf you ever want to delete your account, you can do so at %1$s/"
-"removeme\n"
-"\n"
-"\t\t\tThank you and welcome to %4$s."
-msgstr ""
-
-#: src/Module/Admin/Users.php:96
-#, php-format
-msgid "%s user blocked"
-msgid_plural "%s users blocked"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Module/Admin/Users.php:102
-#, php-format
-msgid "%s user unblocked"
-msgid_plural "%s users unblocked"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160
-msgid "You can't remove yourself"
-msgstr ""
-
-#: src/Module/Admin/Users.php:114
-#, php-format
-msgid "%s user deleted"
-msgid_plural "%s users deleted"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/Module/Admin/Users.php:158
-#, php-format
-msgid "User \"%s\" deleted"
-msgstr ""
-
-#: src/Module/Admin/Users.php:167
-#, php-format
-msgid "User \"%s\" blocked"
-msgstr ""
-
-#: src/Module/Admin/Users.php:173
-#, php-format
-msgid "User \"%s\" unblocked"
-msgstr ""
-
-#: src/Module/Admin/Users.php:226
-msgid "Private Forum"
-msgstr ""
-
-#: src/Module/Admin/Users.php:233
-msgid "Relay"
-msgstr ""
-
-#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
-msgid "Register date"
-msgstr ""
-
-#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
-msgid "Last login"
-msgstr ""
-
-#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
-msgid "Last item"
-msgstr ""
-
-#: src/Module/Admin/Users.php:272
-msgid "Type"
-msgstr ""
-
-#: src/Module/Admin/Users.php:278 src/Module/Admin/Users.php:295
-#: src/Module/Admin/Site.php:471 src/Module/BaseAdminModule.php:81
-msgid "Users"
-msgstr ""
-
-#: src/Module/Admin/Users.php:279
-msgid "Add User"
-msgstr ""
-
-#: src/Module/Admin/Users.php:281
-msgid "User registrations waiting for confirm"
-msgstr ""
-
-#: src/Module/Admin/Users.php:282
-msgid "User waiting for permanent deletion"
-msgstr ""
-
-#: src/Module/Admin/Users.php:283
-msgid "Request date"
-msgstr ""
-
-#: src/Module/Admin/Users.php:284
-msgid "No registrations."
+#: src/Module/Admin/Themes/Details.php:105 src/Module/Admin/Themes/Index.php:96
+#: src/Module/BaseAdminModule.php:83
+msgid "Themes"
 msgstr ""
 
-#: src/Module/Admin/Users.php:285
-msgid "Note from the user"
+#: src/Module/Admin/Themes/Embed.php:67
+msgid "Unknown theme."
 msgstr ""
 
-#: src/Module/Admin/Users.php:287
-msgid "Deny"
+#: src/Module/Admin/Themes/Index.php:98
+msgid "Reload active themes"
 msgstr ""
 
-#: src/Module/Admin/Users.php:290
-msgid "User blocked"
+#: src/Module/Admin/Themes/Index.php:103
+#, php-format
+msgid "No themes found on the system. They should be placed in %1$s"
 msgstr ""
 
-#: src/Module/Admin/Users.php:292
-msgid "Site admin"
+#: src/Module/Admin/Themes/Index.php:104
+msgid "[Experimental]"
 msgstr ""
 
-#: src/Module/Admin/Users.php:293
-msgid "Account expired"
+#: src/Module/Admin/Themes/Index.php:105
+msgid "[Unsupported]"
 msgstr ""
 
-#: src/Module/Admin/Users.php:296
-msgid "New User"
+#: src/Module/Admin/Tos.php:30
+msgid "The Terms of Service settings have been updated."
 msgstr ""
 
-#: src/Module/Admin/Users.php:297
-msgid "Permanent deletion"
+#: src/Module/Admin/Tos.php:44
+msgid "Display Terms of Service"
 msgstr ""
 
-#: src/Module/Admin/Users.php:302
+#: src/Module/Admin/Tos.php:44
 msgid ""
-"Selected users will be deleted!\\n\\nEverything these users had posted on "
-"this site will be permanently deleted!\\n\\nAre you sure?"
+"Enable the Terms of Service page. If this is enabled a link to the terms "
+"will be added to the registration form and the general information page."
 msgstr ""
 
-#: src/Module/Admin/Users.php:303
-msgid ""
-"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
-"site will be permanently deleted!\\n\\nAre you sure?"
+#: src/Module/Admin/Tos.php:45
+msgid "Display Privacy Statement"
 msgstr ""
 
-#: src/Module/Admin/Users.php:313
-msgid "Name of the new user."
+#: src/Module/Admin/Tos.php:45
+#, php-format
+msgid ""
+"Show some informations regarding the needed information to operate the node "
+"according e.g. to <a href=\"%s\" target=\"_blank\">EU-GDPR</a>."
 msgstr ""
 
-#: src/Module/Admin/Users.php:314
-msgid "Nickname"
+#: src/Module/Admin/Tos.php:46
+msgid "Privacy Statement Preview"
 msgstr ""
 
-#: src/Module/Admin/Users.php:314
-msgid "Nickname of the new user."
+#: src/Module/Admin/Tos.php:48
+msgid "The Terms of Service"
 msgstr ""
 
-#: src/Module/Admin/Users.php:315
-msgid "Email address of the new user."
+#: src/Module/Admin/Tos.php:48
+msgid ""
+"Enter the Terms of Service for your node here. You can use BBCode. Headers "
+"of sections should be [h2] and below."
 msgstr ""
 
 #: src/Module/Admin/Queue.php:34
@@ -7572,10 +7264,15 @@ msgstr ""
 
 #: src/Module/Admin/Site.php:470 src/Module/Admin/Site.php:665
 #: src/Module/Admin/Site.php:675 src/Module/Settings/TwoFactor/Index.php:97
-#: src/Module/Contact.php:525
+#: src/Module/Contact.php:546
 msgid "Disabled"
 msgstr ""
 
+#: src/Module/Admin/Site.php:471 src/Module/Admin/Users.php:278
+#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81
+msgid "Users"
+msgstr ""
+
 #: src/Module/Admin/Site.php:472
 msgid "Users, Global Contacts"
 msgstr ""
@@ -7652,7 +7349,7 @@ msgstr ""
 msgid "Republish users to directory"
 msgstr ""
 
-#: src/Module/Admin/Site.php:570 src/Module/Register.php:121
+#: src/Module/Admin/Site.php:570 src/Module/Register.php:115
 msgid "Registration"
 msgstr ""
 
@@ -8482,164 +8179,357 @@ msgstr ""
 msgid "Comma separated list of tags for the \"tags\" subscription."
 msgstr ""
 
-#: src/Module/Admin/Site.php:677
-msgid "Allow user tags"
-msgstr ""
+#: src/Module/Admin/Site.php:677
+msgid "Allow user tags"
+msgstr ""
+
+#: src/Module/Admin/Site.php:677
+msgid ""
+"If enabled, the tags from the saved searches will used for the \"tags\" "
+"subscription in addition to the \"relay_server_tags\"."
+msgstr ""
+
+#: src/Module/Admin/Site.php:680
+msgid "Start Relocation"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:32
+#, php-format
+msgid ""
+"Your DB still runs with MyISAM tables. You should change the engine type to "
+"InnoDB. As Friendica will use InnoDB only features in the future, you should "
+"change this! See <a href=\"%s\">here</a> for a guide that may be helpful "
+"converting the table engines. You may also use the command <tt>php bin/"
+"console.php dbstructure toinnodb</tt> of your Friendica installation for an "
+"automatic conversion.<br />"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:40
+#, php-format
+msgid ""
+"There is a new version of Friendica available for download. Your current "
+"version is %1$s, upstream version is %2$s"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:49
+msgid ""
+"The database update failed. Please run \"php bin/console.php dbstructure "
+"update\" from the command line and have a look at the errors that might "
+"appear."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:53
+msgid ""
+"The last update failed. Please run \"php bin/console.php dbstructure update"
+"\" from the command line and have a look at the errors that might appear. "
+"(Some of the errors are possibly inside the logfile.)"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:58
+msgid "The worker was never executed. Please check your database structure!"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:60
+#, php-format
+msgid ""
+"The last worker execution was on %s UTC. This is older than one hour. Please "
+"check your crontab settings."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:65
+#, php-format
+msgid ""
+"Friendica's configuration now is stored in config/local.config.php, please "
+"copy config/local-sample.config.php and move your config from <code>."
+"htconfig.php</code>. See <a href=\"%s\">the Config help page</a> for help "
+"with the transition."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:69
+#, php-format
+msgid ""
+"Friendica's configuration now is stored in config/local.config.php, please "
+"copy config/local-sample.config.php and move your config from <code>config/"
+"local.ini.php</code>. See <a href=\"%s\">the Config help page</a> for help "
+"with the transition."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:75
+#, php-format
+msgid ""
+"<a href=\"%s\">%s</a> is not reachable on your system. This is a severe "
+"configuration issue that prevents server to server communication. See <a "
+"href=\"%s\">the installation page</a> for help."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:94
+#, php-format
+msgid "The logfile '%s' is not usable. No logging possible (error: '%s')"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:109
+#, php-format
+msgid "The debug logfile '%s' is not usable. No logging possible (error: '%s')"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:125
+#, php-format
+msgid ""
+"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the "
+"system.basepath from your db to avoid differences."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:133
+#, php-format
+msgid ""
+"Friendica's current system.basepath '%s' is wrong and the config file '%s' "
+"isn't used."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:141
+#, php-format
+msgid ""
+"Friendica's current system.basepath '%s' is not equal to the config file "
+"'%s'. Please fix your configuration."
+msgstr ""
+
+#: src/Module/Admin/Summary.php:148
+msgid "Normal Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:149
+msgid "Automatic Follower Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:150
+msgid "Public Forum Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:151
+msgid "Automatic Friend Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:152
+msgid "Blog Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:153
+msgid "Private Forum Account"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:173
+msgid "Message queues"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:179
+msgid "Server Settings"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:193
+msgid "Summary"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:195
+msgid "Registered users"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:197
+msgid "Pending registrations"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:198
+msgid "Version"
+msgstr ""
+
+#: src/Module/Admin/Summary.php:202
+msgid "Active addons"
+msgstr ""
+
+#: src/Module/Admin/Users.php:48
+#, php-format
+msgid ""
+"\n"
+"\t\t\tDear %1$s,\n"
+"\t\t\t\tthe administrator of %2$s has set up an account for you."
+msgstr ""
+
+#: src/Module/Admin/Users.php:51
+#, php-format
+msgid ""
+"\n"
+"\t\t\tThe login details are as follows:\n"
+"\n"
+"\t\t\tSite Location:\t%1$s\n"
+"\t\t\tLogin Name:\t\t%2$s\n"
+"\t\t\tPassword:\t\t%3$s\n"
+"\n"
+"\t\t\tYou may change your password from your account \"Settings\" page after "
+"logging\n"
+"\t\t\tin.\n"
+"\n"
+"\t\t\tPlease take a few moments to review the other account settings on that "
+"page.\n"
+"\n"
+"\t\t\tYou may also wish to add some basic information to your default "
+"profile\n"
+"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n"
+"\n"
+"\t\t\tWe recommend setting your full name, adding a profile photo,\n"
+"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - "
+"and\n"
+"\t\t\tperhaps what country you live in; if you do not wish to be more "
+"specific\n"
+"\t\t\tthan that.\n"
+"\n"
+"\t\t\tWe fully respect your right to privacy, and none of these items are "
+"necessary.\n"
+"\t\t\tIf you are new and do not know anybody here, they may help\n"
+"\t\t\tyou to make some new and interesting friends.\n"
+"\n"
+"\t\t\tIf you ever want to delete your account, you can do so at %1$s/"
+"removeme\n"
+"\n"
+"\t\t\tThank you and welcome to %4$s."
+msgstr ""
+
+#: src/Module/Admin/Users.php:96
+#, php-format
+msgid "%s user blocked"
+msgid_plural "%s users blocked"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/Module/Admin/Site.php:677
-msgid ""
-"If enabled, the tags from the saved searches will used for the \"tags\" "
-"subscription in addition to the \"relay_server_tags\"."
+#: src/Module/Admin/Users.php:102
+#, php-format
+msgid "%s user unblocked"
+msgid_plural "%s users unblocked"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160
+msgid "You can't remove yourself"
 msgstr ""
 
-#: src/Module/Admin/Site.php:680
-msgid "Start Relocation"
+#: src/Module/Admin/Users.php:114
+#, php-format
+msgid "%s user deleted"
+msgid_plural "%s users deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/Module/Admin/Users.php:158
+#, php-format
+msgid "User \"%s\" deleted"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:30
+#: src/Module/Admin/Users.php:167
 #, php-format
-msgid ""
-"Your DB still runs with MyISAM tables. You should change the engine type to "
-"InnoDB. As Friendica will use InnoDB only features in the future, you should "
-"change this! See <a href=\"%s\">here</a> for a guide that may be helpful "
-"converting the table engines. You may also use the command <tt>php bin/"
-"console.php dbstructure toinnodb</tt> of your Friendica installation for an "
-"automatic conversion.<br />"
+msgid "User \"%s\" blocked"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:38
+#: src/Module/Admin/Users.php:173
 #, php-format
-msgid ""
-"There is a new version of Friendica available for download. Your current "
-"version is %1$s, upstream version is %2$s"
+msgid "User \"%s\" unblocked"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:47
-msgid ""
-"The database update failed. Please run \"php bin/console.php dbstructure "
-"update\" from the command line and have a look at the errors that might "
-"appear."
+#: src/Module/Admin/Users.php:226
+msgid "Private Forum"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:51
-msgid ""
-"The last update failed. Please run \"php bin/console.php dbstructure update"
-"\" from the command line and have a look at the errors that might appear. "
-"(Some of the errors are possibly inside the logfile.)"
+#: src/Module/Admin/Users.php:233
+msgid "Relay"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:56
-msgid "The worker was never executed. Please check your database structure!"
+#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
+msgid "Register date"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:58
-#, php-format
-msgid ""
-"The last worker execution was on %s UTC. This is older than one hour. Please "
-"check your crontab settings."
+#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
+msgid "Last login"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:63
-#, php-format
-msgid ""
-"Friendica's configuration now is stored in config/local.config.php, please "
-"copy config/local-sample.config.php and move your config from <code>."
-"htconfig.php</code>. See <a href=\"%s\">the Config help page</a> for help "
-"with the transition."
+#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297
+msgid "Last item"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:67
-#, php-format
-msgid ""
-"Friendica's configuration now is stored in config/local.config.php, please "
-"copy config/local-sample.config.php and move your config from <code>config/"
-"local.ini.php</code>. See <a href=\"%s\">the Config help page</a> for help "
-"with the transition."
+#: src/Module/Admin/Users.php:272
+msgid "Type"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:73
-#, php-format
-msgid ""
-"<a href=\"%s\">%s</a> is not reachable on your system. This is a severe "
-"configuration issue that prevents server to server communication. See <a "
-"href=\"%s\">the installation page</a> for help."
+#: src/Module/Admin/Users.php:279
+msgid "Add User"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:106
-#, php-format
-msgid ""
-"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the "
-"system.basepath from your db to avoid differences."
+#: src/Module/Admin/Users.php:281
+msgid "User registrations waiting for confirm"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:114
-#, php-format
-msgid ""
-"Friendica's current system.basepath '%s' is wrong and the config file '%s' "
-"isn't used."
+#: src/Module/Admin/Users.php:282
+msgid "User waiting for permanent deletion"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:122
-#, php-format
-msgid ""
-"Friendica's current system.basepath '%s' is not equal to the config file "
-"'%s'. Please fix your configuration."
+#: src/Module/Admin/Users.php:283
+msgid "Request date"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:129
-msgid "Normal Account"
+#: src/Module/Admin/Users.php:284
+msgid "No registrations."
 msgstr ""
 
-#: src/Module/Admin/Summary.php:130
-msgid "Automatic Follower Account"
+#: src/Module/Admin/Users.php:285
+msgid "Note from the user"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:131
-msgid "Public Forum Account"
+#: src/Module/Admin/Users.php:287
+msgid "Deny"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:132
-msgid "Automatic Friend Account"
+#: src/Module/Admin/Users.php:290
+msgid "User blocked"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:133
-msgid "Blog Account"
+#: src/Module/Admin/Users.php:292
+msgid "Site admin"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:134
-msgid "Private Forum Account"
+#: src/Module/Admin/Users.php:293
+msgid "Account expired"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:154
-msgid "Message queues"
+#: src/Module/Admin/Users.php:296
+msgid "New User"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:160
-msgid "Server Settings"
+#: src/Module/Admin/Users.php:297
+msgid "Permanent deletion"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:174
-msgid "Summary"
+#: src/Module/Admin/Users.php:302
+msgid ""
+"Selected users will be deleted!\\n\\nEverything these users had posted on "
+"this site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:176
-msgid "Registered users"
+#: src/Module/Admin/Users.php:303
+msgid ""
+"The user {0} will be deleted!\\n\\nEverything this user has posted on this "
+"site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:178
-msgid "Pending registrations"
+#: src/Module/Admin/Users.php:313
+msgid "Name of the new user."
 msgstr ""
 
-#: src/Module/Admin/Summary.php:179
-msgid "Version"
+#: src/Module/Admin/Users.php:314
+msgid "Nickname"
 msgstr ""
 
-#: src/Module/Admin/Summary.php:183
-msgid "Active addons"
+#: src/Module/Admin/Users.php:314
+msgid "Nickname of the new user."
 msgstr ""
 
-#: src/Module/AllFriends.php:55
-msgid "No friends to display."
+#: src/Module/Admin/Users.php:315
+msgid "Email address of the new user."
 msgstr ""
 
 #: src/Module/Attach.php:36 src/Module/Attach.php:48
@@ -8720,61 +8610,6 @@ msgstr ""
 msgid "User registrations waiting for confirmation"
 msgstr ""
 
-#: src/Module/BaseSearchModule.php:52
-#, php-format
-msgid "People Search - %s"
-msgstr ""
-
-#: src/Module/BaseSearchModule.php:62
-#, php-format
-msgid "Forum Search - %s"
-msgstr ""
-
-#: src/Module/Debug/Feed.php:20 src/Module/Filer/SaveTag.php:20
-msgid "You must be logged in to use this module"
-msgstr ""
-
-#: src/Module/Debug/Feed.php:49
-msgid "Source URL"
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:30
-msgid "Time Conversion"
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:31
-msgid ""
-"Friendica provides this service for sharing events with other networks and "
-"friends in unknown timezones."
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:32
-#, php-format
-msgid "UTC time: %s"
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:35
-#, php-format
-msgid "Current timezone: %s"
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:39
-#, php-format
-msgid "Converted localtime: %s"
-msgstr ""
-
-#: src/Module/Debug/Localtime.php:43
-msgid "Please select your timezone:"
-msgstr ""
-
-#: src/Module/Debug/Probe.php:19 src/Module/Debug/WebFinger.php:18
-msgid "Only logged in users are permitted to perform a probing."
-msgstr ""
-
-#: src/Module/Debug/Probe.php:35
-msgid "Lookup address"
-msgstr ""
-
 #: src/Module/Debug/Babel.php:32
 msgid "Source input"
 msgstr ""
@@ -8887,20 +8722,49 @@ msgstr ""
 msgid "HTML"
 msgstr ""
 
-#: src/Module/Directory.php:61
-msgid "No entries (some entries may be hidden)."
+#: src/Module/Debug/Feed.php:20 src/Module/Filer/SaveTag.php:20
+msgid "You must be logged in to use this module"
 msgstr ""
 
-#: src/Module/Directory.php:80
-msgid "Find on this site"
+#: src/Module/Debug/Feed.php:49
+msgid "Source URL"
 msgstr ""
 
-#: src/Module/Directory.php:82
-msgid "Results for:"
+#: src/Module/Debug/Localtime.php:30
+msgid "Time Conversion"
 msgstr ""
 
-#: src/Module/Directory.php:84
-msgid "Site Directory"
+#: src/Module/Debug/Localtime.php:31
+msgid ""
+"Friendica provides this service for sharing events with other networks and "
+"friends in unknown timezones."
+msgstr ""
+
+#: src/Module/Debug/Localtime.php:32
+#, php-format
+msgid "UTC time: %s"
+msgstr ""
+
+#: src/Module/Debug/Localtime.php:35
+#, php-format
+msgid "Current timezone: %s"
+msgstr ""
+
+#: src/Module/Debug/Localtime.php:39
+#, php-format
+msgid "Converted localtime: %s"
+msgstr ""
+
+#: src/Module/Debug/Localtime.php:43
+msgid "Please select your timezone:"
+msgstr ""
+
+#: src/Module/Debug/Probe.php:19 src/Module/Debug/WebFinger.php:18
+msgid "Only logged in users are permitted to perform a probing."
+msgstr ""
+
+#: src/Module/Debug/Probe.php:35
+msgid "Lookup address"
 msgstr ""
 
 #: src/Module/Filer/SaveTag.php:39
@@ -8912,10 +8776,6 @@ msgstr ""
 msgid "- select -"
 msgstr ""
 
-#: src/Module/FollowConfirm.php:37
-msgid "No given contact."
-msgstr ""
-
 #: src/Module/Friendica.php:40
 msgid "Installed addons/apps:"
 msgstr ""
@@ -9059,11 +8919,6 @@ msgstr ""
 msgid "Help:"
 msgstr ""
 
-#: src/Module/Home.php:42
-#, php-format
-msgid "Welcome to %s"
-msgstr ""
-
 #: src/Module/Invite.php:37
 msgid "Total invitation limit exceeded."
 msgstr ""
@@ -9168,110 +9023,66 @@ msgid ""
 "important, please visit http://friendi.ca"
 msgstr ""
 
-#: src/Module/Item/Compose.php:30
+#: src/Module/Item/Compose.php:31
 msgid "Please enter a post body."
 msgstr ""
 
-#: src/Module/Item/Compose.php:43
+#: src/Module/Item/Compose.php:44
 msgid "This feature is only available with the frio theme."
 msgstr ""
 
-#: src/Module/Item/Compose.php:63
+#: src/Module/Item/Compose.php:67
 msgid "Compose new personal note"
 msgstr ""
 
-#: src/Module/Item/Compose.php:70
+#: src/Module/Item/Compose.php:74
 msgid "Compose new post"
 msgstr ""
 
-#: src/Module/Item/Compose.php:190
+#: src/Module/Item/Compose.php:194
 msgid "Clear the location"
 msgstr ""
 
-#: src/Module/Item/Compose.php:191
+#: src/Module/Item/Compose.php:195
 msgid "Location services are unavailable on your device"
 msgstr ""
 
-#: src/Module/Item/Compose.php:192
+#: src/Module/Item/Compose.php:196
 msgid ""
 "Location services are disabled. Please check the website's permissions on "
 "your device"
 msgstr ""
 
-#: src/Module/Item/Compose.php:196
+#: src/Module/Item/Compose.php:200
 msgid "Public"
 msgstr ""
 
-#: src/Module/Item/Compose.php:197
+#: src/Module/Item/Compose.php:201
 msgid ""
 "This post will be sent to all your followers and can be seen in the "
 "community pages and by anyone with its link."
 msgstr ""
 
-#: src/Module/Item/Compose.php:198
+#: src/Module/Item/Compose.php:202
 msgid "Limited/Private"
 msgstr ""
 
-#: src/Module/Item/Compose.php:199
+#: src/Module/Item/Compose.php:203
 msgid ""
 "This post will be sent only to the people in the first box, to the exception "
 "of the people mentioned in the second box. It won't appear anywhere public."
 msgstr ""
 
-#: src/Module/Login.php:286
-msgid "Create a New Account"
-msgstr ""
-
-#: src/Module/Login.php:319
-msgid "Password: "
-msgstr ""
-
-#: src/Module/Login.php:320
-msgid "Remember me"
-msgstr ""
-
-#: src/Module/Login.php:323
-msgid "Or login using OpenID: "
-msgstr ""
-
-#: src/Module/Login.php:329
-msgid "Forgot your password?"
-msgstr ""
-
-#: src/Module/Login.php:332
-msgid "Website Terms of Service"
-msgstr ""
-
-#: src/Module/Login.php:333
-msgid "terms of service"
-msgstr ""
-
-#: src/Module/Login.php:335
-msgid "Website Privacy Policy"
-msgstr ""
-
-#: src/Module/Login.php:336
-msgid "privacy policy"
-msgstr ""
-
-#: src/Module/Logout.php:38
-msgid "Logged out."
-msgstr ""
-
 #: src/Module/Maintenance.php:29
 msgid "System down for maintenance"
 msgstr ""
 
-#: src/Module/PageNotFound.php:13
-msgid "Page not found."
-msgstr ""
-
 #: src/Module/Photo.php:87
 #, php-format
 msgid "Invalid photo with id %s."
 msgstr ""
 
-#: src/Module/Profile/Contacts.php:23 src/Module/Profile/Contacts.php:36
+#: src/Module/Profile/Contacts.php:24 src/Module/Profile/Contacts.php:37
 msgid "User not found."
 msgstr ""
 
@@ -9279,8 +9090,8 @@ msgstr ""
 msgid "No contacts."
 msgstr ""
 
-#: src/Module/Profile/Contacts.php:93 src/Module/Contact.php:569
-#: src/Module/Contact.php:1008
+#: src/Module/Profile/Contacts.php:93 src/Module/Contact.php:590
+#: src/Module/Contact.php:1029
 #, php-format
 msgid "Visit %s's profile [%s]"
 msgstr ""
@@ -9317,97 +9128,38 @@ msgstr[1] ""
 msgid "All contacts"
 msgstr ""
 
-#: src/Module/Register.php:83
-msgid ""
-"You may (optionally) fill in this form via OpenID by supplying your OpenID "
-"and clicking \"Register\"."
-msgstr ""
-
-#: src/Module/Register.php:84
-msgid ""
-"If you are not familiar with OpenID, please leave that field blank and fill "
-"in the rest of the items."
-msgstr ""
-
-#: src/Module/Register.php:85
-msgid "Your OpenID (optional): "
-msgstr ""
-
-#: src/Module/Register.php:94
-msgid "Include your profile in member directory?"
-msgstr ""
-
-#: src/Module/Register.php:117
-msgid "Note for the admin"
-msgstr ""
-
-#: src/Module/Register.php:117
-msgid "Leave a message for the admin, why you want to join this node"
-msgstr ""
-
-#: src/Module/Register.php:118
-msgid "Membership on this site is by invitation only."
-msgstr ""
-
-#: src/Module/Register.php:119
-msgid "Your invitation code: "
-msgstr ""
-
-#: src/Module/Register.php:127
-msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
+#: src/Module/Search/Acl.php:37
+msgid "You must be logged in to use this module."
 msgstr ""
 
-#: src/Module/Register.php:128
-msgid ""
-"Your Email Address: (Initial information will be send there, so this has to "
-"be an existing address.)"
+#: src/Module/Search/Index.php:35
+msgid "Only logged in users are permitted to perform a search."
 msgstr ""
 
-#: src/Module/Register.php:130
-msgid "Leave empty for an auto generated password."
+#: src/Module/Search/Index.php:57
+msgid "Only one search per minute is permitted for not logged in users."
 msgstr ""
 
-#: src/Module/Register.php:132
+#: src/Module/Search/Index.php:183
 #, php-format
-msgid ""
-"Choose a profile nickname. This must begin with a text character. Your "
-"profile address on this site will then be \"<strong>nickname@%s</strong>\"."
-msgstr ""
-
-#: src/Module/Register.php:133
-msgid "Choose a nickname: "
-msgstr ""
-
-#: src/Module/Register.php:142
-msgid "Import your profile to this friendica instance"
-msgstr ""
-
-#: src/Module/Register.php:149
-msgid "Note: This node explicitly contains adult content"
-msgstr ""
-
-#: src/Module/Register.php:242
-msgid ""
-"Registration successful. Please check your email for further instructions."
+msgid "Items tagged with: %s"
 msgstr ""
 
-#: src/Module/Register.php:246
+#: src/Module/Search/Index.php:185 src/Module/Contact.php:815
 #, php-format
-msgid ""
-"Failed to send email message. Here your accout details:<br> login: %s<br> "
-"password: %s<br><br>You can change your password after login."
+msgid "Results for: %s"
 msgstr ""
 
-#: src/Module/Register.php:253
-msgid "Registration successful."
+#: src/Module/Search/Saved.php:29
+msgid "Search term successfully saved."
 msgstr ""
 
-#: src/Module/Register.php:258
-msgid "Your registration can not be processed."
+#: src/Module/Search/Saved.php:31
+msgid "Search term already saved."
 msgstr ""
 
-#: src/Module/Register.php:304
-msgid "Your registration is pending approval by the site owner."
+#: src/Module/Search/Saved.php:37
+msgid "Search term successfully removed."
 msgstr ""
 
 #: src/Module/Settings/TwoFactor/AppSpecific.php:36
@@ -9488,6 +9240,36 @@ msgstr ""
 msgid "Generate"
 msgstr ""
 
+#: src/Module/Settings/TwoFactor/Recovery.php:50
+msgid "New recovery codes successfully generated."
+msgstr ""
+
+#: src/Module/Settings/TwoFactor/Recovery.php:76
+msgid "Two-factor recovery codes"
+msgstr ""
+
+#: src/Module/Settings/TwoFactor/Recovery.php:78
+msgid ""
+"<p>Recovery codes can be used to access your account in the event you lose "
+"access to your device and cannot receive two-factor authentication codes.</"
+"p><p><strong>Put these in a safe spot!</strong> If you lose your device and "
+"don’t have the recovery codes you will lose access to your account.</p>"
+msgstr ""
+
+#: src/Module/Settings/TwoFactor/Recovery.php:80
+msgid ""
+"When you generate new recovery codes, you must copy the new codes. Your old "
+"codes won’t work anymore."
+msgstr ""
+
+#: src/Module/Settings/TwoFactor/Recovery.php:81
+msgid "Generate new recovery codes"
+msgstr ""
+
+#: src/Module/Settings/TwoFactor/Recovery.php:83
+msgid "Next: Verification"
+msgstr ""
+
 #: src/Module/Settings/TwoFactor/Index.php:51
 msgid "Two-factor authentication successfully disabled."
 msgstr ""
@@ -9546,7 +9328,7 @@ msgid ""
 "supporting two-factor authentication.</p>"
 msgstr ""
 
-#: src/Module/Settings/TwoFactor/Index.php:111 src/Module/Contact.php:614
+#: src/Module/Settings/TwoFactor/Index.php:111 src/Module/Contact.php:635
 msgid "Actions"
 msgstr ""
 
@@ -9580,42 +9362,12 @@ msgstr ""
 msgid "Finish app configuration"
 msgstr ""
 
-#: src/Module/Settings/TwoFactor/Recovery.php:50
-msgid "New recovery codes successfully generated."
-msgstr ""
-
-#: src/Module/Settings/TwoFactor/Recovery.php:76
-msgid "Two-factor recovery codes"
-msgstr ""
-
-#: src/Module/Settings/TwoFactor/Recovery.php:78
-msgid ""
-"<p>Recovery codes can be used to access your account in the event you lose "
-"access to your device and cannot receive two-factor authentication codes.</"
-"p><p><strong>Put these in a safe spot!</strong> If you lose your device and "
-"don’t have the recovery codes you will lose access to your account.</p>"
-msgstr ""
-
-#: src/Module/Settings/TwoFactor/Recovery.php:80
-msgid ""
-"When you generate new recovery codes, you must copy the new codes. Your old "
-"codes won’t work anymore."
-msgstr ""
-
-#: src/Module/Settings/TwoFactor/Recovery.php:81
-msgid "Generate new recovery codes"
-msgstr ""
-
-#: src/Module/Settings/TwoFactor/Recovery.php:83
-msgid "Next: Verification"
-msgstr ""
-
 #: src/Module/Settings/TwoFactor/Verify.php:63
 msgid "Two-factor authentication successfully activated."
 msgstr ""
 
 #: src/Module/Settings/TwoFactor/Verify.php:67
-#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:43
+#: src/Module/TwoFactor/Verify.php:43 src/Module/TwoFactor/Recovery.php:46
 msgid "Invalid code, please retry."
 msgstr ""
 
@@ -9665,6 +9417,112 @@ msgstr ""
 msgid "Verify code and enable two-factor authentication"
 msgstr ""
 
+#: src/Module/Settings/Delegation.php:37
+msgid "Delegation successfully granted."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:39
+msgid "Parent user not found, unavailable or password doesn't match."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:43
+msgid "Delegation successfully revoked."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:66 src/Module/Settings/Delegation.php:88
+msgid ""
+"Delegated administrators can view but not change delegation permissions."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:80
+msgid "Delegate user not found."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:137
+msgid "No parent user"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:149
+msgid "Parent Password:"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:149
+msgid ""
+"Please enter the password of the parent account to legitimize your request."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:154
+msgid "Parent User"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:157
+msgid ""
+"Parent users have total control about this account, including the account "
+"settings. Please double check whom you give this access."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:159
+msgid "Delegate Page Management"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:160
+msgid "Delegates"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:162
+msgid ""
+"Delegates are able to manage all aspects of this account/page except for "
+"basic account settings. Please do not delegate your personal account to "
+"anybody that you do not trust completely."
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:163
+msgid "Existing Page Delegates"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:165
+msgid "Potential Delegates"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:168
+msgid "Add"
+msgstr ""
+
+#: src/Module/Settings/Delegation.php:169
+msgid "No entries."
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:44
+msgid "Export account"
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:44
+msgid ""
+"Export your account info and contacts. Use this to make a backup of your "
+"account and/or to move it to another server."
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:45
+msgid "Export all"
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:45
+msgid ""
+"Export your accout info, contacts and all your items as json. Could be a "
+"very big file, and could take a lot of time. Use this to make a full backup "
+"of your account (photos are not exported)"
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:46
+msgid "Export Contacts to CSV"
+msgstr ""
+
+#: src/Module/Settings/UserExport.php:46
+msgid ""
+"Export the list of the accounts you are following as CSV file. Compatible to "
+"e.g. Mastodon."
+msgstr ""
+
 #: src/Module/Special/HTTPException.php:32
 msgid "Bad Request"
 msgstr ""
@@ -9726,6 +9584,22 @@ msgstr ""
 msgid "Go back"
 msgstr ""
 
+#: src/Module/TwoFactor/Verify.php:63
+msgid ""
+"<p>Open the two-factor authentication app on your device to get an "
+"authentication code and verify your identity.</p>"
+msgstr ""
+
+#: src/Module/TwoFactor/Verify.php:66 src/Module/TwoFactor/Recovery.php:67
+#, php-format
+msgid ""
+"Don’t have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>"
+msgstr ""
+
+#: src/Module/TwoFactor/Verify.php:68
+msgid "Verify code and complete login"
+msgstr ""
+
 #: src/Module/TwoFactor/Recovery.php:41
 #, php-format
 msgid "Remaining recovery codes: %d"
@@ -9741,12 +9615,6 @@ msgid ""
 "to your mobile device.</p>"
 msgstr ""
 
-#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:66
-#, php-format
-msgid ""
-"Don’t have your phone? <a href=\"%s\">Enter a two-factor recovery code</a>"
-msgstr ""
-
 #: src/Module/TwoFactor/Recovery.php:68
 msgid "Please enter a recovery code"
 msgstr ""
@@ -9755,16 +9623,6 @@ msgstr ""
 msgid "Submit recovery code and complete login"
 msgstr ""
 
-#: src/Module/TwoFactor/Verify.php:63
-msgid ""
-"<p>Open the two-factor authentication app on your device to get an "
-"authentication code and verify your identity.</p>"
-msgstr ""
-
-#: src/Module/TwoFactor/Verify.php:68
-msgid "Verify code and complete login"
-msgstr ""
-
 #: src/Module/Welcome.php:25
 msgid "Welcome to Friendica"
 msgstr ""
@@ -9930,6 +9788,20 @@ msgid ""
 "features and resources."
 msgstr ""
 
+#: src/Module/AllFriends.php:55
+msgid "No friends to display."
+msgstr ""
+
+#: src/Module/BaseSearchModule.php:54
+#, php-format
+msgid "People Search - %s"
+msgstr ""
+
+#: src/Module/BaseSearchModule.php:64
+#, php-format
+msgid "Forum Search - %s"
+msgstr ""
+
 #: src/Module/Bookmarklet.php:35
 msgid "This page is missing a url parameter."
 msgstr ""
@@ -9957,340 +9829,387 @@ msgstr ""
 msgid "Contact updated."
 msgstr ""
 
-#: src/Module/Contact.php:355
+#: src/Module/Contact.php:376
 msgid "Contact not found"
 msgstr ""
 
-#: src/Module/Contact.php:374
+#: src/Module/Contact.php:395
 msgid "Contact has been blocked"
 msgstr ""
 
-#: src/Module/Contact.php:374
+#: src/Module/Contact.php:395
 msgid "Contact has been unblocked"
 msgstr ""
 
-#: src/Module/Contact.php:384
+#: src/Module/Contact.php:405
 msgid "Contact has been ignored"
 msgstr ""
 
-#: src/Module/Contact.php:384
+#: src/Module/Contact.php:405
 msgid "Contact has been unignored"
 msgstr ""
 
-#: src/Module/Contact.php:394
+#: src/Module/Contact.php:415
 msgid "Contact has been archived"
 msgstr ""
 
-#: src/Module/Contact.php:394
+#: src/Module/Contact.php:415
 msgid "Contact has been unarchived"
 msgstr ""
 
-#: src/Module/Contact.php:418
+#: src/Module/Contact.php:439
 msgid "Drop contact"
 msgstr ""
 
-#: src/Module/Contact.php:421 src/Module/Contact.php:798
+#: src/Module/Contact.php:442 src/Module/Contact.php:819
 msgid "Do you really want to delete this contact?"
 msgstr ""
 
-#: src/Module/Contact.php:435
+#: src/Module/Contact.php:456
 msgid "Contact has been removed."
 msgstr ""
 
-#: src/Module/Contact.php:465
+#: src/Module/Contact.php:486
 #, php-format
 msgid "You are mutual friends with %s"
 msgstr ""
 
-#: src/Module/Contact.php:470
+#: src/Module/Contact.php:491
 #, php-format
 msgid "You are sharing with %s"
 msgstr ""
 
-#: src/Module/Contact.php:475
+#: src/Module/Contact.php:496
 #, php-format
 msgid "%s is sharing with you"
 msgstr ""
 
-#: src/Module/Contact.php:499
+#: src/Module/Contact.php:520
 msgid "Private communications are not available for this contact."
 msgstr ""
 
-#: src/Module/Contact.php:501
+#: src/Module/Contact.php:522
 msgid "Never"
 msgstr ""
 
-#: src/Module/Contact.php:504
+#: src/Module/Contact.php:525
 msgid "(Update was successful)"
 msgstr ""
 
-#: src/Module/Contact.php:504
+#: src/Module/Contact.php:525
 msgid "(Update was not successful)"
 msgstr ""
 
-#: src/Module/Contact.php:506 src/Module/Contact.php:1042
+#: src/Module/Contact.php:527 src/Module/Contact.php:1063
 msgid "Suggest friends"
 msgstr ""
 
-#: src/Module/Contact.php:510
+#: src/Module/Contact.php:531
 #, php-format
 msgid "Network type: %s"
 msgstr ""
 
-#: src/Module/Contact.php:515
+#: src/Module/Contact.php:536
 msgid "Communications lost with this contact!"
 msgstr ""
 
-#: src/Module/Contact.php:521
+#: src/Module/Contact.php:542
 msgid "Fetch further information for feeds"
 msgstr ""
 
-#: src/Module/Contact.php:523
+#: src/Module/Contact.php:544
 msgid ""
 "Fetch information like preview pictures, title and teaser from the feed "
 "item. You can activate this if the feed doesn't contain much text. Keywords "
 "are taken from the meta header in the feed item and are posted as hash tags."
 msgstr ""
 
-#: src/Module/Contact.php:526
+#: src/Module/Contact.php:547
 msgid "Fetch information"
 msgstr ""
 
-#: src/Module/Contact.php:527
+#: src/Module/Contact.php:548
 msgid "Fetch keywords"
 msgstr ""
 
-#: src/Module/Contact.php:528
+#: src/Module/Contact.php:549
 msgid "Fetch information and keywords"
 msgstr ""
 
-#: src/Module/Contact.php:547
+#: src/Module/Contact.php:568
 msgid "Profile Visibility"
 msgstr ""
 
-#: src/Module/Contact.php:548
+#: src/Module/Contact.php:569
 msgid "Contact Information / Notes"
 msgstr ""
 
-#: src/Module/Contact.php:549
+#: src/Module/Contact.php:570
 msgid "Contact Settings"
 msgstr ""
 
-#: src/Module/Contact.php:558
+#: src/Module/Contact.php:579
 msgid "Contact"
 msgstr ""
 
-#: src/Module/Contact.php:562
+#: src/Module/Contact.php:583
 #, php-format
 msgid ""
 "Please choose the profile you would like to display to %s when viewing your "
 "profile securely."
 msgstr ""
 
-#: src/Module/Contact.php:564
+#: src/Module/Contact.php:585
 msgid "Their personal note"
 msgstr ""
 
-#: src/Module/Contact.php:566
+#: src/Module/Contact.php:587
 msgid "Edit contact notes"
 msgstr ""
 
-#: src/Module/Contact.php:570
+#: src/Module/Contact.php:591
 msgid "Block/Unblock contact"
 msgstr ""
 
-#: src/Module/Contact.php:571
+#: src/Module/Contact.php:592
 msgid "Ignore contact"
 msgstr ""
 
-#: src/Module/Contact.php:572
+#: src/Module/Contact.php:593
 msgid "Repair URL settings"
 msgstr ""
 
-#: src/Module/Contact.php:573
+#: src/Module/Contact.php:594
 msgid "View conversations"
 msgstr ""
 
-#: src/Module/Contact.php:578
+#: src/Module/Contact.php:599
 msgid "Last update:"
 msgstr ""
 
-#: src/Module/Contact.php:580
+#: src/Module/Contact.php:601
 msgid "Update public posts"
 msgstr ""
 
-#: src/Module/Contact.php:582 src/Module/Contact.php:1052
+#: src/Module/Contact.php:603 src/Module/Contact.php:1073
 msgid "Update now"
 msgstr ""
 
-#: src/Module/Contact.php:586 src/Module/Contact.php:803
-#: src/Module/Contact.php:1069
+#: src/Module/Contact.php:607 src/Module/Contact.php:824
+#: src/Module/Contact.php:1090
 msgid "Unignore"
 msgstr ""
 
-#: src/Module/Contact.php:590
+#: src/Module/Contact.php:611
 msgid "Currently blocked"
 msgstr ""
 
-#: src/Module/Contact.php:591
+#: src/Module/Contact.php:612
 msgid "Currently ignored"
 msgstr ""
 
-#: src/Module/Contact.php:592
+#: src/Module/Contact.php:613
 msgid "Currently archived"
 msgstr ""
 
-#: src/Module/Contact.php:593
+#: src/Module/Contact.php:614
 msgid "Awaiting connection acknowledge"
 msgstr ""
 
-#: src/Module/Contact.php:594
+#: src/Module/Contact.php:615
 msgid ""
 "Replies/likes to your public posts <strong>may</strong> still be visible"
 msgstr ""
 
-#: src/Module/Contact.php:595
+#: src/Module/Contact.php:616
 msgid "Notification for new posts"
 msgstr ""
 
-#: src/Module/Contact.php:595
+#: src/Module/Contact.php:616
 msgid "Send a notification of every new post of this contact"
 msgstr ""
 
-#: src/Module/Contact.php:597
+#: src/Module/Contact.php:618
 msgid "Blacklisted keywords"
 msgstr ""
 
-#: src/Module/Contact.php:597
+#: src/Module/Contact.php:618
 msgid ""
 "Comma separated list of keywords that should not be converted to hashtags, "
 "when \"Fetch information and keywords\" is selected"
 msgstr ""
 
-#: src/Module/Contact.php:663
+#: src/Module/Contact.php:684
 msgid "Show all contacts"
 msgstr ""
 
-#: src/Module/Contact.php:668 src/Module/Contact.php:778
+#: src/Module/Contact.php:689 src/Module/Contact.php:799
 msgid "Pending"
 msgstr ""
 
-#: src/Module/Contact.php:671
+#: src/Module/Contact.php:692
 msgid "Only show pending contacts"
 msgstr ""
 
-#: src/Module/Contact.php:676 src/Module/Contact.php:779
+#: src/Module/Contact.php:697 src/Module/Contact.php:800
 msgid "Blocked"
 msgstr ""
 
-#: src/Module/Contact.php:679
+#: src/Module/Contact.php:700
 msgid "Only show blocked contacts"
 msgstr ""
 
-#: src/Module/Contact.php:684 src/Module/Contact.php:781
+#: src/Module/Contact.php:705 src/Module/Contact.php:802
 msgid "Ignored"
 msgstr ""
 
-#: src/Module/Contact.php:687
+#: src/Module/Contact.php:708
 msgid "Only show ignored contacts"
 msgstr ""
 
-#: src/Module/Contact.php:692 src/Module/Contact.php:782
+#: src/Module/Contact.php:713 src/Module/Contact.php:803
 msgid "Archived"
 msgstr ""
 
-#: src/Module/Contact.php:695
+#: src/Module/Contact.php:716
 msgid "Only show archived contacts"
 msgstr ""
 
-#: src/Module/Contact.php:700 src/Module/Contact.php:780
+#: src/Module/Contact.php:721 src/Module/Contact.php:801
 msgid "Hidden"
 msgstr ""
 
-#: src/Module/Contact.php:703
+#: src/Module/Contact.php:724
 msgid "Only show hidden contacts"
 msgstr ""
 
-#: src/Module/Contact.php:711
+#: src/Module/Contact.php:732
 msgid "Organize your contact groups"
 msgstr ""
 
-#: src/Module/Contact.php:793
+#: src/Module/Contact.php:814
 msgid "Search your contacts"
 msgstr ""
 
-#: src/Module/Contact.php:804 src/Module/Contact.php:1078
+#: src/Module/Contact.php:825 src/Module/Contact.php:1099
 msgid "Archive"
 msgstr ""
 
-#: src/Module/Contact.php:804 src/Module/Contact.php:1078
+#: src/Module/Contact.php:825 src/Module/Contact.php:1099
 msgid "Unarchive"
 msgstr ""
 
-#: src/Module/Contact.php:807
+#: src/Module/Contact.php:828
 msgid "Batch Actions"
 msgstr ""
 
-#: src/Module/Contact.php:834
+#: src/Module/Contact.php:855
 msgid "Conversations started by this contact"
 msgstr ""
 
-#: src/Module/Contact.php:839
+#: src/Module/Contact.php:860
 msgid "Posts and Comments"
 msgstr ""
 
-#: src/Module/Contact.php:862
+#: src/Module/Contact.php:883
 msgid "View all contacts"
 msgstr ""
 
-#: src/Module/Contact.php:873
+#: src/Module/Contact.php:894
 msgid "View all common friends"
 msgstr ""
 
-#: src/Module/Contact.php:883
+#: src/Module/Contact.php:904
 msgid "Advanced Contact Settings"
 msgstr ""
 
-#: src/Module/Contact.php:966
+#: src/Module/Contact.php:987
 msgid "Mutual Friendship"
 msgstr ""
 
-#: src/Module/Contact.php:971
+#: src/Module/Contact.php:992
 msgid "is a fan of yours"
 msgstr ""
 
-#: src/Module/Contact.php:976
+#: src/Module/Contact.php:997
 msgid "you are a fan of"
 msgstr ""
 
-#: src/Module/Contact.php:994
+#: src/Module/Contact.php:1015
 msgid "Pending outgoing contact request"
 msgstr ""
 
-#: src/Module/Contact.php:996
+#: src/Module/Contact.php:1017
 msgid "Pending incoming contact request"
 msgstr ""
 
-#: src/Module/Contact.php:1009
+#: src/Module/Contact.php:1030
 msgid "Edit contact"
 msgstr ""
 
-#: src/Module/Contact.php:1063
+#: src/Module/Contact.php:1084
 msgid "Toggle Blocked status"
 msgstr ""
 
-#: src/Module/Contact.php:1071
+#: src/Module/Contact.php:1092
 msgid "Toggle Ignored status"
 msgstr ""
 
-#: src/Module/Contact.php:1080
+#: src/Module/Contact.php:1101
 msgid "Toggle Archive status"
 msgstr ""
 
-#: src/Module/Contact.php:1088
+#: src/Module/Contact.php:1109
 msgid "Delete contact"
 msgstr ""
 
+#: src/Module/Delegation.php:127
+msgid "Manage Identities and/or Pages"
+msgstr ""
+
+#: src/Module/Delegation.php:128
+msgid ""
+"Toggle between different identities or community/group pages which share "
+"your account details or which you have been granted \"manage\" permissions"
+msgstr ""
+
+#: src/Module/Delegation.php:129
+msgid "Select an identity to manage: "
+msgstr ""
+
+#: src/Module/Directory.php:59
+msgid "No entries (some entries may be hidden)."
+msgstr ""
+
+#: src/Module/Directory.php:78
+msgid "Find on this site"
+msgstr ""
+
+#: src/Module/Directory.php:80
+msgid "Results for:"
+msgstr ""
+
+#: src/Module/Directory.php:82
+msgid "Site Directory"
+msgstr ""
+
+#: src/Module/FollowConfirm.php:37
+msgid "No given contact."
+msgstr ""
+
+#: src/Module/HTTPException/MethodNotAllowed.php:13
+msgid "Method Not Allowed."
+msgstr ""
+
+#: src/Module/HTTPException/PageNotFound.php:13 src/App/Router.php:182
+msgid "Page not found."
+msgstr ""
+
+#: src/Module/Home.php:34
+#, php-format
+msgid "Welcome to %s"
+msgstr ""
+
 #: src/Module/Install.php:159
 msgid "Friendica Communications Server - Setup"
 msgstr ""
@@ -10434,87 +10353,268 @@ msgid ""
 "administrator email. This will allow you to enter the site admin panel."
 msgstr ""
 
-#: src/Object/Post.php:138
+#: src/Module/Login.php:312
+msgid "Create a New Account"
+msgstr ""
+
+#: src/Module/Login.php:337
+msgid "Your OpenID: "
+msgstr ""
+
+#: src/Module/Login.php:340
+msgid ""
+"Please enter your username and password to add the OpenID to your existing "
+"account."
+msgstr ""
+
+#: src/Module/Login.php:342
+msgid "Or login using OpenID: "
+msgstr ""
+
+#: src/Module/Login.php:356
+msgid "Password: "
+msgstr ""
+
+#: src/Module/Login.php:357
+msgid "Remember me"
+msgstr ""
+
+#: src/Module/Login.php:366
+msgid "Forgot your password?"
+msgstr ""
+
+#: src/Module/Login.php:369
+msgid "Website Terms of Service"
+msgstr ""
+
+#: src/Module/Login.php:370
+msgid "terms of service"
+msgstr ""
+
+#: src/Module/Login.php:372
+msgid "Website Privacy Policy"
+msgstr ""
+
+#: src/Module/Login.php:373
+msgid "privacy policy"
+msgstr ""
+
+#: src/Module/Logout.php:40
+msgid "Logged out."
+msgstr ""
+
+#: src/Module/Register.php:77
+msgid ""
+"You may (optionally) fill in this form via OpenID by supplying your OpenID "
+"and clicking \"Register\"."
+msgstr ""
+
+#: src/Module/Register.php:78
+msgid ""
+"If you are not familiar with OpenID, please leave that field blank and fill "
+"in the rest of the items."
+msgstr ""
+
+#: src/Module/Register.php:79
+msgid "Your OpenID (optional): "
+msgstr ""
+
+#: src/Module/Register.php:88
+msgid "Include your profile in member directory?"
+msgstr ""
+
+#: src/Module/Register.php:111
+msgid "Note for the admin"
+msgstr ""
+
+#: src/Module/Register.php:111
+msgid "Leave a message for the admin, why you want to join this node"
+msgstr ""
+
+#: src/Module/Register.php:112
+msgid "Membership on this site is by invitation only."
+msgstr ""
+
+#: src/Module/Register.php:113
+msgid "Your invitation code: "
+msgstr ""
+
+#: src/Module/Register.php:121
+msgid "Your Full Name (e.g. Joe Smith, real or real-looking): "
+msgstr ""
+
+#: src/Module/Register.php:122
+msgid ""
+"Your Email Address: (Initial information will be send there, so this has to "
+"be an existing address.)"
+msgstr ""
+
+#: src/Module/Register.php:124
+msgid "Leave empty for an auto generated password."
+msgstr ""
+
+#: src/Module/Register.php:126
+#, php-format
+msgid ""
+"Choose a profile nickname. This must begin with a text character. Your "
+"profile address on this site will then be \"<strong>nickname@%s</strong>\"."
+msgstr ""
+
+#: src/Module/Register.php:127
+msgid "Choose a nickname: "
+msgstr ""
+
+#: src/Module/Register.php:136
+msgid "Import your profile to this friendica instance"
+msgstr ""
+
+#: src/Module/Register.php:143
+msgid "Note: This node explicitly contains adult content"
+msgstr ""
+
+#: src/Module/Register.php:238
+msgid ""
+"Registration successful. Please check your email for further instructions."
+msgstr ""
+
+#: src/Module/Register.php:242
+#, php-format
+msgid ""
+"Failed to send email message. Here your accout details:<br> login: %s<br> "
+"password: %s<br><br>You can change your password after login."
+msgstr ""
+
+#: src/Module/Register.php:248
+msgid "Registration successful."
+msgstr ""
+
+#: src/Module/Register.php:253 src/Module/Register.php:260
+msgid "Your registration can not be processed."
+msgstr ""
+
+#: src/Module/Register.php:259
+msgid "You have to leave a request note for the admin."
+msgstr ""
+
+#: src/Module/Register.php:307
+msgid "Your registration is pending approval by the site owner."
+msgstr ""
+
+#: src/Module/Tos.php:35 src/Module/Tos.php:77
+msgid ""
+"At the time of registration, and for providing communications between the "
+"user account and their contacts, the user has to provide a display name (pen "
+"name), an username (nickname) and a working email address. The names will be "
+"accessible on the profile page of the account by any visitor of the page, "
+"even if other profile details are not displayed. The email address will only "
+"be used to send the user notifications about interactions, but wont be "
+"visibly displayed. The listing of an account in the node's user directory or "
+"the global user directory is optional and can be controlled in the user "
+"settings, it is not necessary for communication."
+msgstr ""
+
+#: src/Module/Tos.php:36 src/Module/Tos.php:78
+msgid ""
+"This data is required for communication and is passed on to the nodes of the "
+"communication partners and is stored there. Users can enter additional "
+"private data that may be transmitted to the communication partners accounts."
+msgstr ""
+
+#: src/Module/Tos.php:37 src/Module/Tos.php:79
+#, php-format
+msgid ""
+"At any point in time a logged in user can export their account data from the "
+"<a href=\"%1$s/settings/userexport\">account settings</a>. If the user wants "
+"to delete their account they can do so at <a href=\"%1$s/removeme\">%1$s/"
+"removeme</a>. The deletion of the account will be permanent. Deletion of the "
+"data will also be requested from the nodes of the communication partners."
+msgstr ""
+
+#: src/Module/Tos.php:40 src/Module/Tos.php:76
+msgid "Privacy Statement"
+msgstr ""
+
+#: src/Object/Post.php:135
 msgid "This entry was edited"
 msgstr ""
 
-#: src/Object/Post.php:158
+#: src/Object/Post.php:155
 msgid "Private Message"
 msgstr ""
 
-#: src/Object/Post.php:200
+#: src/Object/Post.php:197
 msgid "Delete locally"
 msgstr ""
 
-#: src/Object/Post.php:203
+#: src/Object/Post.php:200
 msgid "Delete globally"
 msgstr ""
 
-#: src/Object/Post.php:203
+#: src/Object/Post.php:200
 msgid "Remove locally"
 msgstr ""
 
-#: src/Object/Post.php:217
+#: src/Object/Post.php:214
 msgid "save to folder"
 msgstr ""
 
-#: src/Object/Post.php:252
+#: src/Object/Post.php:249
 msgid "I will attend"
 msgstr ""
 
-#: src/Object/Post.php:252
+#: src/Object/Post.php:249
 msgid "I will not attend"
 msgstr ""
 
-#: src/Object/Post.php:252
+#: src/Object/Post.php:249
 msgid "I might attend"
 msgstr ""
 
-#: src/Object/Post.php:280
+#: src/Object/Post.php:277
 msgid "ignore thread"
 msgstr ""
 
-#: src/Object/Post.php:281
+#: src/Object/Post.php:278
 msgid "unignore thread"
 msgstr ""
 
-#: src/Object/Post.php:282
+#: src/Object/Post.php:279
 msgid "toggle ignore status"
 msgstr ""
 
-#: src/Object/Post.php:293
+#: src/Object/Post.php:290
 msgid "add star"
 msgstr ""
 
-#: src/Object/Post.php:294
+#: src/Object/Post.php:291
 msgid "remove star"
 msgstr ""
 
-#: src/Object/Post.php:295
+#: src/Object/Post.php:292
 msgid "toggle star status"
 msgstr ""
 
-#: src/Object/Post.php:298
+#: src/Object/Post.php:295
 msgid "starred"
 msgstr ""
 
-#: src/Object/Post.php:302
+#: src/Object/Post.php:299
 msgid "add tag"
 msgstr ""
 
-#: src/Object/Post.php:313
+#: src/Object/Post.php:310
 msgid "like"
 msgstr ""
 
-#: src/Object/Post.php:314
+#: src/Object/Post.php:311
 msgid "dislike"
 msgstr ""
 
-#: src/Object/Post.php:317
+#: src/Object/Post.php:314
 msgid "Share this"
 msgstr ""
 
-#: src/Object/Post.php:317
+#: src/Object/Post.php:314
 msgid "share"
 msgstr ""
 
@@ -10586,15 +10686,14 @@ msgstr ""
 msgid "toggle mobile"
 msgstr ""
 
-#: src/LegacyModule.php:30
+#: src/App/Router.php:180
 #, php-format
-msgid "Legacy module file not found: %s"
+msgid "Method not allowed for this module. Allowed method(s): %s"
 msgstr ""
 
-#: src/BaseModule.php:135
-msgid ""
-"The form security token was not correct. This probably happened because the "
-"form has been opened for too long (>3 hours) before submitting it."
+#: src/LegacyModule.php:30
+#, php-format
+msgid "Legacy module file not found: %s"
 msgstr ""
 
 #: src/Console/ArchiveContact.php:86
@@ -10631,10 +10730,16 @@ msgstr ""
 msgid "All pending post updates are done."
 msgstr ""
 
-#: src/App.php:485
+#: src/App.php:519
 msgid "No system theme config value set."
 msgstr ""
 
+#: src/BaseModule.php:134
+msgid ""
+"The form security token was not correct. This probably happened because the "
+"form has been opened for too long (>3 hours) before submitting it."
+msgstr ""
+
 #: update.php:218
 #, php-format
 msgid "%s: Updating author-id and owner-id in item and thread table. "
index 456fadaab841825fac65ad83dc858603d2cf518f..7aa1a4d991f1c3f138233ef9f21818f9b1199812 100644 (file)
@@ -56,6 +56,7 @@
 
 {{if $permonly}}
     {{include file="field_textarea.tpl" field=$permonlybox}}
+       <input type="input" id="registertarpit" style="display: none;" placeholder="Don't enter anything here" />
 {{/if}}
 
        {{$publish nofilter}}
diff --git a/view/templates/settings/userexport.tpl b/view/templates/settings/userexport.tpl
new file mode 100644 (file)
index 0000000..b9e177a
--- /dev/null
@@ -0,0 +1,10 @@
+
+<h3>{{$title}}</h3>
+
+
+{{foreach $options as $o}}
+<dl>
+    <dt><a href="{{$o.0}}">{{$o.1}}</a></dt>
+    <dd>{{$o.2}}</dd>
+</dl>
+{{/foreach}}
index a4834062c02070c755653506a859023b83bbbf3d..0816400d5258ee811e8886a240bc00a62a4cf96d 100644 (file)
@@ -50,7 +50,7 @@
                </div>
                <div class="wall-item-author">
                                <a href="{{$item.profile_url}}" target="redir" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}} {{$item.to}} <a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}{{/if}}<br />
-                               <div class="wall-item-ago"  id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}"><time class="dt-published" datetime="{{$item.localtime}}">{{$item.ago}}</time></div>
+                               <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}"><time class="dt-published" datetime="{{$item.localtime}}">{{$item.ago}}</time><span class="pinned">{{$item.pinned}}</span></div>
                </div>
                <div class="wall-item-content" id="wall-item-content-{{$item.id}}" >
                        <div class="wall-item-title p-name" id="wall-item-title-{{$item.id}}">{{$item.title}}</div>
@@ -90,6 +90,9 @@
                                <a class="editpost icon pencil" href="{{$item.edpost.0}}" title="{{$item.edpost.1}}"></a>
                        {{/if}}
 
+                       {{if $item.pin}}
+                       <a href="#" id="pinned-{{$item.id}}" onclick="dopin({{$item.id}}); return false;" class="pin-item icon {{$item.ispinned}}" title="{{$item.pin.toggle}}"></a>
+                       {{/if}}
                        {{if $item.star}}
                        <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
                        {{/if}}
index 9bad9d3480a97b0400e714fe743d7aa1476a3dae..bb5a25490e8078a8ab4127571ad37aea3d444ffd 100644 (file)
@@ -1162,6 +1162,10 @@ input#dfrn-url {
        margin-left: 10px;
        float: left;
 }
+.pin-item {
+       margin-left: 10px;
+       float: left;
+}
 .star-item {
        margin-left: 10px;
        float: left;
@@ -3201,6 +3205,8 @@ aside input[type='text'] {
 .on { background-position: -144px -32px; }
 
 .off { background-position: 0px -48px; }
+.pinned { background-position: -16px -48px; }
+.unpinned { background-position: -32px -48px; }
 .starred { background-position: -16px -48px; }
 .unstarred { background-position: -32px -48px; }
 .tagged { background-position: -48px -48px; }
index 4819c5ee817964a2801c20fb0db73a69777ed90b..81e519ef7505eaa6c0bc3f3f83d3a140fa577729 100644 (file)
@@ -56,6 +56,7 @@
 
                {{if $permonly}}
                {{include file="field_textarea.tpl" field=$permonlybox}}
+               <input type="input" id="registertarpit" style="display: none;" placeholder="Don't enter anything here"/>
                {{/if}}
 
                {{$publish nofilter}}
diff --git a/view/theme/frio/templates/settings/userexport.tpl b/view/theme/frio/templates/settings/userexport.tpl
new file mode 100644 (file)
index 0000000..247ed86
--- /dev/null
@@ -0,0 +1,12 @@
+
+<div class="generic-page-wrapper">
+       {{* include the title template for the settings title *}}
+       {{include file="section_title.tpl" title=$title}}
+
+       {{foreach $options as $o}}
+       <dl>
+               <dt><a href="{{$o.0}}">{{$o.1}}</a></dt>
+               <dd>{{$o.2}}</dd>
+       </dl>
+       {{/foreach}}
+</div>
index 9d8d47355c04cc21753ab5ea21d588dc21b41e2f..94955581d1dc2497f46b6fefe58ad8b7acf5ac3c 100644 (file)
@@ -118,6 +118,13 @@ as the value of $top_child_total (this is done at the end of this file)
                                        </li>
                                        {{/if}}
 
+                                       {{if $item.pin}}
+                                       <li role="menuitem">
+                                               <button type="button" id="pin-{{$item.id}}" onclick="dopin({{$item.id}});" class="btn-link {{$item.pin.classdo}}" title="{{$item.pin.do}}"><i class="fa fa-circle-o" aria-hidden="true"></i>&nbsp;{{$item.pin.do}}</button>
+                                               <button type="button" id="unpin-{{$item.id}}" onclick="dopin({{$item.id}});" class="btn-link {{$item.pin.classundo}}" title="{{$item.pin.undo}}"><i class="fa fa-dot-circle-o" aria-hidden="true"></i>&nbsp;{{$item.pin.undo}}</button>
+                                       </li>
+                                       {{/if}}
+
                                        {{if $item.star}}
                                        <li role="menuitem">
                                                <button type="button" id="star-{{$item.id}}" onclick="dostar({{$item.id}});" class="btn-link {{$item.star.classdo}}" title="{{$item.star.do}}"><i class="fa fa-star-o" aria-hidden="true"></i>&nbsp;{{$item.star.do}}</button>
@@ -229,6 +236,7 @@ as the value of $top_child_total (this is done at the end of this file)
                                                {{if $item.owner_self}}
                                                        {{include file="sub/delivery_count.tpl" delivery=$item.delivery}}
                                                {{/if}}
+                                               <span class="pinned">{{$item.pinned}}</span>
                                        </small>
                                </div>
 
index bfb903c7b81d6b465d288008f75324a80f7c6b1b..77d63f6e5d94c9f8bb9424b58afa68d95edd603a 100644 (file)
                                 class="wall-item-name-link"><span
                                 class="wall-item-name{{$item.sparkle}}">{{$item.name}}</span></a>
                                 <span class="wall-item-ago" title="{{$item.localtime}}"><time class="dt-published" datetime="{{$item.localtime}}">{{$item.ago}}</time></span>
+                               <span class="pinned">{{$item.pinned}}</span>
                                 {{if $item.owner_url}}<br/>{{$item.to}} <a href="{{$item.owner_url}}" target="redir" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a> {{$item.vwall}}
                                 {{/if}}
                        </div>
 
                        <div class="wall-item-actions-social">
+                       {{if $item.pin}}
+                               <a href="#" id="pin-{{$item.id}}" onclick="dopin({{$item.id}}); return false;"  class="{{$item.pin.classdo}}"  title="{{$item.pin.do}}">{{$item.pin.do}}</a>
+                               <a href="#" id="unpin-{{$item.id}}" onclick="dopin({{$item.id}}); return false;"  class="{{$item.pin.classundo}}"  title="{{$item.pin.undo}}">{{$item.pin.undo}}</a>
+                       {{/if}}
                        {{if $item.star}}
                                <a href="#" id="star-{{$item.id}}" onclick="dostar({{$item.id}}); return false;"  class="{{$item.star.classdo}}"  title="{{$item.star.do}}">{{$item.star.do}}</a>
                                <a href="#" id="unstar-{{$item.id}}" onclick="dostar({{$item.id}}); return false;"  class="{{$item.star.classundo}}"  title="{{$item.star.undo}}">{{$item.star.undo}}</a>
index edbd705747fe79757d05ae5c035e8acb7c38ba2f..ea84f0166886d849f398b527d0994140872483aa 100644 (file)
@@ -1615,6 +1615,7 @@ ul .sidebar-group-li .icon {
        margin-right: 20px;
 }
 
+.pin-item,
 .star-item,
 .tag-item {
        float: left;
@@ -3990,6 +3991,15 @@ margin-left: 0px;
        height: 20px;
        background-image: url("images/icons.png");
 }
+.pinned {
+       background-image: url("images/star.png");
+       repeat: no-repeat;
+}
+.unpinned {
+       background-image: url("images/premium.png");
+       repeat: no-repeat;
+}
+
 .starred {
        background-image: url("images/star.png");
        repeat: no-repeat;
index a4616d9c4ceeeba6711155bc1f7c97d34dec8fe2..b372fbefbc0667113b7e65e65c4868011f94c707 100644 (file)
@@ -54,7 +54,7 @@
                        <span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span>
                        </a>
                        <div class="wall-item-ago">&bull;</div>
-                       <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}"><time class="dt-published" datetime="{{$item.localtime}}">{{$item.ago}}</time></div>
+                       <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}" title="{{$item.localtime}}"><time class="dt-published" datetime="{{$item.localtime}}">{{$item.ago}}</time><span class="pinned">{{$item.pinned}}</span></div>
                </div>
 
                <div>
                        </div>
                        {{/if}}
 
+                       {{if $item.pin}}
+                       <a href="#" id="pinned-{{$item.id}}" onclick="dopin({{$item.id}}); return false;" class="pin-item icon {{$item.ispinned}}" title="{{$item.pin.toggle}}"></a>
+                       {{/if}}
                        {{if $item.star}}
                        <a href="#" id="starred-{{$item.id}}" onclick="dostar({{$item.id}}); return false;" class="star-item icon {{$item.isstarred}}" title="{{$item.star.toggle}}"></a>
                        {{/if}}
index eb9c2fe5759f4eb6dac0fd3cd692f14a84056580..169d1b21405487b29cbff20560c67d48e28d5307 100644 (file)
@@ -60,6 +60,7 @@
                                {{if $item.owner_self}}
                                        {{include file="sub/delivery_count.tpl" delivery=$item.delivery}}
                                {{/if}}
+                               <span class="pinned">{{$item.pinned}}</span>
                        </span>
                        {{if $item.lock}}<span class="icon s10 lock fakelink" onclick="lockview(event,{{$item.id}});" title="{{$item.lock}}">{{$item.lock}}</span>{{/if}}
                        <span class="wall-item-network" title="{{$item.app}}">
                            {{/if}}
                        {{/if}}
 
+                       {{if $item.pin}}
+                               <a role="button" id="pin-{{$item.id}}" onclick="dopin({{$item.id}}); return false;"  class="{{$item.pin.classdo}}" title="{{$item.pin.do}}"><i class="icon-circle icon-large"><span class="sr-only">{{$item.pin.do}}</span></i></a>
+                               <a role="button" id="unpin-{{$item.id}}" onclick="dopin({{$item.id}}); return false;"  class="{{$item.pin.classundo}}"  title="{{$item.pin.undo}}"><i class="icon-remove-circle icon-large"><span class="sr-only">{{$item.pin.undo}}</span></i></a>
+                       {{/if}}
                        {{if $item.star}}
                                <a role="button" id="star-{{$item.id}}" onclick="dostar({{$item.id}}); return false;"  class="{{$item.star.classdo}}" title="{{$item.star.do}}"><i class="icon-star icon-large"><span class="sr-only">{{$item.star.do}}</span></i></a>
                                <a role="button" id="unstar-{{$item.id}}" onclick="dostar({{$item.id}}); return false;"  class="{{$item.star.classundo}}"  title="{{$item.star.undo}}"><i class="icon-star-empty icon-large"><span class="sr-only">{{$item.star.undo}}</span></i></a>